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 8 struct ec_addr { 9 unsigned char station; /* Station number. */ 10 unsigned char net; /* Network number. */ 11 }; 12 13 struct 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. */ 38 struct 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 47 struct 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 ec_sk(const struct sock * sk)57static inline struct econet_sock *ec_sk(const struct sock *sk) 58 { 59 return (struct econet_sock *)sk; 60 } 61 62 struct ec_device { 63 unsigned char station, net; /* Econet protocol address */ 64 }; 65 66 #endif 67 68 #endif 69