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