Blame view

include/linux/dn.h 4.42 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
  #ifndef _LINUX_DN_H
  #define _LINUX_DN_H
57d1780fa   Jaswinder Singh Rajput   headers_check fix...
3
  #include <linux/types.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
  /*
  
  	DECnet Data Structures and Constants
  
  */
  
  /* 
   * DNPROTO_NSP can't be the same as SOL_SOCKET, 
   * so increment each by one (compared to ULTRIX)
   */
  #define DNPROTO_NSP     2                       /* NSP protocol number       */
  #define DNPROTO_ROU     3                       /* Routing protocol number   */
  #define DNPROTO_NML     4                       /* Net mgt protocol number   */
  #define DNPROTO_EVL     5                       /* Evl protocol number (usr) */
  #define DNPROTO_EVR     6                       /* Evl protocol number (evl) */
  #define DNPROTO_NSPT    7                       /* NSP trace protocol number */
  
  
  #define DN_ADDL		2
  #define DN_MAXADDL	2 /* ULTRIX headers have 20 here, but pathworks has 2 */
  #define DN_MAXOPTL	16
  #define DN_MAXOBJL	16
  #define DN_MAXACCL	40
  #define DN_MAXALIASL	128
  #define DN_MAXNODEL	256
  #define DNBUFSIZE	65023
  
  /* 
   * SET/GET Socket options  - must match the DSO_ numbers below
   */
  #define SO_CONDATA      1
  #define SO_CONACCESS    2
  #define SO_PROXYUSR     3
  #define SO_LINKINFO     7
  
  #define DSO_CONDATA     1        /* Set/Get connect data                */
  #define DSO_DISDATA     10       /* Set/Get disconnect data             */
  #define DSO_CONACCESS   2        /* Set/Get connect access data         */
  #define DSO_ACCEPTMODE  4        /* Set/Get accept mode                 */
  #define DSO_CONACCEPT   5        /* Accept deferred connection          */
  #define DSO_CONREJECT   6        /* Reject deferred connection          */
  #define DSO_LINKINFO    7        /* Set/Get link information            */
  #define DSO_STREAM      8        /* Set socket type to stream           */
  #define DSO_SEQPACKET   9        /* Set socket type to sequenced packet */
  #define DSO_MAXWINDOW   11       /* Maximum window size allowed         */
  #define DSO_NODELAY	12       /* Turn off nagle                      */
  #define DSO_CORK        13       /* Wait for more data!                 */
  #define DSO_SERVICES	14       /* NSP Services field                  */
  #define DSO_INFO	15       /* NSP Info field                      */
  #define DSO_MAX         15       /* Maximum option number               */
  
  
  /* LINK States */
  #define LL_INACTIVE	0
  #define LL_CONNECTING	1
  #define LL_RUNNING	2
  #define LL_DISCONNECTING 3
  
  #define ACC_IMMED 0
  #define ACC_DEFER 1
  
  #define SDF_WILD        1                  /* Wild card object          */
  #define SDF_PROXY       2                  /* Addr eligible for proxy   */
  #define SDF_UICPROXY    4                  /* Use uic-based proxy       */
  
  /* Structures */
d94d9fee9   Eric Dumazet   net: cleanup incl...
70
  struct dn_naddr {
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
71
72
  	__le16		a_len;
  	__u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
73
  };
d94d9fee9   Eric Dumazet   net: cleanup incl...
74
  struct sockaddr_dn {
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
75
76
77
78
79
  	__u16		sdn_family;
  	__u8		sdn_flags;
  	__u8		sdn_objnum;
  	__le16		sdn_objnamel;
  	__u8		sdn_objname[DN_MAXOBJL];
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
80
81
82
83
84
85
86
87
88
89
90
  	struct   dn_naddr	sdn_add;
  };
  #define sdn_nodeaddrl   sdn_add.a_len   /* Node address length  */
  #define sdn_nodeaddr    sdn_add.a_addr  /* Node address         */
  
  
  
  /*
   * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure
   */
  struct optdata_dn {
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
91
          __le16  opt_status;     /* Extended status return */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
92
  #define opt_sts opt_status
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
93
94
          __le16  opt_optl;       /* Length of user data    */
          __u8   opt_data[16];   /* User data              */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
95
  };
d94d9fee9   Eric Dumazet   net: cleanup incl...
96
  struct accessdata_dn {
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
97
98
99
100
101
102
  	__u8		acc_accl;
  	__u8		acc_acc[DN_MAXACCL];
  	__u8 		acc_passl;
  	__u8		acc_pass[DN_MAXACCL];
  	__u8 		acc_userl;
  	__u8		acc_user[DN_MAXACCL];
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
103
104
105
106
107
108
  };
  
  /*
   * DECnet logical link information structure
   */
  struct linkinfo_dn {
d88e661fb   Al Viro   [PATCH] fix misan...
109
          __u16  idn_segsize;    /* Segment size for link */
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
110
          __u8   idn_linkstate;  /* Logical link state    */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
111
112
113
114
115
116
  };
  
  /*
   * Ethernet address format (for DECnet)
   */
  union etheraddress {
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
117
          __u8 dne_addr[6];             /* Full ethernet address */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
118
    struct {
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
119
120
                  __u8 dne_hiord[4];    /* DECnet HIORD prefix   */
                  __u8 dne_nodeaddr[2]; /* DECnet node address   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
121
122
123
124
125
126
127
128
    } dne_remote;
  };
  
  
  /*
   * DECnet physical socket address format
   */
  struct dn_addr {
c4ea94ab3   Steven Whitehouse   [DECnet]: Endian ...
129
          __le16 dna_family;      /* AF_DECnet               */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
130
131
132
133
134
135
136
137
138
139
140
          union etheraddress dna_netaddr; /* DECnet ethernet address */
  };
  
  #define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */
  
  #define SIOCSNETADDR  _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr)
  #define SIOCGNETADDR  _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr)
  #define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int)
  #define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int)
  
  #endif /* _LINUX_DN_H */