2 * ===================================
3 * HARP | Host ATM Research Platform
4 * ===================================
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.
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.
20 * Copyright 1994-1998 Network Computing Services, Inc.
22 * Copies of this Software may be made, however, the above copyright
23 * notice must be reproduced on all copies.
30 * ATM socket protocol family support definitions
33 #include <sys/cdefs.h>
34 __FBSDID("$FreeBSD$");
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>
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>
54 NET_NEEDS_GIANT("netatm");
56 struct protosw atmsw[] = {
58 .pr_type = SOCK_DGRAM, /* ioctl()-only */
59 .pr_domain = &atmdomain,
60 .pr_usrreqs = &atm_dgram_usrreqs
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
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,
88 struct domain atmdomain = {
91 .dom_init = atm_initialize,
93 .dom_protoswNPROTOSW = &atmsw[sizeof(atmsw) / sizeof(atmsw[0])]
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");
102 * Protocol request not supported
105 * so pointer to socket
108 * errno error - operation not supported
112 atm_proto_notsupp1(so)
120 * Protocol request not supported
123 * so pointer to socket
124 * addr pointer to protocol address
125 * p pointer to process
128 * errno error - operation not supported
132 atm_proto_notsupp2(so, addr, td)
134 struct sockaddr *addr;
142 * Protocol request not supported
145 * so pointer to socket
146 * addr pointer to pointer to protocol address
149 * errno error - operation not supported
153 atm_proto_notsupp3(so, addr)
155 struct sockaddr **addr;
162 * Protocol request not supported
165 * so pointer to socket
167 * m pointer to kernel buffer
168 * addr pointer to protocol address
169 * m2 pointer to kernel buffer
170 * p pointer to process
173 * errno error - operation not supported
177 atm_proto_notsupp4(so, i, m, addr, m2, td)
181 struct sockaddr *addr;
189 * Protocol request not supported
192 * so pointer to socket
196 atm_proto_notsupp5(so)