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_opt
51 {
52   unsigned char cb;
53   unsigned char port;
54   unsigned char station;
55   unsigned char net;
56 };
57 
58 struct ec_device
59 {
60   unsigned char station, net;		/* Econet protocol address */
61 };
62 
63 #endif
64 
65 #endif
66