Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | { |
| 10 | unsigned char station; /* Station number. */ |
| 11 | unsigned char net; /* Network number. */ |
| 12 | }; |
| 13 | |
| 14 | struct sockaddr_ec |
| 15 | { |
| 16 | unsigned short sec_family; |
| 17 | unsigned char port; /* Port number. */ |
| 18 | unsigned char cb; /* Control/flag byte. */ |
| 19 | unsigned char type; /* Type of message. */ |
| 20 | struct ec_addr addr; |
| 21 | unsigned long cookie; |
| 22 | }; |
| 23 | |
| 24 | #define ECTYPE_PACKET_RECEIVED 0 /* Packet received */ |
| 25 | #define ECTYPE_TRANSMIT_STATUS 0x10 /* Transmit completed, |
| 26 | low nibble holds status */ |
| 27 | |
| 28 | #define ECTYPE_TRANSMIT_OK 1 |
| 29 | #define ECTYPE_TRANSMIT_NOT_LISTENING 2 |
| 30 | #define ECTYPE_TRANSMIT_NET_ERROR 3 |
| 31 | #define ECTYPE_TRANSMIT_NO_CLOCK 4 |
| 32 | #define ECTYPE_TRANSMIT_LINE_JAMMED 5 |
| 33 | #define ECTYPE_TRANSMIT_NOT_PRESENT 6 |
| 34 | |
| 35 | #ifdef __KERNEL__ |
| 36 | |
| 37 | #define EC_HLEN 6 |
| 38 | |
| 39 | /* This is what an Econet frame looks like on the wire. */ |
| 40 | struct ec_framehdr |
| 41 | { |
| 42 | unsigned char dst_stn; |
| 43 | unsigned char dst_net; |
| 44 | unsigned char src_stn; |
| 45 | unsigned char src_net; |
| 46 | unsigned char cb; |
| 47 | unsigned char port; |
| 48 | }; |
| 49 | |
| 50 | struct econet_sock { |
| 51 | /* struct sock has to be the first member of econet_sock */ |
| 52 | struct sock sk; |
| 53 | unsigned char cb; |
| 54 | unsigned char port; |
| 55 | unsigned char station; |
| 56 | unsigned char net; |
| 57 | unsigned short num; |
| 58 | }; |
| 59 | |
| 60 | static inline struct econet_sock *ec_sk(const struct sock *sk) |
| 61 | { |
| 62 | return (struct econet_sock *)sk; |
| 63 | } |
| 64 | |
| 65 | struct ec_device |
| 66 | { |
| 67 | unsigned char station, net; /* Econet protocol address */ |
| 68 | }; |
| 69 | |
| 70 | #endif |
| 71 | |
| 72 | #endif |