]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/netatm/atm_proto.c
This commit was generated by cvs2svn to compensate for changes in r159285,
[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 {
58         .pr_type =              SOCK_DGRAM,             /* ioctl()-only */
59         .pr_domain =            &atmdomain,
60         .pr_usrreqs =           &atm_dgram_usrreqs
61 },
62
63 {
64         .pr_type =              SOCK_SEQPACKET,         /* AAL-5 */
65         .pr_domain =            &atmdomain,
66         .pr_protocol =          ATM_PROTO_AAL5,
67         .pr_flags =             PR_ATOMIC|PR_CONNREQUIRED,
68         .pr_ctloutput =         atm_aal5_ctloutput,
69         .pr_usrreqs =           &atm_aal5_usrreqs
70 },
71
72 #ifdef XXX
73 {
74         .pr_type =              SOCK_SEQPACKET,         /* SSCOP */
75         .pr_domain =            &atmdomain,
76         .pr_protocol =          ATM_PROTO_SSCOP,
77         .pr_flags =             PR_ATOMIC|PR_CONNREQUIRED|PR_WANTRCVD,
78         .pr_input =             x,
79         .pr_output =            x,
80         .pr_ctlinput =          x,
81         .pr_ctloutput =         x,
82         .pr_drain =             x,
83         .pr_usrreqs =           x
84 },
85 #endif
86 };
87
88 struct domain atmdomain = {
89         .dom_family =           AF_ATM,
90         .dom_name =             "atm",
91         .dom_init =             atm_initialize,
92         .dom_protosw =          atmsw,
93         .dom_protoswNPROTOSW =  &atmsw[sizeof(atmsw) / sizeof(atmsw[0])]
94 };
95
96 DOMAIN_SET(atm);
97
98 SYSCTL_NODE(_net, PF_ATM, harp, CTLFLAG_RW, 0, "HARP/ATM family");
99 SYSCTL_NODE(_net_harp, OID_AUTO, atm, CTLFLAG_RW, 0, "ATM layer");
100
101 /*
102  * Protocol request not supported
103  *
104  * Arguments:
105  *      so      pointer to socket
106  *
107  * Returns:
108  *      errno   error - operation not supported
109  *
110  */
111 int
112 atm_proto_notsupp1(so)
113         struct socket   *so;
114 {
115         return (EOPNOTSUPP);
116 }
117
118
119 /*
120  * Protocol request not supported
121  *
122  * Arguments:
123  *      so      pointer to socket
124  *      addr    pointer to protocol address
125  *      p       pointer to process
126  *
127  * Returns:
128  *      errno   error - operation not supported
129  *
130  */
131 int
132 atm_proto_notsupp2(so, addr, td)
133         struct socket   *so;
134         struct sockaddr *addr;
135         struct thread   *td;
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 pointer to protocol address
147  *
148  * Returns:
149  *      errno   error - operation not supported
150  *
151  */
152 int
153 atm_proto_notsupp3(so, addr)
154         struct socket   *so;
155         struct sockaddr **addr;
156 {
157         return (EOPNOTSUPP);
158 }
159
160
161 /*
162  * Protocol request not supported
163  *
164  * Arguments:
165  *      so      pointer to socket
166  *      i       integer
167  *      m       pointer to kernel buffer
168  *      addr    pointer to protocol address
169  *      m2      pointer to kernel buffer
170  *      p       pointer to process
171  *
172  * Returns:
173  *      errno   error - operation not supported
174  *
175  */
176 int
177 atm_proto_notsupp4(so, i, m, addr, m2, td)
178         struct socket   *so;
179         int             i;
180         KBuffer         *m;
181         struct sockaddr *addr;
182         KBuffer         *m2;
183         struct thread   *td;
184 {
185         return (EOPNOTSUPP);
186 }
187
188 /*
189  * Protocol request not supported
190  *
191  * Arguments:
192  *      so      pointer to socket
193  *
194  */
195 void
196 atm_proto_notsupp5(so)
197         struct socket   *so;
198 {
199
200 }