network - Move socket from netmsg ext to netmsg header, add port to socket
[dragonfly.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  *      @(#) $DragonFly: src/sys/netproto/atm/atm_proto.c,v 1.12 2008/11/01 04:22:15 sephe Exp $
28  */
29
30 /*
31  * Core ATM Services
32  * -----------------
33  *
34  * ATM socket protocol family support definitions
35  *
36  */
37
38 #include "kern_include.h"
39
40 struct protosw atmsw[] = {
41 {       SOCK_DGRAM,                             /* ioctl()-only */
42         &atmdomain,
43         0,
44         0,
45         0,                      /* pr_input */
46         0,                      /* pr_output */
47         0,                      /* pr_ctlinput */
48         0,                      /* pr_ctloutput */
49         cpu0_soport,            /* pr_mport */
50         NULL,                   /* pr_ctlport */
51         0,                      /* pr_init */
52         0,                      /* pr_fasttimo */
53         0,                      /* pr_slowtimo */
54         0,                      /* pr_drain */
55         &atm_dgram_usrreqs,     /* pr_usrreqs */
56 },
57
58 {       SOCK_SEQPACKET,                         /* AAL-5 */
59         &atmdomain,
60         ATM_PROTO_AAL5,
61         PR_ATOMIC|PR_CONNREQUIRED,
62         0,                      /* pr_input */
63         0,                      /* pr_output */
64         0,                      /* pr_ctlinput */
65         atm_aal5_ctloutput,     /* pr_ctloutput */
66         cpu0_soport,            /* pr_mport */
67         NULL,                   /* pr_ctlport */
68         0,                      /* pr_init */
69         0,                      /* pr_fasttimo */
70         0,                      /* pr_slowtimo */
71         0,                      /* pr_drain */
72         &atm_aal5_usrreqs,      /* pr_usrreqs */
73 },
74
75 #ifdef XXX
76 {       SOCK_SEQPACKET,                         /* SSCOP */
77         &atmdomain,
78         ATM_PROTO_SSCOP,
79         PR_ATOMIC|PR_CONNREQUIRED|PR_WANTRCVD,
80         x,                      /* pr_input */
81         x,                      /* pr_output */
82         x,                      /* pr_ctlinput */
83         x,                      /* pr_ctloutput */
84         NULL,                   /* pr_mport */
85         NULL,                   /* pr_ctlport */
86         0,                      /* pr_init */
87         0,                      /* pr_fasttimo */
88         0,                      /* pr_slowtimo */
89         x,                      /* pr_drain */
90         x,                      /* pr_usrreqs */
91 },
92 #endif
93 };
94
95 struct domain atmdomain = {
96         AF_ATM, "atm", atm_initialize, NULL, NULL,
97         atmsw, &atmsw[sizeof(atmsw) / sizeof(atmsw[0])],
98 };
99
100 DOMAIN_SET(atm);
101
102 /*
103  * Protocol request not supported
104  *
105  * Arguments:
106  *      so      pointer to socket
107  *
108  * Returns:
109  *      errno   error - operation not supported
110  *
111  */
112 int
113 atm_proto_notsupp1(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(struct socket *so, struct sockaddr *addr, thread_t td)
133 {
134         return (EOPNOTSUPP);
135 }
136
137
138 /*
139  * Protocol request not supported
140  *
141  * Arguments:
142  *      so      pointer to socket
143  *      addr    pointer to pointer to protocol address
144  *
145  * Returns:
146  *      errno   error - operation not supported
147  *
148  */
149 int
150 atm_proto_notsupp3(struct socket *so, struct sockaddr **addr)
151 {
152         return (EOPNOTSUPP);
153 }
154
155
156 /*
157  * Protocol request not supported
158  *
159  * Arguments:
160  *      so      pointer to socket
161  *      i       integer
162  *      m       pointer to kernel buffer
163  *      addr    pointer to protocol address
164  *      m2      pointer to kernel buffer
165  *      p       pointer to process
166  *
167  * Returns:
168  *      errno   error - operation not supported
169  *
170  */
171 int
172 atm_proto_notsupp4(
173         struct socket   *so,
174         int             i,
175         KBuffer         *m,
176         struct sockaddr *addr,
177         KBuffer         *m2,
178         struct thread   *td
179 ) {
180         return (EOPNOTSUPP);
181 }