]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/netatm/atm_proto.c
This commit was generated by cvs2svn to compensate for changes in r151970,
[FreeBSD/FreeBSD.git] / sys / netatm / atm_proto.c
1 /*-
2  * ===================================
3  * HARP  |  Host ATM Research Platform
4  * ===================================
5  *
6  *
7  * This Host ATM Research Platform ("HARP") file (the "Software") is
8  * made available by Network Computing Services, Inc. ("NetworkCS")
9  * "AS IS".  NetworkCS does not provide maintenance, improvements or
10  * support of any kind.
11  *
12  * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
13  * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
14  * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
15  * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
16  * In no event shall NetworkCS be responsible for any damages, including
17  * but not limited to consequential damages, arising from or relating to
18  * any use of the Software or related support.
19  *
20  * Copyright 1994-1998 Network Computing Services, Inc.
21  *
22  * Copies of this Software may be made, however, the above copyright
23  * notice must be reproduced on all copies.
24  */
25
26 /*
27  * Core ATM Services
28  * -----------------
29  *
30  * ATM socket protocol family support definitions
31  */
32
33 #include <sys/cdefs.h>
34 __FBSDID("$FreeBSD$");
35
36 #include <sys/param.h>
37 #include <sys/kernel.h>
38 #include <sys/domain.h>
39 #include <sys/protosw.h>
40 #include <sys/socket.h>
41 #include <sys/sysctl.h>
42 #include <net/if.h>
43 #include <netatm/port.h>
44 #include <netatm/queue.h>
45 #include <netatm/atm.h>
46 #include <netatm/atm_sys.h>
47 #include <netatm/atm_sap.h>
48 #include <netatm/atm_cm.h>
49 #include <netatm/atm_if.h>
50 #include <netatm/atm_stack.h>
51 #include <netatm/atm_pcb.h>
52 #include <netatm/atm_var.h>
53
54 NET_NEEDS_GIANT("netatm");
55
56 struct protosw atmsw[] = {
57 {       SOCK_DGRAM,                             /* ioctl()-only */
58         &atmdomain,
59         0,
60         0,
61         0,                      /* pr_input */
62         0,                      /* pr_output */
63         0,                      /* pr_ctlinput */
64         0,                      /* pr_ctloutput */
65         0,                      /* pr_ousrreq */
66         0,                      /* pr_init */
67         0,                      /* pr_fasttimo */
68         0,                      /* pr_slowtimo */
69         0,                      /* pr_drain */
70         &atm_dgram_usrreqs,     /* pr_usrreqs */
71 },
72
73 {       SOCK_SEQPACKET,                         /* AAL-5 */
74         &atmdomain,
75         ATM_PROTO_AAL5,
76         PR_ATOMIC|PR_CONNREQUIRED,
77         0,                      /* pr_input */
78         0,                      /* pr_output */
79         0,                      /* pr_ctlinput */
80         atm_aal5_ctloutput,     /* pr_ctloutput */
81         0,                      /* pr_ousrreq */
82         0,                      /* pr_init */
83         0,                      /* pr_fasttimo */
84         0,                      /* pr_slowtimo */
85         0,                      /* pr_drain */
86         &atm_aal5_usrreqs,      /* pr_usrreqs */
87 },
88
89 #ifdef XXX
90 {       SOCK_SEQPACKET,                         /* SSCOP */
91         &atmdomain,
92         ATM_PROTO_SSCOP,
93         PR_ATOMIC|PR_CONNREQUIRED|PR_WANTRCVD,
94         x,                      /* pr_input */
95         x,                      /* pr_output */
96         x,                      /* pr_ctlinput */
97         x,                      /* pr_ctloutput */
98         0,                      /* pr_ousrreq */
99         0,                      /* pr_init */
100         0,                      /* pr_fasttimo */
101         0,                      /* pr_slowtimo */
102         x,                      /* pr_drain */
103         x,                      /* pr_usrreqs */
104 },
105 #endif
106 };
107
108 struct domain atmdomain = {
109         AF_ATM,
110         "atm",
111         atm_initialize,
112         0,
113         0, 
114         atmsw,
115         &atmsw[sizeof(atmsw) / sizeof(atmsw[0])]
116 };
117
118 DOMAIN_SET(atm);
119
120 SYSCTL_NODE(_net, PF_ATM, harp, CTLFLAG_RW, 0, "HARP/ATM family");
121 SYSCTL_NODE(_net_harp, OID_AUTO, atm, CTLFLAG_RW, 0, "ATM layer");
122
123 /*
124  * Protocol request not supported
125  *
126  * Arguments:
127  *      so      pointer to socket
128  *
129  * Returns:
130  *      errno   error - operation not supported
131  *
132  */
133 int
134 atm_proto_notsupp1(so)
135         struct socket   *so;
136 {
137         return (EOPNOTSUPP);
138 }
139
140
141 /*
142  * Protocol request not supported
143  *
144  * Arguments:
145  *      so      pointer to socket
146  *      addr    pointer to protocol address
147  *      p       pointer to process
148  *
149  * Returns:
150  *      errno   error - operation not supported
151  *
152  */
153 int
154 atm_proto_notsupp2(so, addr, td)
155         struct socket   *so;
156         struct sockaddr *addr;
157         struct thread   *td;
158 {
159         return (EOPNOTSUPP);
160 }
161
162
163 /*
164  * Protocol request not supported
165  *
166  * Arguments:
167  *      so      pointer to socket
168  *      addr    pointer to pointer to protocol address
169  *
170  * Returns:
171  *      errno   error - operation not supported
172  *
173  */
174 int
175 atm_proto_notsupp3(so, addr)
176         struct socket   *so;
177         struct sockaddr **addr;
178 {
179         return (EOPNOTSUPP);
180 }
181
182
183 /*
184  * Protocol request not supported
185  *
186  * Arguments:
187  *      so      pointer to socket
188  *      i       integer
189  *      m       pointer to kernel buffer
190  *      addr    pointer to protocol address
191  *      m2      pointer to kernel buffer
192  *      p       pointer to process
193  *
194  * Returns:
195  *      errno   error - operation not supported
196  *
197  */
198 int
199 atm_proto_notsupp4(so, i, m, addr, m2, td)
200         struct socket   *so;
201         int             i;
202         KBuffer         *m;
203         struct sockaddr *addr;
204         KBuffer         *m2;
205         struct thread   *td;
206 {
207         return (EOPNOTSUPP);
208 }