| /* Definitions for Econet sockets. */ | |
| #ifndef __LINUX_IF_EC | |
| #define __LINUX_IF_EC | |
| /* User visible stuff. Glibc provides its own but libc5 folk will use these */ | |
| struct ec_addr | |
| { | |
| unsigned char station; /* Station number. */ | |
| unsigned char net; /* Network number. */ | |
| }; | |
| struct sockaddr_ec | |
| { | |
| unsigned short sec_family; | |
| unsigned char port; /* Port number. */ | |
| unsigned char cb; /* Control/flag byte. */ | |
| unsigned char type; /* Type of message. */ | |
| struct ec_addr addr; | |
| unsigned long cookie; | |
| }; | |
| #define ECTYPE_PACKET_RECEIVED 0 /* Packet received */ | |
| #define ECTYPE_TRANSMIT_STATUS 0x10 /* Transmit completed, | |
| low nibble holds status */ | |
| #define ECTYPE_TRANSMIT_OK 1 | |
| #define ECTYPE_TRANSMIT_NOT_LISTENING 2 | |
| #define ECTYPE_TRANSMIT_NET_ERROR 3 | |
| #define ECTYPE_TRANSMIT_NO_CLOCK 4 | |
| #define ECTYPE_TRANSMIT_LINE_JAMMED 5 | |
| #define ECTYPE_TRANSMIT_NOT_PRESENT 6 | |
| #ifdef __KERNEL__ | |
| #define EC_HLEN 6 | |
| /* This is what an Econet frame looks like on the wire. */ | |
| struct ec_framehdr | |
| { | |
| unsigned char dst_stn; | |
| unsigned char dst_net; | |
| unsigned char src_stn; | |
| unsigned char src_net; | |
| unsigned char cb; | |
| unsigned char port; | |
| }; | |
| struct econet_sock { | |
| /* struct sock has to be the first member of econet_sock */ | |
| struct sock sk; | |
| unsigned char cb; | |
| unsigned char port; | |
| unsigned char station; | |
| unsigned char net; | |
| unsigned short num; | |
| }; | |
| static inline struct econet_sock *ec_sk(const struct sock *sk) | |
| { | |
| return (struct econet_sock *)sk; | |
| } | |
| struct ec_device | |
| { | |
| unsigned char station, net; /* Econet protocol address */ | |
| }; | |
| #endif | |
| #endif |