Resurrect patches to support Proper
[linux-2.6.git] / include / linux / if_ec.h
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   unsigned short num;
57 };
58
59 #define ec_sk(__sk) ((struct econet_opt *)(__sk)->sk_protinfo)
60
61 struct ec_device
62 {
63   unsigned char station, net;           /* Econet protocol address */
64 };
65
66 #endif
67
68 #endif