1 
2 /*--------------------------------------------------------------------*/
3 /*--- FreeBSD-specific syscalls stuff.          priv_syswrap-freebsd.h ---*/
4 /*--------------------------------------------------------------------*/
5 
6 /*
7    This file is part of Valgrind, a dynamic binary instrumentation
8    framework.
9 
10    Copyright (C) 2000-2008 Nicholas Nethercote
11       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 
31 #ifndef __PRIV_SYSWRAP_FREEBSD_H
32 #define __PRIV_SYSWRAP_FREEBSD_H
33 
34 /* requires #include "priv_types_n_macros.h" */
35 
36 // Clone-related functions
37 extern Word ML_(start_thread_NORETURN) ( void* arg );
38 extern Addr ML_(allocstack)            ( ThreadId tid );
39 extern void ML_(call_on_new_stack_0_1) ( Addr stack, Addr retaddr,
40 			                 void (*f)(Word), Word arg1 );
41 extern SysRes ML_(do_fork) ( ThreadId tid );
42 extern SysRes ML_(do_vfork) ( ThreadId tid );
43 extern SysRes ML_(do_rfork) ( ThreadId tid, Int flags );
44 
45 
46 DECL_TEMPLATE(freebsd, sys_syscall);
47 DECL_TEMPLATE(freebsd, sys_exit);
48 DECL_TEMPLATE(freebsd, sys_getfsstat4);
49 DECL_TEMPLATE(freebsd, sys_getfsstat);
50 DECL_TEMPLATE(freebsd, sys_mount);
51 DECL_TEMPLATE(freebsd, sys_unmount);
52 DECL_TEMPLATE(freebsd, sys_ptrace);
53 DECL_TEMPLATE(freebsd, sys_recvmsg);
54 DECL_TEMPLATE(freebsd, sys_sendmsg);
55 DECL_TEMPLATE(freebsd, sys_recvfrom);
56 DECL_TEMPLATE(freebsd, sys_accept);
57 DECL_TEMPLATE(freebsd, sys_getpeername);
58 DECL_TEMPLATE(freebsd, sys_getsockname);
59 DECL_TEMPLATE(freebsd, sys_chflags);
60 DECL_TEMPLATE(freebsd, sys_fchflags);
61 DECL_TEMPLATE(freebsd, sys_pipe);
62 DECL_TEMPLATE(freebsd, sys_pipe2);
63 DECL_TEMPLATE(freebsd, sys_ktrace);
64 DECL_TEMPLATE(freebsd, sys_getlogin);
65 DECL_TEMPLATE(freebsd, sys_setlogin);
66 DECL_TEMPLATE(freebsd, sys_reboot);
67 DECL_TEMPLATE(freebsd, sys_revoke);
68 DECL_TEMPLATE(freebsd, sys_sbrk);
69 DECL_TEMPLATE(freebsd, sys_sstk);
70 DECL_TEMPLATE(freebsd, sys_swapon);
71 DECL_TEMPLATE(freebsd, sys_getdtablesize);
72 DECL_TEMPLATE(freebsd, sys_socket);
73 DECL_TEMPLATE(freebsd, sys_connect);
74 DECL_TEMPLATE(freebsd, sys_bind);
75 DECL_TEMPLATE(freebsd, sys_setsockopt);
76 DECL_TEMPLATE(freebsd, sys_listen);
77 DECL_TEMPLATE(freebsd, sys_getsockopt);
78 DECL_TEMPLATE(freebsd, sys_mkfifo);
79 DECL_TEMPLATE(freebsd, sys_sendto);
80 DECL_TEMPLATE(freebsd, sys_shutdown);
81 DECL_TEMPLATE(freebsd, sys_socketpair);
82 DECL_TEMPLATE(freebsd, sys_adjtime);
83 DECL_TEMPLATE(freebsd, sys_quotactl);
84 DECL_TEMPLATE(freebsd, sys_nfssvc);
85 DECL_TEMPLATE(freebsd, sys_getfh);
86 DECL_TEMPLATE(freebsd, sys_getdomainname);
87 DECL_TEMPLATE(freebsd, sys_setdomainname);
88 DECL_TEMPLATE(freebsd, sys_uname);
89 DECL_TEMPLATE(freebsd, sys_sysarch);
90 DECL_TEMPLATE(freebsd, sys_rtprio);
91 DECL_TEMPLATE(freebsd, sys_semsys);
92 DECL_TEMPLATE(freebsd, sys_msgsys);
93 DECL_TEMPLATE(freebsd, sys_shmsys);
94 DECL_TEMPLATE(freebsd, sys_pread);
95 DECL_TEMPLATE(freebsd, sys_pwrite);
96 DECL_TEMPLATE(freebsd, sys_ntp_adjtime);
97 DECL_TEMPLATE(freebsd, sys_setegid);
98 DECL_TEMPLATE(freebsd, sys_seteuid);
99 DECL_TEMPLATE(freebsd, sys_stat);
100 DECL_TEMPLATE(freebsd, sys_fstat);
101 DECL_TEMPLATE(freebsd, sys_lstat);
102 DECL_TEMPLATE(freebsd, sys_pathconf);
103 DECL_TEMPLATE(freebsd, sys_fpathconf);
104 DECL_TEMPLATE(freebsd, sys_getdirentries);
105 DECL_TEMPLATE(freebsd, sys_mmap);
106 DECL_TEMPLATE(freebsd, sys___syscall);
107 DECL_TEMPLATE(freebsd, sys_lseek);
108 DECL_TEMPLATE(freebsd, sys_truncate);
109 DECL_TEMPLATE(freebsd, sys_ftruncate);
110 DECL_TEMPLATE(freebsd, sys___sysctl);
111 DECL_TEMPLATE(freebsd, sys_undelete);
112 DECL_TEMPLATE(freebsd, sys_futimes);
113 DECL_TEMPLATE(freebsd, sys_nfs_fhopen);
114 DECL_TEMPLATE(freebsd, sys___semctl7);
115 DECL_TEMPLATE(freebsd, sys___semctl);
116 DECL_TEMPLATE(freebsd, sys_semget);
117 DECL_TEMPLATE(freebsd, sys_semop);
118 DECL_TEMPLATE(freebsd, sys_msgctl);
119 DECL_TEMPLATE(freebsd, sys_msgget);
120 DECL_TEMPLATE(freebsd, sys_msgsnd);
121 DECL_TEMPLATE(freebsd, sys_msgrcv);
122 DECL_TEMPLATE(freebsd, sys_shmat);
123 DECL_TEMPLATE(freebsd, sys_shmctl);
124 DECL_TEMPLATE(freebsd, sys_shmctl7);
125 DECL_TEMPLATE(freebsd, sys_shmdt);
126 DECL_TEMPLATE(freebsd, sys_shmget);
127 DECL_TEMPLATE(freebsd, sys_clock_gettime);
128 DECL_TEMPLATE(freebsd, sys_clock_settime);
129 DECL_TEMPLATE(freebsd, sys_clock_getres);
130 DECL_TEMPLATE(freebsd, sys_minherit);
131 DECL_TEMPLATE(freebsd, sys_rfork);
132 DECL_TEMPLATE(freebsd, sys_issetugid);
133 DECL_TEMPLATE(freebsd, sys_lchmod);
134 DECL_TEMPLATE(freebsd, sys_lutimes);
135 DECL_TEMPLATE(freebsd, sys_netbsd_msync);
136 DECL_TEMPLATE(freebsd, sys_nstat);
137 DECL_TEMPLATE(freebsd, sys_nfstat);
138 DECL_TEMPLATE(freebsd, sys_nlstat);
139 DECL_TEMPLATE(freebsd, sys_fhstatfs);
140 DECL_TEMPLATE(freebsd, sys_fhopen);
141 DECL_TEMPLATE(freebsd, sys_fhstat);
142 DECL_TEMPLATE(freebsd, sys_modnext);
143 DECL_TEMPLATE(freebsd, sys_modstat);
144 DECL_TEMPLATE(freebsd, sys_modfnext);
145 DECL_TEMPLATE(freebsd, sys_modfind);
146 DECL_TEMPLATE(freebsd, sys_kldload);
147 DECL_TEMPLATE(freebsd, sys_kldunload);
148 DECL_TEMPLATE(freebsd, sys_kldfind);
149 DECL_TEMPLATE(freebsd, sys_kldnext);
150 DECL_TEMPLATE(freebsd, sys_kldstat);
151 DECL_TEMPLATE(freebsd, sys_kldfirstmod);
152 DECL_TEMPLATE(freebsd, sys_setresuid);
153 DECL_TEMPLATE(freebsd, sys_setresgid);
154 DECL_TEMPLATE(freebsd, sys_aio_return);
155 DECL_TEMPLATE(freebsd, sys_aio_suspend);
156 DECL_TEMPLATE(freebsd, sys_aio_cancel);
157 DECL_TEMPLATE(freebsd, sys_aio_error);
158 DECL_TEMPLATE(freebsd, sys_aio_read);
159 DECL_TEMPLATE(freebsd, sys_aio_write);
160 DECL_TEMPLATE(freebsd, sys_lio_listio);
161 DECL_TEMPLATE(freebsd, sys_yield);
162 DECL_TEMPLATE(freebsd, sys_thr_sleep);
163 DECL_TEMPLATE(freebsd, sys_thr_wakeup);
164 DECL_TEMPLATE(freebsd, sys_munlockall);
165 DECL_TEMPLATE(freebsd, sys___getcwd);
166 DECL_TEMPLATE(freebsd, sys_sched_setparam);
167 DECL_TEMPLATE(freebsd, sys_sched_getparam);
168 DECL_TEMPLATE(freebsd, sys_sched_setscheduler);
169 DECL_TEMPLATE(freebsd, sys_sched_getscheduler);
170 DECL_TEMPLATE(freebsd, sys_sched_yield);
171 DECL_TEMPLATE(freebsd, sys_sched_get_priority_max);
172 DECL_TEMPLATE(freebsd, sys_sched_get_priority_min);
173 DECL_TEMPLATE(freebsd, sys_sched_rr_get_interval);
174 DECL_TEMPLATE(freebsd, sys_utrace);
175 DECL_TEMPLATE(freebsd, sys_kldsym);
176 DECL_TEMPLATE(freebsd, sys_jail);
177 DECL_TEMPLATE(freebsd, sys_sigprocmask);
178 DECL_TEMPLATE(freebsd, sys_sigsuspend);
179 DECL_TEMPLATE(freebsd, sys_sigaction);
180 DECL_TEMPLATE(freebsd, sys_sigpending);
181 DECL_TEMPLATE(freebsd, sys_sigreturn);
182 DECL_TEMPLATE(freebsd, sys_fake_sigreturn);
183 DECL_TEMPLATE(freebsd, sys_sigtimedwait);
184 DECL_TEMPLATE(freebsd, sys_sigwaitinfo);
185 DECL_TEMPLATE(freebsd, sys_getcontext);
186 DECL_TEMPLATE(freebsd, sys_setcontext);
187 DECL_TEMPLATE(freebsd, sys_swapcontext);
188 DECL_TEMPLATE(freebsd, sys___acl_get_file);
189 DECL_TEMPLATE(freebsd, sys___acl_set_file);
190 DECL_TEMPLATE(freebsd, sys___acl_get_fd);
191 DECL_TEMPLATE(freebsd, sys___acl_set_fd);
192 DECL_TEMPLATE(freebsd, sys___acl_delete_file);
193 DECL_TEMPLATE(freebsd, sys___acl_delete_fd);
194 DECL_TEMPLATE(freebsd, sys___acl_aclcheck_file);
195 DECL_TEMPLATE(freebsd, sys___acl_aclcheck_fd);
196 DECL_TEMPLATE(freebsd, sys___acl_get_link);
197 DECL_TEMPLATE(freebsd, sys___acl_set_link);
198 DECL_TEMPLATE(freebsd, sys___acl_delete_link);
199 DECL_TEMPLATE(freebsd, sys___acl_aclcheck_link);
200 DECL_TEMPLATE(freebsd, sys_extattrctl);
201 DECL_TEMPLATE(freebsd, sys_extattr_set_file);
202 DECL_TEMPLATE(freebsd, sys_extattr_get_file);
203 DECL_TEMPLATE(freebsd, sys_extattr_delete_file);
204 DECL_TEMPLATE(freebsd, sys_aio_waitcomplete);
205 DECL_TEMPLATE(freebsd, sys_getresuid);
206 DECL_TEMPLATE(freebsd, sys_getresgid);
207 DECL_TEMPLATE(freebsd, sys_kqueue);
208 DECL_TEMPLATE(freebsd, sys_kevent);
209 DECL_TEMPLATE(freebsd, sys_sendfile);
210 DECL_TEMPLATE(freebsd, sys_statfs6);
211 DECL_TEMPLATE(freebsd, sys_fstatfs6);
212 DECL_TEMPLATE(freebsd, sys_fhstatfs6);
213 DECL_TEMPLATE(freebsd, sys_thr_exit);
214 DECL_TEMPLATE(freebsd, sys_thr_self);
215 DECL_TEMPLATE(freebsd, sys_thr_set_name);
216 DECL_TEMPLATE(freebsd, sys_rtprio_thread);
217 DECL_TEMPLATE(freebsd, sys_fork);
218 DECL_TEMPLATE(freebsd, sys_vfork);
219 DECL_TEMPLATE(freebsd, sys_modfind);
220 DECL_TEMPLATE(freebsd, sys_modstat);
221 DECL_TEMPLATE(freebsd, sys_lkmnosys0);
222 DECL_TEMPLATE(freebsd, sys_lkmnosys1);
223 DECL_TEMPLATE(freebsd, sys_lkmnosys2);
224 DECL_TEMPLATE(freebsd, sys_lkmnosys3);
225 DECL_TEMPLATE(freebsd, sys_lkmnosys4);
226 DECL_TEMPLATE(freebsd, sys_lkmnosys5);
227 DECL_TEMPLATE(freebsd, sys_lkmnosys6);
228 DECL_TEMPLATE(freebsd, sys_lkmnosys7);
229 DECL_TEMPLATE(freebsd, sys_lkmnosys8);
230 DECL_TEMPLATE(freebsd, sys_sigaction4);
231 DECL_TEMPLATE(freebsd, sys_mmap7);
232 DECL_TEMPLATE(freebsd, sys_lseek7);
233 DECL_TEMPLATE(freebsd, sys_truncate7);
234 DECL_TEMPLATE(freebsd, sys_ftruncate7);
235 DECL_TEMPLATE(freebsd, sys_pread7);
236 DECL_TEMPLATE(freebsd, sys_pwrite7);
237 DECL_TEMPLATE(freebsd, sys__umtx_op);
238 DECL_TEMPLATE(freebsd, sys__umtx_lock);
239 DECL_TEMPLATE(freebsd, sys__umtx_unlock);
240 DECL_TEMPLATE(freebsd, sys_thr_kill2);
241 DECL_TEMPLATE(freebsd, sys_thr_wake);
242 DECL_TEMPLATE(freebsd, sys_shm_open);
243 DECL_TEMPLATE(freebsd, sys_shm_unlink);
244 DECL_TEMPLATE(freebsd, sys_eaccess);
245 DECL_TEMPLATE(freebsd, sys_cpuset);
246 DECL_TEMPLATE(freebsd, sys_cpuset_setid);
247 DECL_TEMPLATE(freebsd, sys_cpuset_getid);
248 DECL_TEMPLATE(freebsd, sys_cpuset_getaffinity);
249 DECL_TEMPLATE(freebsd, sys_cpuset_setaffinity);
250 DECL_TEMPLATE(freebsd, sys_faccessat);
251 DECL_TEMPLATE(freebsd, sys_fchmodat);
252 DECL_TEMPLATE(freebsd, sys_fchownat);
253 DECL_TEMPLATE(freebsd, sys_fexecve);
254 DECL_TEMPLATE(freebsd, sys_fstatat);
255 DECL_TEMPLATE(freebsd, sys_futimesat);
256 DECL_TEMPLATE(freebsd, sys_linkat);
257 DECL_TEMPLATE(freebsd, sys_mkdirat);
258 DECL_TEMPLATE(freebsd, sys_mkfifoat);
259 DECL_TEMPLATE(freebsd, sys_mknodat);
260 DECL_TEMPLATE(freebsd, sys_openat);
261 DECL_TEMPLATE(freebsd, sys_readlinkat);
262 DECL_TEMPLATE(freebsd, sys_renameat);
263 DECL_TEMPLATE(freebsd, sys_symlinkat);
264 DECL_TEMPLATE(freebsd, sys_unlinkat);
265 DECL_TEMPLATE(freebsd, sys_posix_openpt);
266 DECL_TEMPLATE(freebsd, sys_kenv);
267 DECL_TEMPLATE(freebsd, sys_uuidgen);
268 DECL_TEMPLATE(freebsd, sys_thr_new);
269 DECL_TEMPLATE(freebsd, sys_thr_kill);
270 DECL_TEMPLATE(freebsd, sys_thr_kill2);
271 DECL_TEMPLATE(freebsd, sys_fcntl);
272 DECL_TEMPLATE(freebsd, sys_ioctl);
273 DECL_TEMPLATE(freebsd, sys_mq_open);
274 DECL_TEMPLATE(freebsd, sys_mq_unlink);
275 #endif   // __PRIV_SYSWRAP_FREEBSD_H
276 
277 /*--------------------------------------------------------------------*/
278 /*--- end                                                          ---*/
279 /*--------------------------------------------------------------------*/
280