1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #include <sys/types.h>
28 #include <sys/param.h>
29 #include <sys/stropts.h>
30 #include <sys/socket.h>
31 #include <sys/socketvar.h>
32 #include <sys/socket_proto.h>
33 
34 
35 /*ARGSUSED*/
36 int
sock_accept_notsupp(sock_lower_handle_t low1,sock_lower_handle_t low2,sock_upper_handle_t upper,struct cred * cr)37 sock_accept_notsupp(sock_lower_handle_t low1, sock_lower_handle_t low2,
38     sock_upper_handle_t upper, struct cred *cr)
39 {
40 	return (EOPNOTSUPP);
41 }
42 
43 /*ARGSUSED*/
44 int
sock_bind_notsupp(sock_lower_handle_t handle,struct sockaddr * name,socklen_t namelen,struct cred * cr)45 sock_bind_notsupp(sock_lower_handle_t handle, struct sockaddr *name,
46     socklen_t namelen, struct cred *cr)
47 {
48 	return (EOPNOTSUPP);
49 }
50 
51 /*ARGSUSED*/
52 int
sock_listen_notsupp(sock_lower_handle_t handle,int backlog,struct cred * cr)53 sock_listen_notsupp(sock_lower_handle_t handle, int backlog,
54     struct cred *cr)
55 {
56 	return (EOPNOTSUPP);
57 }
58 
59 /*ARGSUSED*/
60 int
sock_connect_notsupp(sock_lower_handle_t handle,const struct sockaddr * name,socklen_t namelen,sock_connid_t * conp,struct cred * cr)61 sock_connect_notsupp(sock_lower_handle_t handle,
62     const struct sockaddr *name, socklen_t namelen, sock_connid_t *conp,
63     struct cred *cr)
64 {
65 	return (EOPNOTSUPP);
66 }
67 
68 /*ARGSUSED*/
69 int
sock_getsockname_notsupp(sock_lower_handle_t handle,struct sockaddr * sa,socklen_t * len,struct cred * cr)70 sock_getsockname_notsupp(sock_lower_handle_t handle, struct sockaddr *sa,
71     socklen_t *len, struct cred *cr)
72 {
73 	return (EOPNOTSUPP);
74 }
75 
76 /*ARGSUSED*/
77 int
sock_getpeername_notsupp(sock_lower_handle_t handle,struct sockaddr * addr,socklen_t * addrlen,struct cred * cr)78 sock_getpeername_notsupp(sock_lower_handle_t handle, struct sockaddr *addr,
79     socklen_t *addrlen, struct cred *cr)
80 {
81 	return (EOPNOTSUPP);
82 }
83 
84 /*ARGSUSED*/
85 int
sock_getsockopt_notsupp(sock_lower_handle_t handle,int level,int option_name,void * optval,socklen_t * optlenp,struct cred * cr)86 sock_getsockopt_notsupp(sock_lower_handle_t handle, int level,
87     int option_name, void *optval, socklen_t *optlenp, struct cred *cr)
88 {
89 	return (EOPNOTSUPP);
90 }
91 
92 /*ARGSUSED*/
93 int
sock_setsockopt_notsupp(sock_lower_handle_t handle,int level,int option_name,const void * optval,socklen_t optlen,struct cred * cr)94 sock_setsockopt_notsupp(sock_lower_handle_t handle, int level,
95     int option_name, const void *optval, socklen_t optlen, struct cred *cr)
96 {
97 	return (EOPNOTSUPP);
98 }
99 
100 /*ARGSUSED*/
101 int
sock_send_notsupp(sock_lower_handle_t handle,mblk_t * mp,struct msghdr * msg,struct cred * cr)102 sock_send_notsupp(sock_lower_handle_t handle, mblk_t *mp,
103     struct msghdr *msg, struct cred *cr)
104 {
105 	return (EOPNOTSUPP);
106 }
107 
108 /*ARGSUSED*/
109 int
sock_senduio_notsupp(sock_lower_handle_t handle,struct uio * uiop,struct nmsghdr * msg,struct cred * cr)110 sock_senduio_notsupp(sock_lower_handle_t handle, struct uio *uiop,
111     struct nmsghdr *msg, struct cred *cr)
112 {
113 	return (EOPNOTSUPP);
114 }
115 
116 /*ARGSUSED*/
117 int
sock_recvuio_notsupp(sock_lower_handle_t handle,struct uio * uiop,struct nmsghdr * msg,struct cred * cr)118 sock_recvuio_notsupp(sock_lower_handle_t handle, struct uio *uiop,
119     struct nmsghdr *msg, struct cred *cr)
120 {
121 	return (EOPNOTSUPP);
122 }
123 
124 /*ARGSUSED*/
125 short
sock_poll_notsupp(sock_lower_handle_t handle,short events,int anyyet,cred_t * cred)126 sock_poll_notsupp(sock_lower_handle_t handle, short events, int anyyet,
127     cred_t *cred)
128 {
129 	return (EOPNOTSUPP);
130 }
131 
132 /*ARGSUSED*/
133 int
sock_shutdown_notsupp(sock_lower_handle_t handle,int how,struct cred * cr)134 sock_shutdown_notsupp(sock_lower_handle_t handle, int how, struct cred *cr)
135 {
136 	return (EOPNOTSUPP);
137 }
138 
139 /*ARGSUSED*/
140 void
sock_clr_flowctrl_notsupp(sock_lower_handle_t proto_handle)141 sock_clr_flowctrl_notsupp(sock_lower_handle_t proto_handle)
142 {
143 }
144 
145 /*ARGSUSED*/
146 int
sock_ioctl_notsupp(sock_lower_handle_t handle,int cmd,intptr_t arg,int mode,int32_t * rvalp,cred_t * cred)147 sock_ioctl_notsupp(sock_lower_handle_t handle, int cmd, intptr_t arg,
148     int mode, int32_t *rvalp, cred_t *cred)
149 {
150 	return (EOPNOTSUPP);
151 }
152 
153 /* ARGSUSED */
154 int
sock_close_notsupp(sock_lower_handle_t proto_handle,int flags,cred_t * cr)155 sock_close_notsupp(sock_lower_handle_t proto_handle, int flags, cred_t *cr)
156 {
157 	return (EOPNOTSUPP);
158 }
159 
160 sock_downcalls_t sock_down_notsupp = {
161 	NULL,
162 	sock_accept_notsupp,
163 	sock_bind_notsupp,
164 	sock_listen_notsupp,
165 	sock_connect_notsupp,
166 	sock_getpeername_notsupp,
167 	sock_getsockname_notsupp,
168 	sock_getsockopt_notsupp,
169 	sock_setsockopt_notsupp,
170 	sock_send_notsupp,
171 	sock_senduio_notsupp,
172 	sock_recvuio_notsupp,
173 	sock_poll_notsupp,
174 	sock_shutdown_notsupp,
175 	sock_clr_flowctrl_notsupp,
176 	sock_ioctl_notsupp,
177 	sock_close_notsupp,
178 };
179