at v3.2 1.6 kB view raw
1/* Definitions for Econet sockets. */ 2 3#ifndef __LINUX_IF_EC 4#define __LINUX_IF_EC 5 6/* User visible stuff. Glibc provides its own but libc5 folk will use these */ 7 8struct ec_addr { 9 unsigned char station; /* Station number. */ 10 unsigned char net; /* Network number. */ 11}; 12 13struct sockaddr_ec { 14 unsigned short sec_family; 15 unsigned char port; /* Port number. */ 16 unsigned char cb; /* Control/flag byte. */ 17 unsigned char type; /* Type of message. */ 18 struct ec_addr addr; 19 unsigned long cookie; 20}; 21 22#define ECTYPE_PACKET_RECEIVED 0 /* Packet received */ 23#define ECTYPE_TRANSMIT_STATUS 0x10 /* Transmit completed, 24 low nibble holds status */ 25 26#define ECTYPE_TRANSMIT_OK 1 27#define ECTYPE_TRANSMIT_NOT_LISTENING 2 28#define ECTYPE_TRANSMIT_NET_ERROR 3 29#define ECTYPE_TRANSMIT_NO_CLOCK 4 30#define ECTYPE_TRANSMIT_LINE_JAMMED 5 31#define ECTYPE_TRANSMIT_NOT_PRESENT 6 32 33#ifdef __KERNEL__ 34 35#define EC_HLEN 6 36 37/* This is what an Econet frame looks like on the wire. */ 38struct ec_framehdr { 39 unsigned char dst_stn; 40 unsigned char dst_net; 41 unsigned char src_stn; 42 unsigned char src_net; 43 unsigned char cb; 44 unsigned char port; 45}; 46 47struct econet_sock { 48 /* struct sock has to be the first member of econet_sock */ 49 struct sock sk; 50 unsigned char cb; 51 unsigned char port; 52 unsigned char station; 53 unsigned char net; 54 unsigned short num; 55}; 56 57static inline struct econet_sock *ec_sk(const struct sock *sk) 58{ 59 return (struct econet_sock *)sk; 60} 61 62struct ec_device { 63 unsigned char station, net; /* Econet protocol address */ 64}; 65 66#endif 67 68#endif