• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 
7 
8 #ifndef _UAPI_LINUX_ATM_H
9 #define _UAPI_LINUX_ATM_H
10 #include <linux/compiler.h>
11 #include <linux/atmapi.h>
12 #include <linux/atmsap.h>
13 #include <linux/atmioc.h>
14 #include <linux/types.h>
15 #define ATM_CELL_SIZE		    53
16 #define ATM_CELL_PAYLOAD	    48
17 #define ATM_AAL0_SDU		    52
18 #define ATM_MAX_AAL34_PDU	 65535
19 #define ATM_AAL5_TRAILER	     8
20 #define ATM_MAX_AAL5_PDU	 65535
21 #define ATM_MAX_CDV		  9999
22 #define ATM_NOT_RSV_VCI		    32
23 #define ATM_MAX_VPI		   255
24 #define ATM_MAX_VPI_NNI		  4096
25 #define ATM_MAX_VCI		 65535
26 #define ATM_NO_AAL	0
27 #define ATM_AAL0	13
28 #define ATM_AAL1	1
29 #define ATM_AAL2	2
30 #define ATM_AAL34	3
31 #define ATM_AAL5	5
32 #define __SO_ENCODE(l,n,t)	((((l) & 0x1FF) << 22) | ((n) << 16) | \
33 				sizeof(t))
34 #define __SO_LEVEL_MATCH(c,m)	(((c) >> 22) == ((m) & 0x1FF))
35 #define __SO_NUMBER(c)		(((c) >> 16) & 0x3f)
36 #define __SO_SIZE(c)		((c) & 0x3fff)
37 #define SO_SETCLP	__SO_ENCODE(SOL_ATM,0,int)
38 
39 #define SO_CIRANGE	__SO_ENCODE(SOL_ATM,1,struct atm_cirange)
40 
41 #define SO_ATMQOS	__SO_ENCODE(SOL_ATM,2,struct atm_qos)
42 
43 #define SO_ATMSAP	__SO_ENCODE(SOL_ATM,3,struct atm_sap)
44 
45 #define SO_ATMPVC	__SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)
46 
47 #define SO_MULTIPOINT	__SO_ENCODE(SOL_ATM, 5, int)
48 
49 #define ATM_HDR_GFC_MASK	0xf0000000
50 #define ATM_HDR_GFC_SHIFT	28
51 #define ATM_HDR_VPI_MASK	0x0ff00000
52 #define ATM_HDR_VPI_SHIFT	20
53 #define ATM_HDR_VCI_MASK	0x000ffff0
54 #define ATM_HDR_VCI_SHIFT	4
55 #define ATM_HDR_PTI_MASK	0x0000000e
56 #define ATM_HDR_PTI_SHIFT	1
57 #define ATM_HDR_CLP		0x00000001
58 #define ATM_PTI_US0	0
59 #define ATM_PTI_US1	1
60 #define ATM_PTI_UCES0	2
61 #define ATM_PTI_UCES1	3
62 #define ATM_PTI_SEGF5	4
63 #define ATM_PTI_E2EF5	5
64 #define ATM_PTI_RSV_RM	6
65 #define ATM_PTI_RSV	7
66 #define ATM_NONE	0
67 #define ATM_UBR		1
68 #define ATM_CBR		2
69 #define ATM_VBR		3
70 #define ATM_ABR		4
71 #define ATM_ANYCLASS	5
72 #define ATM_MAX_PCR	-1
73 struct atm_trafprm {
74 	unsigned char	traffic_class;
75 	int		max_pcr;
76 	int		pcr;
77 	int		min_pcr;
78 	int		max_cdv;
79 	int		max_sdu;
80 
81         unsigned int 	icr;
82         unsigned int	tbe;
83         unsigned int 	frtt : 24;
84         unsigned int 	rif  : 4;
85         unsigned int 	rdf  : 4;
86         unsigned int nrm_pres  :1;
87         unsigned int trm_pres  :1;
88         unsigned int adtf_pres :1;
89         unsigned int cdf_pres  :1;
90         unsigned int nrm       :3;
91         unsigned int trm       :3;
92 	unsigned int adtf      :10;
93 	unsigned int cdf       :3;
94         unsigned int spare     :9;
95 };
96 struct atm_qos {
97 	struct atm_trafprm txtp;
98 	struct atm_trafprm rxtp __ATM_API_ALIGN;
99 
100 	unsigned char aal __ATM_API_ALIGN;
101 };
102 #define ATM_ITF_ANY	-1
103 #define ATM_VPI_ANY	-1
104 #define ATM_VCI_ANY	-1
105 #define ATM_VPI_UNSPEC	-2
106 #define ATM_VCI_UNSPEC	-2
107 struct sockaddr_atmpvc {
108 	unsigned short 	sap_family;
109 	struct {
110 		short	itf;
111 		short	vpi;
112 		int	vci;
113 	} sap_addr __ATM_API_ALIGN;
114 };
115 #define	ATM_ESA_LEN	20
116 #define ATM_E164_LEN	12
117 #define ATM_AFI_DCC	0x39
118 #define ATM_AFI_ICD	0x47
119 #define ATM_AFI_E164	0x45
120 #define ATM_AFI_LOCAL	0x49
121 #define ATM_AFI_DCC_GROUP	0xBD
122 #define ATM_AFI_ICD_GROUP	0xC5
123 #define ATM_AFI_E164_GROUP	0xC3
124 #define ATM_AFI_LOCAL_GROUP	0xC7
125 #define ATM_LIJ_NONE	0
126 #define ATM_LIJ		1
127 #define ATM_LIJ_RPJ	2
128 #define ATM_LIJ_NJ	3
129 struct sockaddr_atmsvc {
130     unsigned short 	sas_family;
131     struct {
132         unsigned char	prv[ATM_ESA_LEN];
133         char		pub[ATM_E164_LEN+1];
134 
135 	char		lij_type;
136 	__u32	lij_id;
137     } sas_addr __ATM_API_ALIGN;
138 };
atmsvc_addr_in_use(struct sockaddr_atmsvc addr)139 static __inline__ int atmsvc_addr_in_use(struct sockaddr_atmsvc addr)
140 {
141 	return *addr.sas_addr.prv || *addr.sas_addr.pub;
142 }
atmpvc_addr_in_use(struct sockaddr_atmpvc addr)143 static __inline__ int atmpvc_addr_in_use(struct sockaddr_atmpvc addr)
144 {
145 	return addr.sap_addr.itf || addr.sap_addr.vpi || addr.sap_addr.vci;
146 }
147 struct atmif_sioc {
148 	int number;
149 	int length;
150 	void __user *arg;
151 };
152 typedef unsigned short atm_backend_t;
153 #endif
154