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