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{ 10 unsigned char station; /* Station number. */ 11 unsigned char net; /* Network number. */ 12}; 13 14struct 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. */ 40struct 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 50struct 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 60static inline struct econet_sock *ec_sk(const struct sock *sk) 61{ 62 return (struct econet_sock *)sk; 63} 64 65struct ec_device 66{ 67 unsigned char station, net; /* Econet protocol address */ 68}; 69 70#endif 71 72#endif 73