blob: 0bdf6609486a2db0414cea3628caab0b2124f84a [file] [log] [blame]
njn3c917bb2005-05-17 04:20:31 +00001
2/*--------------------------------------------------------------------*/
njnc1b01812005-06-17 22:19:06 +00003/*--- Linux-specific syscalls stuff. priv_syswrap-linux.h ---*/
njn3c917bb2005-05-17 04:20:31 +00004/*--------------------------------------------------------------------*/
5
6/*
7 This file is part of Valgrind, a dynamic binary instrumentation
8 framework.
9
sewardj0f157dd2013-10-18 14:27:36 +000010 Copyright (C) 2000-2013 Nicholas Nethercote
njn3c917bb2005-05-17 04:20:31 +000011 njn@valgrind.org
12
13 This program is free software; you can redistribute it and/or
14 modify it under the terms of the GNU General Public License as
15 published by the Free Software Foundation; either version 2 of the
16 License, or (at your option) any later version.
17
18 This program is distributed in the hope that it will be useful, but
19 WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software
25 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26 02111-1307, USA.
27
28 The GNU General Public License is contained in the file COPYING.
29*/
30
njnc1b01812005-06-17 22:19:06 +000031#ifndef __PRIV_SYSWRAP_LINUX_H
32#define __PRIV_SYSWRAP_LINUX_H
njn3c917bb2005-05-17 04:20:31 +000033
florian535fb1b2013-09-15 13:54:34 +000034#include "pub_core_basics.h" // ThreadId
35#include "priv_types_n_macros.h" // DECL_TEMPLATE
njn3c917bb2005-05-17 04:20:31 +000036
njne1486662005-11-10 02:48:04 +000037// Clone-related functions
njnffd9c1d2005-11-10 04:02:19 +000038extern Word ML_(start_thread_NORETURN) ( void* arg );
njna3afdfb2005-11-09 04:49:28 +000039extern Addr ML_(allocstack) ( ThreadId tid );
40extern void ML_(call_on_new_stack_0_1) ( Addr stack, Addr retaddr,
41 void (*f)(Word), Word arg1 );
njne1486662005-11-10 02:48:04 +000042extern SysRes ML_(do_fork_clone) ( ThreadId tid, UInt flags,
43 Int* parent_tidptr, Int* child_tidptr );
44
45
46// Linux-specific (but non-arch-specific) syscalls
njna3afdfb2005-11-09 04:49:28 +000047
sewardjbc22cf72005-06-08 00:02:49 +000048DECL_TEMPLATE(linux, sys_mount);
49DECL_TEMPLATE(linux, sys_oldumount);
50DECL_TEMPLATE(linux, sys_umount);
tomc8232f92011-06-08 09:10:40 +000051DECL_TEMPLATE(linux, sys_perf_event_open);
tomd8feb702009-10-28 10:04:11 +000052DECL_TEMPLATE(linux, sys_preadv);
53DECL_TEMPLATE(linux, sys_pwritev);
toma4991232012-02-10 11:30:09 +000054DECL_TEMPLATE(linux, sys_sendmmsg);
55DECL_TEMPLATE(linux, sys_recvmmsg);
tomf43793a2009-11-23 08:19:20 +000056DECL_TEMPLATE(linux, sys_dup3);
tom472a34b2010-02-23 10:02:55 +000057DECL_TEMPLATE(linux, sys_getcpu);
tom110743c2010-02-23 10:49:48 +000058DECL_TEMPLATE(linux, sys_splice);
tom5db7a792012-08-08 08:03:44 +000059DECL_TEMPLATE(linux, sys_tee);
60DECL_TEMPLATE(linux, sys_vmsplice);
sewardj792e00a2010-10-04 20:03:27 +000061DECL_TEMPLATE(linux, sys_readahead);
tomd5fb58e2012-04-03 10:51:27 +000062DECL_TEMPLATE(linux, sys_move_pages);
njn3c917bb2005-05-17 04:20:31 +000063
njn096ccdd2009-02-22 23:00:30 +000064// POSIX, but various sub-cases differ between Linux and Darwin.
65DECL_TEMPLATE(linux, sys_fcntl);
66DECL_TEMPLATE(linux, sys_fcntl64);
67DECL_TEMPLATE(linux, sys_ioctl);
68
sewardjbc22cf72005-06-08 00:02:49 +000069DECL_TEMPLATE(linux, sys_setfsuid16);
sewardjbc22cf72005-06-08 00:02:49 +000070DECL_TEMPLATE(linux, sys_setfsuid);
njn73975482005-08-30 02:45:44 +000071DECL_TEMPLATE(linux, sys_setfsgid16);
sewardjbc22cf72005-06-08 00:02:49 +000072DECL_TEMPLATE(linux, sys_setfsgid);
njn73975482005-08-30 02:45:44 +000073DECL_TEMPLATE(linux, sys_setresuid16); // man page says "non-standard";
sewardjbc22cf72005-06-08 00:02:49 +000074DECL_TEMPLATE(linux, sys_setresuid); // man page says "non-standard"
njn73975482005-08-30 02:45:44 +000075DECL_TEMPLATE(linux, sys_getresuid16);
sewardjbc22cf72005-06-08 00:02:49 +000076DECL_TEMPLATE(linux, sys_getresuid);
njn73975482005-08-30 02:45:44 +000077DECL_TEMPLATE(linux, sys_setresgid16); // man page says "non-standard"
sewardjbc22cf72005-06-08 00:02:49 +000078DECL_TEMPLATE(linux, sys_setresgid); // man page says "non-standard"
njn73975482005-08-30 02:45:44 +000079DECL_TEMPLATE(linux, sys_getresgid16);
sewardjbc22cf72005-06-08 00:02:49 +000080DECL_TEMPLATE(linux, sys_getresgid);
njn3c917bb2005-05-17 04:20:31 +000081
njn73975482005-08-30 02:45:44 +000082DECL_TEMPLATE(linux, sys_exit_group);
83DECL_TEMPLATE(linux, sys_llseek);
84DECL_TEMPLATE(linux, sys_adjtimex);
sewardjbc22cf72005-06-08 00:02:49 +000085DECL_TEMPLATE(linux, sys_ioperm);
86DECL_TEMPLATE(linux, sys_syslog);
87DECL_TEMPLATE(linux, sys_vhangup);
88DECL_TEMPLATE(linux, sys_sysinfo);
89DECL_TEMPLATE(linux, sys_personality);
90DECL_TEMPLATE(linux, sys_sysctl);
91DECL_TEMPLATE(linux, sys_prctl);
sewardjbc22cf72005-06-08 00:02:49 +000092DECL_TEMPLATE(linux, sys_sendfile);
93DECL_TEMPLATE(linux, sys_sendfile64);
94DECL_TEMPLATE(linux, sys_futex);
tom05b1f9a2006-05-17 14:24:12 +000095DECL_TEMPLATE(linux, sys_set_robust_list);
96DECL_TEMPLATE(linux, sys_get_robust_list);
tom363ec762006-03-21 10:58:35 +000097DECL_TEMPLATE(linux, sys_pselect6);
98DECL_TEMPLATE(linux, sys_ppoll);
njn3c917bb2005-05-17 04:20:31 +000099
sewardjbc22cf72005-06-08 00:02:49 +0000100DECL_TEMPLATE(linux, sys_epoll_create);
njn72715882009-07-10 12:02:03 +0000101DECL_TEMPLATE(linux, sys_epoll_create1);
sewardjbc22cf72005-06-08 00:02:49 +0000102DECL_TEMPLATE(linux, sys_epoll_ctl);
103DECL_TEMPLATE(linux, sys_epoll_wait);
bartf5ceec82008-04-26 07:45:10 +0000104DECL_TEMPLATE(linux, sys_epoll_pwait);
105DECL_TEMPLATE(linux, sys_eventfd);
tom84eb41f2008-12-10 09:28:56 +0000106DECL_TEMPLATE(linux, sys_eventfd2);
njn3c917bb2005-05-17 04:20:31 +0000107
njn0bd71772009-07-15 03:08:35 +0000108DECL_TEMPLATE(linux, sys_fallocate);
109
tom46d02ab2011-06-08 09:55:54 +0000110DECL_TEMPLATE(linux, sys_prlimit64);
111
sewardjbc22cf72005-06-08 00:02:49 +0000112DECL_TEMPLATE(linux, sys_gettid);
113DECL_TEMPLATE(linux, sys_set_tid_address);
114DECL_TEMPLATE(linux, sys_tkill);
115DECL_TEMPLATE(linux, sys_tgkill);
njn3c917bb2005-05-17 04:20:31 +0000116
sewardjbc22cf72005-06-08 00:02:49 +0000117DECL_TEMPLATE(linux, sys_fadvise64);
118DECL_TEMPLATE(linux, sys_fadvise64_64);
njn3c917bb2005-05-17 04:20:31 +0000119
sewardjbc22cf72005-06-08 00:02:49 +0000120DECL_TEMPLATE(linux, sys_io_setup);
121DECL_TEMPLATE(linux, sys_io_destroy);
122DECL_TEMPLATE(linux, sys_io_getevents);
123DECL_TEMPLATE(linux, sys_io_submit);
124DECL_TEMPLATE(linux, sys_io_cancel);
njn3c917bb2005-05-17 04:20:31 +0000125
sewardj7acef082007-03-11 19:28:02 +0000126DECL_TEMPLATE(linux, sys_ioprio_set);
tom16dfea42008-12-15 08:58:29 +0000127DECL_TEMPLATE(linux, sys_ioprio_get);
sewardj7acef082007-03-11 19:28:02 +0000128
tom70a5cb02005-10-20 17:00:23 +0000129DECL_TEMPLATE(linux, sys_mbind);
tom2af58f22005-07-22 15:04:14 +0000130DECL_TEMPLATE(linux, sys_set_mempolicy);
131DECL_TEMPLATE(linux, sys_get_mempolicy);
132
tom0bcaf2a2005-07-25 15:21:41 +0000133DECL_TEMPLATE(linux, sys_inotify_init);
tom7bb1b1c2009-10-27 14:17:27 +0000134DECL_TEMPLATE(linux, sys_inotify_init1);
tom0bcaf2a2005-07-25 15:21:41 +0000135DECL_TEMPLATE(linux, sys_inotify_add_watch);
136DECL_TEMPLATE(linux, sys_inotify_rm_watch);
137
njn4279a882005-08-26 03:43:28 +0000138DECL_TEMPLATE(linux, sys_mq_open);
139DECL_TEMPLATE(linux, sys_mq_unlink);
140DECL_TEMPLATE(linux, sys_mq_timedsend);
141DECL_TEMPLATE(linux, sys_mq_timedreceive);
142DECL_TEMPLATE(linux, sys_mq_notify);
143DECL_TEMPLATE(linux, sys_mq_getsetattr);
144
njn1588bc02005-08-26 03:49:43 +0000145DECL_TEMPLATE(linux, sys_clock_settime);
146DECL_TEMPLATE(linux, sys_clock_gettime);
147DECL_TEMPLATE(linux, sys_clock_getres);
148DECL_TEMPLATE(linux, sys_clock_nanosleep);
tomddc4a182014-01-30 22:33:02 +0000149DECL_TEMPLATE(linux, sys_clock_adjtime);
njn1588bc02005-08-26 03:49:43 +0000150
njn424c0562005-08-26 03:54:30 +0000151DECL_TEMPLATE(linux, sys_timer_create); // Linux: varies across archs?
152DECL_TEMPLATE(linux, sys_timer_settime);
153DECL_TEMPLATE(linux, sys_timer_gettime);
154DECL_TEMPLATE(linux, sys_timer_getoverrun);
155DECL_TEMPLATE(linux, sys_timer_delete);
bart5fc7da22008-04-27 12:56:06 +0000156DECL_TEMPLATE(linux, sys_timerfd_create);
157DECL_TEMPLATE(linux, sys_timerfd_gettime);
158DECL_TEMPLATE(linux, sys_timerfd_settime);
bartf5ceec82008-04-26 07:45:10 +0000159
160DECL_TEMPLATE(linux, sys_signalfd);
tom6c67ef52009-01-09 16:42:51 +0000161DECL_TEMPLATE(linux, sys_signalfd4);
njn424c0562005-08-26 03:54:30 +0000162
njn9fe7b122005-08-26 04:03:04 +0000163DECL_TEMPLATE(linux, sys_capget);
164DECL_TEMPLATE(linux, sys_capset);
165
tom363ec762006-03-21 10:58:35 +0000166DECL_TEMPLATE(linux, sys_openat);
167DECL_TEMPLATE(linux, sys_mkdirat);
168DECL_TEMPLATE(linux, sys_mknodat);
169DECL_TEMPLATE(linux, sys_fchownat);
170DECL_TEMPLATE(linux, sys_futimesat);
171DECL_TEMPLATE(linux, sys_newfstatat);
172DECL_TEMPLATE(linux, sys_unlinkat);
173DECL_TEMPLATE(linux, sys_renameat);
174DECL_TEMPLATE(linux, sys_linkat);
175DECL_TEMPLATE(linux, sys_symlinkat);
176DECL_TEMPLATE(linux, sys_readlinkat);
177DECL_TEMPLATE(linux, sys_fchmodat);
178DECL_TEMPLATE(linux, sys_faccessat);
sewardj9d3f9d72007-11-20 23:41:23 +0000179DECL_TEMPLATE(linux, sys_utimensat);
tomf9e5b5e2013-03-03 12:57:20 +0000180DECL_TEMPLATE(linux, sys_name_to_handle_at);
tom43ca0972013-07-17 13:25:08 +0000181DECL_TEMPLATE(linux, sys_open_by_handle_at);
tom363ec762006-03-21 10:58:35 +0000182
tom7f4d7e42007-03-07 11:12:13 +0000183DECL_TEMPLATE(linux, sys_add_key);
184DECL_TEMPLATE(linux, sys_request_key);
185DECL_TEMPLATE(linux, sys_keyctl);
186
njna3b67b72005-08-26 04:27:54 +0000187// These ones have 32-bit generic equivalents, but the 16-bit versions (they
188// use 16-bit gid_t and uid_t types) seem to be Linux-specific.
189DECL_TEMPLATE(linux, sys_getuid16);
190DECL_TEMPLATE(linux, sys_setuid16);
191DECL_TEMPLATE(linux, sys_getgid16);
192DECL_TEMPLATE(linux, sys_setgid16);
193DECL_TEMPLATE(linux, sys_geteuid16);
194DECL_TEMPLATE(linux, sys_getegid16);
195DECL_TEMPLATE(linux, sys_setreuid16);
196DECL_TEMPLATE(linux, sys_setregid16);
197DECL_TEMPLATE(linux, sys_getgroups16);
198DECL_TEMPLATE(linux, sys_setgroups16);
199
njnefc957c2005-08-26 04:36:10 +0000200// Again, these 16-bit versions are Linux-specific, the 32-bit versions are
201// generic.
202DECL_TEMPLATE(linux, sys_chown16);
203DECL_TEMPLATE(linux, sys_fchown16);
204//DECL_TEMPLATE(linux, sys_lchown16); // not yet encountered
205
njn73975482005-08-30 02:45:44 +0000206// Are these POSIX? In Darwin they have an extra parameter 'position',
207// so put them here.
njn65ccc502005-08-30 01:53:54 +0000208DECL_TEMPLATE(linux, sys_setxattr);
209DECL_TEMPLATE(linux, sys_lsetxattr);
210DECL_TEMPLATE(linux, sys_fsetxattr);
211DECL_TEMPLATE(linux, sys_getxattr);
212DECL_TEMPLATE(linux, sys_lgetxattr);
213DECL_TEMPLATE(linux, sys_fgetxattr);
214DECL_TEMPLATE(linux, sys_listxattr);
215DECL_TEMPLATE(linux, sys_llistxattr);
216DECL_TEMPLATE(linux, sys_flistxattr);
217DECL_TEMPLATE(linux, sys_removexattr);
218DECL_TEMPLATE(linux, sys_lremovexattr);
219DECL_TEMPLATE(linux, sys_fremovexattr);
njnb2480c92005-08-30 02:17:23 +0000220
njncd405ea2005-08-31 02:44:31 +0000221// These are Posix, but not necessarily syscalls. Darwin only supports
222// sched_get_priority_{min,max} and sched_yield, but as libc functions, not
223// syscalls.
njnb2480c92005-08-30 02:17:23 +0000224DECL_TEMPLATE(linux, sys_sched_setparam);
225DECL_TEMPLATE(linux, sys_sched_getparam);
226DECL_TEMPLATE(linux, sys_sched_setscheduler);
227DECL_TEMPLATE(linux, sys_sched_getscheduler);
228DECL_TEMPLATE(linux, sys_sched_yield);
229DECL_TEMPLATE(linux, sys_sched_get_priority_max);
230DECL_TEMPLATE(linux, sys_sched_get_priority_min);
tomb8b48482009-11-24 16:03:19 +0000231DECL_TEMPLATE(linux, sys_sched_rr_get_interval);
njnb2480c92005-08-30 02:17:23 +0000232DECL_TEMPLATE(linux, sys_sched_setaffinity);
233DECL_TEMPLATE(linux, sys_sched_getaffinity);
234
njncd405ea2005-08-31 02:44:31 +0000235// These ones have different parameters and/or return values on Darwin.
236// Also, some archs on Linux do not match the generic wrapper for sys_pipe.
237DECL_TEMPLATE(linux, sys_munlockall);
238DECL_TEMPLATE(linux, sys_pipe);
sewardj586c8152008-11-05 11:20:59 +0000239DECL_TEMPLATE(linux, sys_pipe2);
njncd405ea2005-08-31 02:44:31 +0000240DECL_TEMPLATE(linux, sys_quotactl);
241DECL_TEMPLATE(linux, sys_waitid);
242
243// Posix, but in Darwin utime is a libc function that calls syscall utimes.
244DECL_TEMPLATE(linux, sys_utime);
245
246// On Darwin, off_t is 64-bits even on 32-bit platforms.
247DECL_TEMPLATE(linux, sys_lseek);
248
249// Darwin (and probably other OSes) don't have the old_sigset_t type.
250DECL_TEMPLATE(linux, sys_sigpending);
251DECL_TEMPLATE(linux, sys_sigprocmask);
sewardjde9264c2011-07-11 17:48:24 +0000252DECL_TEMPLATE(linux, sys_sigaction);
njncd405ea2005-08-31 02:44:31 +0000253
254// I think these are Linux-specific?
255DECL_TEMPLATE(linux, sys_rt_sigaction);
256DECL_TEMPLATE(linux, sys_rt_sigprocmask);
257DECL_TEMPLATE(linux, sys_rt_sigpending);
258DECL_TEMPLATE(linux, sys_rt_sigtimedwait);
259DECL_TEMPLATE(linux, sys_rt_sigqueueinfo);
tomd18b5412009-11-24 16:08:40 +0000260DECL_TEMPLATE(linux, sys_rt_tgsigqueueinfo);
njncd405ea2005-08-31 02:44:31 +0000261DECL_TEMPLATE(linux, sys_rt_sigsuspend);
262
tomc4e466f2008-01-08 16:31:25 +0000263// Linux-specific?
264DECL_TEMPLATE(linux, sys_sync_file_range);
tomc0fe32a2009-11-25 11:29:14 +0000265DECL_TEMPLATE(linux, sys_sync_file_range2);
sewardj6d652772008-11-06 23:11:42 +0000266DECL_TEMPLATE(linux, sys_stime); /* maybe generic? I'm not sure */
tomc4e466f2008-01-08 16:31:25 +0000267
bart10ac1442008-06-21 16:28:24 +0000268// Linux specific (kernel modules)
269DECL_TEMPLATE(linux, sys_init_module);
270DECL_TEMPLATE(linux, sys_delete_module);
271
sewardjd3263e52008-11-16 21:40:54 +0000272// Linux-specific (oprofile-related)
273DECL_TEMPLATE(linux, sys_lookup_dcookie); // (*/32/64) L
274
tom9e4b6362012-02-10 09:39:37 +0000275// Linux-specific (new in Linux 3.2)
276DECL_TEMPLATE(linux, sys_process_vm_readv);
277DECL_TEMPLATE(linux, sys_process_vm_writev);
278
tomcec24b52013-07-17 13:58:59 +0000279// Linux-specific (new in Linux 2.6.36)
280DECL_TEMPLATE(linux, sys_fanotify_init);
281DECL_TEMPLATE(linux, sys_fanotify_mark);
282
njncd405ea2005-08-31 02:44:31 +0000283/* ---------------------------------------------------------------------
284 Wrappers for sockets and ipc-ery. These are split into standalone
285 procedures because x86-linux hides them inside multiplexors
286 (sys_socketcall and sys_ipc).
287 ------------------------------------------------------------------ */
288
289#define TId ThreadId
290#define UW UWord
291#define SR SysRes
292
njnf37a81b2009-02-17 00:23:30 +0000293extern void ML_(linux_PRE_sys_msgsnd) ( TId, UW, UW, UW, UW );
294extern void ML_(linux_PRE_sys_msgrcv) ( TId, UW, UW, UW, UW, UW );
295extern void ML_(linux_POST_sys_msgrcv) ( TId, UW, UW, UW, UW, UW, UW );
296extern void ML_(linux_PRE_sys_msgctl) ( TId, UW, UW, UW );
297extern void ML_(linux_POST_sys_msgctl) ( TId, UW, UW, UW, UW );
298extern void ML_(linux_PRE_sys_getsockopt) ( TId, UW, UW, UW, UW, UW );
299extern void ML_(linux_POST_sys_getsockopt) ( TId, SR, UW, UW, UW, UW, UW );
tom70f71aa2013-07-17 14:36:57 +0000300extern void ML_(linux_PRE_sys_setsockopt) ( TId, UW, UW, UW, UW, UW );
njncd405ea2005-08-31 02:44:31 +0000301
cborntrae48a4442012-11-08 20:10:10 +0000302// Linux-specific (but non-arch-specific) ptrace wrapper helpers
303extern void ML_(linux_PRE_getregset) ( ThreadId, long, long );
304extern void ML_(linux_PRE_setregset) ( ThreadId, long, long );
305extern void ML_(linux_POST_getregset)( ThreadId, long, long );
306
njncd405ea2005-08-31 02:44:31 +0000307#undef TId
308#undef UW
309#undef SR
310
philippef2a7bbe2012-11-04 20:40:33 +0000311/* sys_ipc and sys_socketcall are multiplexors which implements several syscalls.
philippe4eefc8c2012-10-21 20:21:17 +0000312 Used e.g. by x86, ppc32, ppc64, ... */
313DECL_TEMPLATE(linux, sys_ipc);
philippef2a7bbe2012-11-04 20:40:33 +0000314DECL_TEMPLATE(linux, sys_socketcall);
philippe4eefc8c2012-10-21 20:21:17 +0000315
philippe6b087762013-03-01 23:31:09 +0000316/* Depending on the platform, the below are implemented as
317 direct syscalls or via the above sys_socketcall multiplexor. */
318
319/* Direct ipc related syscalls. */
320/* Semaphore */
321DECL_TEMPLATE(linux, sys_semget);
322DECL_TEMPLATE(linux, sys_semop);
323DECL_TEMPLATE(linux, sys_semctl);
324DECL_TEMPLATE(linux, sys_semtimedop);
325/* Shared memory */
326DECL_TEMPLATE(linux, wrap_sys_shmat);
327DECL_TEMPLATE(linux, sys_shmget);
328DECL_TEMPLATE(linux, sys_shmdt);
329DECL_TEMPLATE(linux, sys_shmctl);
330/* Message queue */
331DECL_TEMPLATE(linux, sys_msgget);
332DECL_TEMPLATE(linux, sys_msgrcv);
333DECL_TEMPLATE(linux, sys_msgsnd);
334DECL_TEMPLATE(linux, sys_msgctl);
335
336/* Direct socket related syscalls. */
337DECL_TEMPLATE(linux, sys_socket);
338DECL_TEMPLATE(linux, sys_setsockopt);
339DECL_TEMPLATE(linux, sys_getsockopt);
340DECL_TEMPLATE(linux, sys_connect);
341DECL_TEMPLATE(linux, sys_accept);
342DECL_TEMPLATE(linux, sys_accept4);
343DECL_TEMPLATE(linux, sys_send);
344DECL_TEMPLATE(linux, sys_sendto);
345DECL_TEMPLATE(linux, sys_recv);
346DECL_TEMPLATE(linux, sys_recvfrom);
347DECL_TEMPLATE(linux, sys_sendmsg);
348DECL_TEMPLATE(linux, sys_recvmsg);
349DECL_TEMPLATE(linux, sys_shutdown);
350DECL_TEMPLATE(linux, sys_bind);
351DECL_TEMPLATE(linux, sys_listen);
352DECL_TEMPLATE(linux, sys_getsockname);
353DECL_TEMPLATE(linux, sys_getpeername);
354DECL_TEMPLATE(linux, sys_socketpair);
355
356
njnc1b01812005-06-17 22:19:06 +0000357#endif // __PRIV_SYSWRAP_LINUX_H
njn3c917bb2005-05-17 04:20:31 +0000358
359/*--------------------------------------------------------------------*/
360/*--- end ---*/
361/*--------------------------------------------------------------------*/