Annotation of sys/compat/linux/linux_socketcall.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: linux_socketcall.h,v 1.4 2002/11/27 07:30:36 ish Exp $ */
2: /* $NetBSD: linux_socketcall.h,v 1.1 1995/02/28 23:26:05 fvdl Exp $ */
3:
4: /*
5: * Copyright (c) 1995 Frank van der Linden
6: * All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: * 3. All advertising materials mentioning features or use of this software
17: * must display the following acknowledgement:
18: * This product includes software developed for the NetBSD Project
19: * by Frank van der Linden
20: * 4. The name of the author may not be used to endorse or promote products
21: * derived from this software without specific prior written permission
22: *
23: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
24: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
25: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
26: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
27: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
28: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
32: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33: */
34:
35: #ifndef _LINUX_SOCKETCALL_H
36: #define _LINUX_SOCKETCALL_H
37:
38: /*
39: * Values passed to the Linux socketcall() syscall, determining the actual
40: * action to take.
41: */
42: #define LINUX_SYS_socket 1
43: #define LINUX_SYS_bind 2
44: #define LINUX_SYS_connect 3
45: #define LINUX_SYS_listen 4
46: #define LINUX_SYS_accept 5
47: #define LINUX_SYS_getsockname 6
48: #define LINUX_SYS_getpeername 7
49: #define LINUX_SYS_socketpair 8
50: #define LINUX_SYS_send 9
51: #define LINUX_SYS_recv 10
52: #define LINUX_SYS_sendto 11
53: #define LINUX_SYS_recvfrom 12
54: #define LINUX_SYS_shutdown 13
55: #define LINUX_SYS_setsockopt 14
56: #define LINUX_SYS_getsockopt 15
57: #define LINUX_SYS_sendmsg 16
58: #define LINUX_SYS_recvmsg 17
59:
60: /*
61: * Structures for the arguments of the different system calls. This looks
62: * a little better than copyin() of all values one by one.
63: */
64: struct linux_socket_args {
65: int domain;
66: int type;
67: int protocol;
68: };
69:
70: struct linux_bind_args {
71: int s;
72: struct osockaddr *name;
73: int namelen;
74: };
75:
76: struct linux_connect_args {
77: int s;
78: struct osockaddr *name;
79: int namelen;
80: };
81:
82: struct linux_listen_args {
83: int s;
84: int backlog;
85: };
86:
87: struct linux_accept_args {
88: int s;
89: struct sockaddr *addr;
90: int *namelen;
91: };
92:
93: struct linux_getsockname_args {
94: int s;
95: struct osockaddr *addr;
96: int *namelen;
97: };
98:
99: struct linux_getpeername_args {
100: int s;
101: struct sockaddr *addr;
102: int *namelen;
103: };
104:
105: struct linux_socketpair_args {
106: int domain;
107: int type;
108: int protocol;
109: int *rsv;
110: };
111:
112: struct linux_send_args {
113: int s;
114: void *msg;
115: int len;
116: int flags;
117: };
118:
119: struct linux_recv_args {
120: int s;
121: void *msg;
122: int len;
123: int flags;
124: };
125:
126: struct linux_sendto_args {
127: int s;
128: void *msg;
129: int len;
130: int flags;
131: struct osockaddr *to;
132: int tolen;
133: };
134:
135: struct linux_recvfrom_args {
136: int s;
137: void *buf;
138: int len;
139: int flags;
140: struct osockaddr *from;
141: int *fromlen;
142: };
143:
144: struct linux_shutdown_args {
145: int s;
146: int how;
147: };
148:
149: struct linux_getsockopt_args {
150: int s;
151: int level;
152: int optname;
153: void *optval;
154: int *optlen;
155: };
156:
157: struct linux_setsockopt_args {
158: int s;
159: int level;
160: int optname;
161: void *optval;
162: int optlen;
163: };
164:
165: struct linux_sendmsg_args {
166: int s;
167: struct msghdr *msg;
168: int flags;
169: };
170:
171: struct linux_recvmsg_args {
172: int s;
173: struct msghdr *msg;
174: int flags;
175: };
176:
177: #endif /* _LINUX_SOCKETCALL_H */
CVSweb