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 #error "NET_NEEDS_GIANT"
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 }
Cache object: 29424372a0c0f68348cd05229fd43091
|