]> git.ipfire.org Git - thirdparty/gcc.git/blame - libsanitizer/sanitizer_common/sanitizer_syscalls_netbsd.inc
Libsanitizer: merge from master.
[thirdparty/gcc.git] / libsanitizer / sanitizer_common / sanitizer_syscalls_netbsd.inc
CommitLineData
eac97531
ML
1//===-- sanitizer_syscalls_netbsd.inc ---------------------------*- C++ -*-===//
2//
b667dd70
ML
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
eac97531
ML
6//
7//===----------------------------------------------------------------------===//
8//
9// Common syscalls handlers for tools like AddressSanitizer,
10// ThreadSanitizer, MemorySanitizer, etc.
11//
12// This file should be included into the tool's interceptor file,
13// which has to define it's own macros:
14// COMMON_SYSCALL_PRE_READ_RANGE
15// Called in prehook for regions that will be read by the kernel and
16// must be initialized.
17// COMMON_SYSCALL_PRE_WRITE_RANGE
18// Called in prehook for regions that will be written to by the kernel
19// and must be addressable. The actual write range may be smaller than
20// reported in the prehook. See POST_WRITE_RANGE.
21// COMMON_SYSCALL_POST_READ_RANGE
22// Called in posthook for regions that were read by the kernel. Does
23// not make much sense.
24// COMMON_SYSCALL_POST_WRITE_RANGE
25// Called in posthook for regions that were written to by the kernel
26// and are now initialized.
27// COMMON_SYSCALL_ACQUIRE(addr)
28// Acquire memory visibility from addr.
29// COMMON_SYSCALL_RELEASE(addr)
30// Release memory visibility to addr.
31// COMMON_SYSCALL_FD_CLOSE(fd)
32// Called before closing file descriptor fd.
33// COMMON_SYSCALL_FD_ACQUIRE(fd)
34// Acquire memory visibility from fd.
35// COMMON_SYSCALL_FD_RELEASE(fd)
36// Release memory visibility to fd.
37// COMMON_SYSCALL_PRE_FORK()
38// Called before fork syscall.
39// COMMON_SYSCALL_POST_FORK(long long res)
40// Called after fork syscall.
41//
42// DO NOT EDIT! THIS FILE HAS BEEN GENERATED!
43//
44// Generated with: generate_netbsd_syscalls.awk
3c6331c2 45// Generated date: 2019-12-24
cb7dc4da 46// Generated from: syscalls.master,v 1.296 2019/09/22 22:59:39 christos Exp
eac97531
ML
47//
48//===----------------------------------------------------------------------===//
49
50#include "sanitizer_platform.h"
51#if SANITIZER_NETBSD
52
53#include "sanitizer_libc.h"
54
55#define PRE_SYSCALL(name) \
56 SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_syscall_pre_impl_##name
57#define PRE_READ(p, s) COMMON_SYSCALL_PRE_READ_RANGE(p, s)
58#define PRE_WRITE(p, s) COMMON_SYSCALL_PRE_WRITE_RANGE(p, s)
59
60#define POST_SYSCALL(name) \
61 SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_syscall_post_impl_##name
62#define POST_READ(p, s) COMMON_SYSCALL_POST_READ_RANGE(p, s)
63#define POST_WRITE(p, s) COMMON_SYSCALL_POST_WRITE_RANGE(p, s)
64
65#ifndef COMMON_SYSCALL_ACQUIRE
66#define COMMON_SYSCALL_ACQUIRE(addr) ((void)(addr))
67#endif
68
69#ifndef COMMON_SYSCALL_RELEASE
70#define COMMON_SYSCALL_RELEASE(addr) ((void)(addr))
71#endif
72
73#ifndef COMMON_SYSCALL_FD_CLOSE
74#define COMMON_SYSCALL_FD_CLOSE(fd) ((void)(fd))
75#endif
76
77#ifndef COMMON_SYSCALL_FD_ACQUIRE
78#define COMMON_SYSCALL_FD_ACQUIRE(fd) ((void)(fd))
79#endif
80
81#ifndef COMMON_SYSCALL_FD_RELEASE
82#define COMMON_SYSCALL_FD_RELEASE(fd) ((void)(fd))
83#endif
84
85#ifndef COMMON_SYSCALL_PRE_FORK
86#define COMMON_SYSCALL_PRE_FORK() \
87 {}
88#endif
89
90#ifndef COMMON_SYSCALL_POST_FORK
91#define COMMON_SYSCALL_POST_FORK(res) \
92 {}
93#endif
94
95// FIXME: do some kind of PRE_READ for all syscall arguments (int(s) and such).
96
97extern "C" {
98#define SYS_MAXSYSARGS 8
99PRE_SYSCALL(syscall)(long long code_, long long args_[SYS_MAXSYSARGS]) {
100 /* Nothing to do */
101}
102POST_SYSCALL(syscall)
103(long long res, long long code_, long long args_[SYS_MAXSYSARGS]) {
104 /* Nothing to do */
105}
106PRE_SYSCALL(exit)(long long rval_) { /* Nothing to do */ }
107POST_SYSCALL(exit)(long long res, long long rval_) { /* Nothing to do */ }
108PRE_SYSCALL(fork)(void) { COMMON_SYSCALL_PRE_FORK(); }
109POST_SYSCALL(fork)(long long res) { COMMON_SYSCALL_POST_FORK(res); }
110PRE_SYSCALL(read)(long long fd_, void *buf_, long long nbyte_) {
111 if (buf_) {
112 PRE_WRITE(buf_, nbyte_);
113 }
114}
115POST_SYSCALL(read)(long long res, long long fd_, void *buf_, long long nbyte_) {
116 if (res > 0) {
117 POST_WRITE(buf_, res);
118 }
119}
120PRE_SYSCALL(write)(long long fd_, void *buf_, long long nbyte_) {
121 if (buf_) {
122 PRE_READ(buf_, nbyte_);
123 }
124}
125POST_SYSCALL(write)
126(long long res, long long fd_, void *buf_, long long nbyte_) {
127 if (res > 0) {
128 POST_READ(buf_, res);
129 }
130}
131PRE_SYSCALL(open)(void *path_, long long flags_, long long mode_) {
132 const char *path = (const char *)path_;
133 if (path) {
134 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
135 }
136}
137POST_SYSCALL(open)
138(long long res, void *path_, long long flags_, long long mode_) {
139 if (res > 0) {
140 const char *path = (const char *)path_;
141 if (path) {
142 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
143 }
144 }
145}
146PRE_SYSCALL(close)(long long fd_) { COMMON_SYSCALL_FD_CLOSE((int)fd_); }
147POST_SYSCALL(close)(long long res, long long fd_) { /* Nothing to do */ }
148PRE_SYSCALL(compat_50_wait4)
149(long long pid_, void *status_, long long options_, void *rusage_) {
150 /* TODO */
151}
152POST_SYSCALL(compat_50_wait4)
153(long long res, long long pid_, void *status_, long long options_,
154 void *rusage_) {
155 /* TODO */
156}
157PRE_SYSCALL(compat_43_ocreat)(void *path_, long long mode_) { /* TODO */ }
158POST_SYSCALL(compat_43_ocreat)(long long res, void *path_, long long mode_) {
159 /* TODO */
160}
161PRE_SYSCALL(link)(void *path_, void *link_) {
162 const char *path = (const char *)path_;
163 const char *link = (const char *)link_;
164 if (path) {
165 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
166 }
167 if (link) {
168 PRE_READ(path, __sanitizer::internal_strlen(link) + 1);
169 }
170}
171POST_SYSCALL(link)(long long res, void *path_, void *link_) {
172 if (res == 0) {
173 const char *path = (const char *)path_;
174 const char *link = (const char *)link_;
175 if (path) {
176 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
177 }
178 if (link) {
179 POST_READ(path, __sanitizer::internal_strlen(link) + 1);
180 }
181 }
182}
183PRE_SYSCALL(unlink)(void *path_) {
184 const char *path = (const char *)path_;
185 if (path) {
186 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
187 }
188}
189POST_SYSCALL(unlink)(long long res, void *path_) {
190 if (res == 0) {
191 const char *path = (const char *)path_;
192 if (path) {
193 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
194 }
195 }
196}
197/* syscall 11 has been skipped */
198PRE_SYSCALL(chdir)(void *path_) {
199 const char *path = (const char *)path_;
200 if (path) {
201 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
202 }
203}
204POST_SYSCALL(chdir)(long long res, void *path_) {
205 if (res == 0) {
206 const char *path = (const char *)path_;
207 if (path) {
208 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
209 }
210 }
211}
212PRE_SYSCALL(fchdir)(long long fd_) { /* Nothing to do */ }
213POST_SYSCALL(fchdir)(long long res, long long fd_) { /* Nothing to do */ }
214PRE_SYSCALL(compat_50_mknod)(void *path_, long long mode_, long long dev_) {
215 /* TODO */
216}
217POST_SYSCALL(compat_50_mknod)
218(long long res, void *path_, long long mode_, long long dev_) {
219 /* TODO */
220}
221PRE_SYSCALL(chmod)(void *path_, long long mode_) {
222 const char *path = (const char *)path_;
223 if (path) {
224 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
225 }
226}
227POST_SYSCALL(chmod)(long long res, void *path_, long long mode_) {
228 if (res == 0) {
229 const char *path = (const char *)path_;
230 if (path) {
231 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
232 }
233 }
234}
235PRE_SYSCALL(chown)(void *path_, long long uid_, long long gid_) {
236 const char *path = (const char *)path_;
237 if (path) {
238 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
239 }
240}
241POST_SYSCALL(chown)
242(long long res, void *path_, long long uid_, long long gid_) {
243 if (res == 0) {
244 const char *path = (const char *)path_;
245 if (path) {
246 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
247 }
248 }
249}
250PRE_SYSCALL(break)(void *nsize_) { /* Nothing to do */ }
251POST_SYSCALL(break)(long long res, void *nsize_) { /* Nothing to do */ }
252PRE_SYSCALL(compat_20_getfsstat)
253(void *buf_, long long bufsize_, long long flags_) {
254 /* TODO */
255}
256POST_SYSCALL(compat_20_getfsstat)
257(long long res, void *buf_, long long bufsize_, long long flags_) {
258 /* TODO */
259}
260PRE_SYSCALL(compat_43_olseek)
261(long long fd_, long long offset_, long long whence_) {
262 /* TODO */
263}
264POST_SYSCALL(compat_43_olseek)
265(long long res, long long fd_, long long offset_, long long whence_) {
266 /* TODO */
267}
268PRE_SYSCALL(getpid)(void) { /* Nothing to do */ }
269POST_SYSCALL(getpid)(long long res) { /* Nothing to do */ }
270PRE_SYSCALL(compat_40_mount)
271(void *type_, void *path_, long long flags_, void *data_) {
272 /* TODO */
273}
274POST_SYSCALL(compat_40_mount)
275(long long res, void *type_, void *path_, long long flags_, void *data_) {
276 /* TODO */
277}
278PRE_SYSCALL(unmount)(void *path_, long long flags_) {
279 const char *path = (const char *)path_;
280 if (path) {
281 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
282 }
283}
284POST_SYSCALL(unmount)(long long res, void *path_, long long flags_) {
285 if (res == 0) {
286 const char *path = (const char *)path_;
287 if (path) {
288 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
289 }
290 }
291}
292PRE_SYSCALL(setuid)(long long uid_) { /* Nothing to do */ }
293POST_SYSCALL(setuid)(long long res, long long uid_) { /* Nothing to do */ }
294PRE_SYSCALL(getuid)(void) { /* Nothing to do */ }
295POST_SYSCALL(getuid)(long long res) { /* Nothing to do */ }
296PRE_SYSCALL(geteuid)(void) { /* Nothing to do */ }
297POST_SYSCALL(geteuid)(long long res) { /* Nothing to do */ }
298PRE_SYSCALL(ptrace)
299(long long req_, long long pid_, void *addr_, long long data_) {
300 if (req_ == ptrace_pt_io) {
301 struct __sanitizer_ptrace_io_desc *addr =
302 (struct __sanitizer_ptrace_io_desc *)addr_;
303 PRE_READ(addr, struct_ptrace_ptrace_io_desc_struct_sz);
304 if (addr->piod_op == ptrace_piod_write_d ||
305 addr->piod_op == ptrace_piod_write_i) {
306 PRE_READ(addr->piod_addr, addr->piod_len);
307 }
308 if (addr->piod_op == ptrace_piod_read_d ||
309 addr->piod_op == ptrace_piod_read_i ||
310 addr->piod_op == ptrace_piod_read_auxv) {
311 PRE_WRITE(addr->piod_addr, addr->piod_len);
312 }
313 } else if (req_ == ptrace_pt_lwpinfo) {
314 struct __sanitizer_ptrace_lwpinfo *addr =
315 (struct __sanitizer_ptrace_lwpinfo *)addr_;
316 PRE_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t));
317 PRE_WRITE(addr, struct_ptrace_ptrace_lwpinfo_struct_sz);
318 } else if (req_ == ptrace_pt_set_event_mask) {
319 PRE_READ(addr_, struct_ptrace_ptrace_event_struct_sz);
320 } else if (req_ == ptrace_pt_get_event_mask) {
321 PRE_WRITE(addr_, struct_ptrace_ptrace_event_struct_sz);
322 } else if (req_ == ptrace_pt_set_siginfo) {
323 PRE_READ(addr_, struct_ptrace_ptrace_siginfo_struct_sz);
324 } else if (req_ == ptrace_pt_get_siginfo) {
325 PRE_WRITE(addr_, struct_ptrace_ptrace_siginfo_struct_sz);
3c6331c2
ML
326 } else if (req_ == ptrace_pt_lwpstatus) {
327 struct __sanitizer_ptrace_lwpstatus *addr =
328 (struct __sanitizer_ptrace_lwpstatus *)addr_;
329 PRE_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t));
330 PRE_WRITE(addr, struct_ptrace_ptrace_lwpstatus_struct_sz);
331 } else if (req_ == ptrace_pt_lwpnext) {
332 struct __sanitizer_ptrace_lwpstatus *addr =
333 (struct __sanitizer_ptrace_lwpstatus *)addr_;
334 PRE_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t));
335 PRE_WRITE(addr, struct_ptrace_ptrace_lwpstatus_struct_sz);
eac97531
ML
336 } else if (req_ == ptrace_pt_setregs) {
337 PRE_READ(addr_, struct_ptrace_reg_struct_sz);
338 } else if (req_ == ptrace_pt_getregs) {
339 PRE_WRITE(addr_, struct_ptrace_reg_struct_sz);
340 } else if (req_ == ptrace_pt_setfpregs) {
341 PRE_READ(addr_, struct_ptrace_fpreg_struct_sz);
342 } else if (req_ == ptrace_pt_getfpregs) {
343 PRE_WRITE(addr_, struct_ptrace_fpreg_struct_sz);
344 } else if (req_ == ptrace_pt_setdbregs) {
345 PRE_READ(addr_, struct_ptrace_dbreg_struct_sz);
346 } else if (req_ == ptrace_pt_getdbregs) {
347 PRE_WRITE(addr_, struct_ptrace_dbreg_struct_sz);
348 }
349}
350POST_SYSCALL(ptrace)
351(long long res, long long req_, long long pid_, void *addr_, long long data_) {
352 if (res == 0) {
353 if (req_ == ptrace_pt_io) {
354 struct __sanitizer_ptrace_io_desc *addr =
355 (struct __sanitizer_ptrace_io_desc *)addr_;
356 POST_READ(addr, struct_ptrace_ptrace_io_desc_struct_sz);
357 if (addr->piod_op == ptrace_piod_write_d ||
358 addr->piod_op == ptrace_piod_write_i) {
359 POST_READ(addr->piod_addr, addr->piod_len);
360 }
361 if (addr->piod_op == ptrace_piod_read_d ||
362 addr->piod_op == ptrace_piod_read_i ||
363 addr->piod_op == ptrace_piod_read_auxv) {
364 POST_WRITE(addr->piod_addr, addr->piod_len);
365 }
366 } else if (req_ == ptrace_pt_lwpinfo) {
367 struct __sanitizer_ptrace_lwpinfo *addr =
368 (struct __sanitizer_ptrace_lwpinfo *)addr_;
369 POST_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t));
370 POST_WRITE(addr, struct_ptrace_ptrace_lwpinfo_struct_sz);
371 } else if (req_ == ptrace_pt_set_event_mask) {
372 POST_READ(addr_, struct_ptrace_ptrace_event_struct_sz);
373 } else if (req_ == ptrace_pt_get_event_mask) {
374 POST_WRITE(addr_, struct_ptrace_ptrace_event_struct_sz);
375 } else if (req_ == ptrace_pt_set_siginfo) {
376 POST_READ(addr_, struct_ptrace_ptrace_siginfo_struct_sz);
377 } else if (req_ == ptrace_pt_get_siginfo) {
378 POST_WRITE(addr_, struct_ptrace_ptrace_siginfo_struct_sz);
3c6331c2
ML
379 } else if (req_ == ptrace_pt_lwpstatus) {
380 struct __sanitizer_ptrace_lwpstatus *addr =
381 (struct __sanitizer_ptrace_lwpstatus *)addr_;
382 POST_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t));
383 POST_WRITE(addr, struct_ptrace_ptrace_lwpstatus_struct_sz);
384 } else if (req_ == ptrace_pt_lwpnext) {
385 struct __sanitizer_ptrace_lwpstatus *addr =
386 (struct __sanitizer_ptrace_lwpstatus *)addr_;
387 POST_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t));
388 POST_WRITE(addr, struct_ptrace_ptrace_lwpstatus_struct_sz);
eac97531
ML
389 } else if (req_ == ptrace_pt_setregs) {
390 POST_READ(addr_, struct_ptrace_reg_struct_sz);
391 } else if (req_ == ptrace_pt_getregs) {
392 POST_WRITE(addr_, struct_ptrace_reg_struct_sz);
393 } else if (req_ == ptrace_pt_setfpregs) {
394 POST_READ(addr_, struct_ptrace_fpreg_struct_sz);
395 } else if (req_ == ptrace_pt_getfpregs) {
396 POST_WRITE(addr_, struct_ptrace_fpreg_struct_sz);
397 } else if (req_ == ptrace_pt_setdbregs) {
398 POST_READ(addr_, struct_ptrace_dbreg_struct_sz);
399 } else if (req_ == ptrace_pt_getdbregs) {
400 POST_WRITE(addr_, struct_ptrace_dbreg_struct_sz);
401 }
402 }
403}
404PRE_SYSCALL(recvmsg)(long long s_, void *msg_, long long flags_) {
405 PRE_WRITE(msg_, sizeof(__sanitizer_msghdr));
406}
407POST_SYSCALL(recvmsg)
408(long long res, long long s_, void *msg_, long long flags_) {
409 if (res > 0) {
410 POST_WRITE(msg_, sizeof(__sanitizer_msghdr));
411 }
412}
413PRE_SYSCALL(sendmsg)(long long s_, void *msg_, long long flags_) {
414 PRE_READ(msg_, sizeof(__sanitizer_msghdr));
415}
416POST_SYSCALL(sendmsg)
417(long long res, long long s_, void *msg_, long long flags_) {
418 if (res > 0) {
419 POST_READ(msg_, sizeof(__sanitizer_msghdr));
420 }
421}
422PRE_SYSCALL(recvfrom)
423(long long s_, void *buf_, long long len_, long long flags_, void *from_,
424 void *fromlenaddr_) {
425 PRE_WRITE(buf_, len_);
426 PRE_WRITE(from_, struct_sockaddr_sz);
427 PRE_WRITE(fromlenaddr_, sizeof(__sanitizer_socklen_t));
428}
429POST_SYSCALL(recvfrom)
430(long long res, long long s_, void *buf_, long long len_, long long flags_,
431 void *from_, void *fromlenaddr_) {
432 if (res >= 0) {
433 POST_WRITE(buf_, res);
434 POST_WRITE(from_, struct_sockaddr_sz);
435 POST_WRITE(fromlenaddr_, sizeof(__sanitizer_socklen_t));
436 }
437}
438PRE_SYSCALL(accept)(long long s_, void *name_, void *anamelen_) {
439 PRE_WRITE(name_, struct_sockaddr_sz);
440 PRE_WRITE(anamelen_, sizeof(__sanitizer_socklen_t));
441}
442POST_SYSCALL(accept)
443(long long res, long long s_, void *name_, void *anamelen_) {
444 if (res == 0) {
445 POST_WRITE(name_, struct_sockaddr_sz);
446 POST_WRITE(anamelen_, sizeof(__sanitizer_socklen_t));
447 }
448}
449PRE_SYSCALL(getpeername)(long long fdes_, void *asa_, void *alen_) {
450 PRE_WRITE(asa_, struct_sockaddr_sz);
451 PRE_WRITE(alen_, sizeof(__sanitizer_socklen_t));
452}
453POST_SYSCALL(getpeername)
454(long long res, long long fdes_, void *asa_, void *alen_) {
455 if (res == 0) {
456 POST_WRITE(asa_, struct_sockaddr_sz);
457 POST_WRITE(alen_, sizeof(__sanitizer_socklen_t));
458 }
459}
460PRE_SYSCALL(getsockname)(long long fdes_, void *asa_, void *alen_) {
461 PRE_WRITE(asa_, struct_sockaddr_sz);
462 PRE_WRITE(alen_, sizeof(__sanitizer_socklen_t));
463}
464POST_SYSCALL(getsockname)
465(long long res, long long fdes_, void *asa_, void *alen_) {
466 if (res == 0) {
467 POST_WRITE(asa_, struct_sockaddr_sz);
468 POST_WRITE(alen_, sizeof(__sanitizer_socklen_t));
469 }
470}
471PRE_SYSCALL(access)(void *path_, long long flags_) {
472 const char *path = (const char *)path_;
473 if (path) {
474 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
475 }
476}
477POST_SYSCALL(access)(long long res, void *path_, long long flags_) {
478 if (res == 0) {
479 const char *path = (const char *)path_;
480 if (path) {
481 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
482 }
483 }
484}
485PRE_SYSCALL(chflags)(void *path_, long long flags_) {
486 const char *path = (const char *)path_;
487 if (path) {
488 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
489 }
490}
491POST_SYSCALL(chflags)(long long res, void *path_, long long flags_) {
492 if (res == 0) {
493 const char *path = (const char *)path_;
494 if (path) {
495 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
496 }
497 }
498}
499PRE_SYSCALL(fchflags)(long long fd_, long long flags_) { /* Nothing to do */ }
500POST_SYSCALL(fchflags)(long long res, long long fd_, long long flags_) {
501 /* Nothing to do */
502}
503PRE_SYSCALL(sync)(void) { /* Nothing to do */ }
504POST_SYSCALL(sync)(long long res) { /* Nothing to do */ }
505PRE_SYSCALL(kill)(long long pid_, long long signum_) { /* Nothing to do */ }
506POST_SYSCALL(kill)(long long res, long long pid_, long long signum_) {
507 /* Nothing to do */
508}
509PRE_SYSCALL(compat_43_stat43)(void *path_, void *ub_) { /* TODO */ }
510POST_SYSCALL(compat_43_stat43)(long long res, void *path_, void *ub_) {
511 /* TODO */
512}
513PRE_SYSCALL(getppid)(void) { /* Nothing to do */ }
514POST_SYSCALL(getppid)(long long res) { /* Nothing to do */ }
515PRE_SYSCALL(compat_43_lstat43)(void *path_, void *ub_) { /* TODO */ }
516POST_SYSCALL(compat_43_lstat43)(long long res, void *path_, void *ub_) {
517 /* TODO */
518}
519PRE_SYSCALL(dup)(long long fd_) { /* Nothing to do */ }
520POST_SYSCALL(dup)(long long res, long long fd_) { /* Nothing to do */ }
521PRE_SYSCALL(pipe)(void) {
522 /* pipe returns two descriptors through two returned values */
523}
524POST_SYSCALL(pipe)(long long res) {
525 /* pipe returns two descriptors through two returned values */
526}
527PRE_SYSCALL(getegid)(void) { /* Nothing to do */ }
528POST_SYSCALL(getegid)(long long res) { /* Nothing to do */ }
529PRE_SYSCALL(profil)
530(void *samples_, long long size_, long long offset_, long long scale_) {
531 if (samples_) {
532 PRE_WRITE(samples_, size_);
533 }
534}
535POST_SYSCALL(profil)
536(long long res, void *samples_, long long size_, long long offset_,
537 long long scale_) {
538 if (res == 0) {
539 if (samples_) {
540 POST_WRITE(samples_, size_);
541 }
542 }
543}
544PRE_SYSCALL(ktrace)
545(void *fname_, long long ops_, long long facs_, long long pid_) {
546 const char *fname = (const char *)fname_;
547 if (fname) {
548 PRE_READ(fname, __sanitizer::internal_strlen(fname) + 1);
549 }
550}
551POST_SYSCALL(ktrace)
552(long long res, void *fname_, long long ops_, long long facs_, long long pid_) {
553 const char *fname = (const char *)fname_;
554 if (res == 0) {
555 if (fname) {
556 POST_READ(fname, __sanitizer::internal_strlen(fname) + 1);
557 }
558 }
559}
560PRE_SYSCALL(compat_13_sigaction13)(long long signum_, void *nsa_, void *osa_) {
561 /* TODO */
562}
563POST_SYSCALL(compat_13_sigaction13)
564(long long res, long long signum_, void *nsa_, void *osa_) {
565 /* TODO */
566}
567PRE_SYSCALL(getgid)(void) { /* Nothing to do */ }
568POST_SYSCALL(getgid)(long long res) { /* Nothing to do */ }
569PRE_SYSCALL(compat_13_sigprocmask13)(long long how_, long long mask_) {
570 /* TODO */
571}
572POST_SYSCALL(compat_13_sigprocmask13)
573(long long res, long long how_, long long mask_) {
574 /* TODO */
575}
576PRE_SYSCALL(__getlogin)(void *namebuf_, long long namelen_) {
577 if (namebuf_) {
578 PRE_WRITE(namebuf_, namelen_);
579 }
580}
581POST_SYSCALL(__getlogin)(long long res, void *namebuf_, long long namelen_) {
582 if (res == 0) {
583 if (namebuf_) {
584 POST_WRITE(namebuf_, namelen_);
585 }
586 }
587}
588PRE_SYSCALL(__setlogin)(void *namebuf_) {
589 const char *namebuf = (const char *)namebuf_;
590 if (namebuf) {
591 PRE_READ(namebuf, __sanitizer::internal_strlen(namebuf) + 1);
592 }
593}
594POST_SYSCALL(__setlogin)(long long res, void *namebuf_) {
595 if (res == 0) {
596 const char *namebuf = (const char *)namebuf_;
597 if (namebuf) {
598 POST_READ(namebuf, __sanitizer::internal_strlen(namebuf) + 1);
599 }
600 }
601}
602PRE_SYSCALL(acct)(void *path_) {
603 const char *path = (const char *)path_;
604 if (path) {
605 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
606 }
607}
608POST_SYSCALL(acct)(long long res, void *path_) {
609 if (res == 0) {
610 const char *path = (const char *)path_;
611 if (path) {
612 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
613 }
614 }
615}
616PRE_SYSCALL(compat_13_sigpending13)(void) { /* TODO */ }
617POST_SYSCALL(compat_13_sigpending13)(long long res) { /* TODO */ }
618PRE_SYSCALL(compat_13_sigaltstack13)(void *nss_, void *oss_) { /* TODO */ }
619POST_SYSCALL(compat_13_sigaltstack13)(long long res, void *nss_, void *oss_) {
620 /* TODO */
621}
622PRE_SYSCALL(ioctl)(long long fd_, long long com_, void *data_) {
623 /* Nothing to do */
624}
625POST_SYSCALL(ioctl)(long long res, long long fd_, long long com_, void *data_) {
626 /* Nothing to do */
627}
628PRE_SYSCALL(compat_12_oreboot)(long long opt_) { /* TODO */ }
629POST_SYSCALL(compat_12_oreboot)(long long res, long long opt_) { /* TODO */ }
630PRE_SYSCALL(revoke)(void *path_) {
631 const char *path = (const char *)path_;
632 if (path) {
633 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
634 }
635}
636POST_SYSCALL(revoke)(long long res, void *path_) {
637 if (res == 0) {
638 const char *path = (const char *)path_;
639 if (path) {
640 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
641 }
642 }
643}
644PRE_SYSCALL(symlink)(void *path_, void *link_) {
645 const char *path = (const char *)path_;
646 const char *link = (const char *)link_;
647 if (path) {
648 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
649 }
650 if (link) {
651 PRE_READ(link, __sanitizer::internal_strlen(link) + 1);
652 }
653}
654POST_SYSCALL(symlink)(long long res, void *path_, void *link_) {
655 if (res == 0) {
656 const char *path = (const char *)path_;
657 const char *link = (const char *)link_;
658 if (path) {
659 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
660 }
661 if (link) {
662 POST_READ(link, __sanitizer::internal_strlen(link) + 1);
663 }
664 }
665}
666PRE_SYSCALL(readlink)(void *path_, void *buf_, long long count_) {
667 const char *path = (const char *)path_;
668 if (path) {
669 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
670 }
671 if (buf_) {
672 PRE_WRITE(buf_, count_);
673 }
674}
675POST_SYSCALL(readlink)
676(long long res, void *path_, void *buf_, long long count_) {
677 if (res > 0) {
678 const char *path = (const char *)path_;
679 if (path) {
680 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
681 }
682 if (buf_) {
683 PRE_WRITE(buf_, res);
684 }
685 }
686}
687PRE_SYSCALL(execve)(void *path_, void *argp_, void *envp_) {
688 const char *path = (const char *)path_;
689 char **argp = (char **)argp_;
690 char **envp = (char **)envp_;
691 if (path) {
692 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
693 }
694 if (argp && argp[0]) {
695 char *a = argp[0];
696 while (a++) {
697 PRE_READ(a, __sanitizer::internal_strlen(a) + 1);
698 }
699 }
700 if (envp && envp[0]) {
701 char *e = envp[0];
702 while (e++) {
703 PRE_READ(e, __sanitizer::internal_strlen(e) + 1);
704 }
705 }
706}
707POST_SYSCALL(execve)(long long res, void *path_, void *argp_, void *envp_) {
708 /* If we are here, something went wrong */
709 const char *path = (const char *)path_;
710 char **argp = (char **)argp_;
711 char **envp = (char **)envp_;
712 if (path) {
713 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
714 }
715 if (argp && argp[0]) {
716 char *a = argp[0];
717 while (a++) {
718 POST_READ(a, __sanitizer::internal_strlen(a) + 1);
719 }
720 }
721 if (envp && envp[0]) {
722 char *e = envp[0];
723 while (e++) {
724 POST_READ(e, __sanitizer::internal_strlen(e) + 1);
725 }
726 }
727}
728PRE_SYSCALL(umask)(long long newmask_) { /* Nothing to do */ }
729POST_SYSCALL(umask)(long long res, long long newmask_) { /* Nothing to do */ }
730PRE_SYSCALL(chroot)(void *path_) {
731 const char *path = (const char *)path_;
732 if (path) {
733 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
734 }
735}
736POST_SYSCALL(chroot)(long long res, void *path_) {
737 if (res == 0) {
738 const char *path = (const char *)path_;
739 if (path) {
740 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
741 }
742 }
743}
744PRE_SYSCALL(compat_43_fstat43)(long long fd_, void *sb_) { /* TODO */ }
745POST_SYSCALL(compat_43_fstat43)(long long res, long long fd_, void *sb_) {
746 /* TODO */
747}
748PRE_SYSCALL(compat_43_ogetkerninfo)
749(long long op_, void *where_, void *size_, long long arg_) {
750 /* TODO */
751}
752POST_SYSCALL(compat_43_ogetkerninfo)
753(long long res, long long op_, void *where_, void *size_, long long arg_) {
754 /* TODO */
755}
756PRE_SYSCALL(compat_43_ogetpagesize)(void) { /* TODO */ }
757POST_SYSCALL(compat_43_ogetpagesize)(long long res) { /* TODO */ }
758PRE_SYSCALL(compat_12_msync)(void *addr_, long long len_) { /* TODO */ }
759POST_SYSCALL(compat_12_msync)(long long res, void *addr_, long long len_) {
760 /* TODO */
761}
762PRE_SYSCALL(vfork)(void) { /* Nothing to do */ }
763POST_SYSCALL(vfork)(long long res) { /* Nothing to do */ }
764/* syscall 67 has been skipped */
765/* syscall 68 has been skipped */
766/* syscall 69 has been skipped */
767/* syscall 70 has been skipped */
768PRE_SYSCALL(compat_43_ommap)
769(void *addr_, long long len_, long long prot_, long long flags_, long long fd_,
770 long long pos_) {
771 /* TODO */
772}
773POST_SYSCALL(compat_43_ommap)
774(long long res, void *addr_, long long len_, long long prot_, long long flags_,
775 long long fd_, long long pos_) {
776 /* TODO */
777}
778PRE_SYSCALL(vadvise)(long long anom_) { /* Nothing to do */ }
779POST_SYSCALL(vadvise)(long long res, long long anom_) { /* Nothing to do */ }
780PRE_SYSCALL(munmap)(void *addr_, long long len_) { /* Nothing to do */ }
781POST_SYSCALL(munmap)(long long res, void *addr_, long long len_) {
782 /* Nothing to do */
783}
784PRE_SYSCALL(mprotect)(void *addr_, long long len_, long long prot_) {
785 /* Nothing to do */
786}
787POST_SYSCALL(mprotect)
788(long long res, void *addr_, long long len_, long long prot_) {
789 /* Nothing to do */
790}
791PRE_SYSCALL(madvise)(void *addr_, long long len_, long long behav_) {
792 /* Nothing to do */
793}
794POST_SYSCALL(madvise)
795(long long res, void *addr_, long long len_, long long behav_) {
796 /* Nothing to do */
797}
798/* syscall 76 has been skipped */
799/* syscall 77 has been skipped */
800PRE_SYSCALL(mincore)(void *addr_, long long len_, void *vec_) {
801 /* Nothing to do */
802}
803POST_SYSCALL(mincore)(long long res, void *addr_, long long len_, void *vec_) {
804 /* Nothing to do */
805}
806PRE_SYSCALL(getgroups)(long long gidsetsize_, void *gidset_) {
807 unsigned int *gidset = (unsigned int *)gidset_;
808 if (gidset) {
809 PRE_WRITE(gidset, sizeof(*gidset) * gidsetsize_);
810 }
811}
812POST_SYSCALL(getgroups)(long long res, long long gidsetsize_, void *gidset_) {
813 if (res == 0) {
814 unsigned int *gidset = (unsigned int *)gidset_;
815 if (gidset) {
816 POST_WRITE(gidset, sizeof(*gidset) * gidsetsize_);
817 }
818 }
819}
820PRE_SYSCALL(setgroups)(long long gidsetsize_, void *gidset_) {
821 unsigned int *gidset = (unsigned int *)gidset_;
822 if (gidset) {
823 PRE_READ(gidset, sizeof(*gidset) * gidsetsize_);
824 }
825}
826POST_SYSCALL(setgroups)(long long res, long long gidsetsize_, void *gidset_) {
827 if (res == 0) {
828 unsigned int *gidset = (unsigned int *)gidset_;
829 if (gidset) {
830 POST_READ(gidset, sizeof(*gidset) * gidsetsize_);
831 }
832 }
833}
834PRE_SYSCALL(getpgrp)(void) { /* Nothing to do */ }
835POST_SYSCALL(getpgrp)(long long res) { /* Nothing to do */ }
836PRE_SYSCALL(setpgid)(long long pid_, long long pgid_) { /* Nothing to do */ }
837POST_SYSCALL(setpgid)(long long res, long long pid_, long long pgid_) {
838 /* Nothing to do */
839}
840PRE_SYSCALL(compat_50_setitimer)(long long which_, void *itv_, void *oitv_) {
841 /* TODO */
842}
843POST_SYSCALL(compat_50_setitimer)
844(long long res, long long which_, void *itv_, void *oitv_) {
845 /* TODO */
846}
847PRE_SYSCALL(compat_43_owait)(void) { /* TODO */ }
848POST_SYSCALL(compat_43_owait)(long long res) { /* TODO */ }
849PRE_SYSCALL(compat_12_oswapon)(void *name_) { /* TODO */ }
850POST_SYSCALL(compat_12_oswapon)(long long res, void *name_) { /* TODO */ }
851PRE_SYSCALL(compat_50_getitimer)(long long which_, void *itv_) { /* TODO */ }
852POST_SYSCALL(compat_50_getitimer)(long long res, long long which_, void *itv_) {
853 /* TODO */
854}
855PRE_SYSCALL(compat_43_ogethostname)(void *hostname_, long long len_) {
856 /* TODO */
857}
858POST_SYSCALL(compat_43_ogethostname)
859(long long res, void *hostname_, long long len_) {
860 /* TODO */
861}
862PRE_SYSCALL(compat_43_osethostname)(void *hostname_, long long len_) {
863 /* TODO */
864}
865POST_SYSCALL(compat_43_osethostname)
866(long long res, void *hostname_, long long len_) {
867 /* TODO */
868}
869PRE_SYSCALL(compat_43_ogetdtablesize)(void) { /* TODO */ }
870POST_SYSCALL(compat_43_ogetdtablesize)(long long res) { /* TODO */ }
871PRE_SYSCALL(dup2)(long long from_, long long to_) { /* Nothing to do */ }
872POST_SYSCALL(dup2)(long long res, long long from_, long long to_) {
873 /* Nothing to do */
874}
875/* syscall 91 has been skipped */
876PRE_SYSCALL(fcntl)(long long fd_, long long cmd_, void *arg_) {
877 /* Nothing to do */
878}
879POST_SYSCALL(fcntl)(long long res, long long fd_, long long cmd_, void *arg_) {
880 /* Nothing to do */
881}
882PRE_SYSCALL(compat_50_select)
883(long long nd_, void *in_, void *ou_, void *ex_, void *tv_) {
884 /* TODO */
885}
886POST_SYSCALL(compat_50_select)
887(long long res, long long nd_, void *in_, void *ou_, void *ex_, void *tv_) {
888 /* TODO */
889}
890/* syscall 94 has been skipped */
891PRE_SYSCALL(fsync)(long long fd_) { /* Nothing to do */ }
892POST_SYSCALL(fsync)(long long res, long long fd_) { /* Nothing to do */ }
893PRE_SYSCALL(setpriority)(long long which_, long long who_, long long prio_) {
894 /* Nothing to do */
895}
896POST_SYSCALL(setpriority)
897(long long res, long long which_, long long who_, long long prio_) {
898 /* Nothing to do */
899}
900PRE_SYSCALL(compat_30_socket)
901(long long domain_, long long type_, long long protocol_) {
902 /* TODO */
903}
904POST_SYSCALL(compat_30_socket)
905(long long res, long long domain_, long long type_, long long protocol_) {
906 /* TODO */
907}
908PRE_SYSCALL(connect)(long long s_, void *name_, long long namelen_) {
909 PRE_READ(name_, namelen_);
910}
911POST_SYSCALL(connect)
912(long long res, long long s_, void *name_, long long namelen_) {
913 if (res == 0) {
914 POST_READ(name_, namelen_);
915 }
916}
917PRE_SYSCALL(compat_43_oaccept)(long long s_, void *name_, void *anamelen_) {
918 /* TODO */
919}
920POST_SYSCALL(compat_43_oaccept)
921(long long res, long long s_, void *name_, void *anamelen_) {
922 /* TODO */
923}
924PRE_SYSCALL(getpriority)(long long which_, long long who_) {
925 /* Nothing to do */
926}
927POST_SYSCALL(getpriority)(long long res, long long which_, long long who_) {
928 /* Nothing to do */
929}
930PRE_SYSCALL(compat_43_osend)
931(long long s_, void *buf_, long long len_, long long flags_) {
932 /* TODO */
933}
934POST_SYSCALL(compat_43_osend)
935(long long res, long long s_, void *buf_, long long len_, long long flags_) {
936 /* TODO */
937}
938PRE_SYSCALL(compat_43_orecv)
939(long long s_, void *buf_, long long len_, long long flags_) {
940 /* TODO */
941}
942POST_SYSCALL(compat_43_orecv)
943(long long res, long long s_, void *buf_, long long len_, long long flags_) {
944 /* TODO */
945}
946PRE_SYSCALL(compat_13_sigreturn13)(void *sigcntxp_) { /* TODO */ }
947POST_SYSCALL(compat_13_sigreturn13)(long long res, void *sigcntxp_) {
948 /* TODO */
949}
950PRE_SYSCALL(bind)(long long s_, void *name_, long long namelen_) {
951 PRE_READ(name_, namelen_);
952}
953POST_SYSCALL(bind)
954(long long res, long long s_, void *name_, long long namelen_) {
955 if (res == 0) {
956 PRE_READ(name_, namelen_);
957 }
958}
959PRE_SYSCALL(setsockopt)
960(long long s_, long long level_, long long name_, void *val_,
961 long long valsize_) {
962 if (val_) {
963 PRE_READ(val_, valsize_);
964 }
965}
966POST_SYSCALL(setsockopt)
967(long long res, long long s_, long long level_, long long name_, void *val_,
968 long long valsize_) {
969 if (res == 0) {
970 if (val_) {
971 POST_READ(val_, valsize_);
972 }
973 }
974}
975PRE_SYSCALL(listen)(long long s_, long long backlog_) { /* Nothing to do */ }
976POST_SYSCALL(listen)(long long res, long long s_, long long backlog_) {
977 /* Nothing to do */
978}
979/* syscall 107 has been skipped */
980PRE_SYSCALL(compat_43_osigvec)(long long signum_, void *nsv_, void *osv_) {
981 /* TODO */
982}
983POST_SYSCALL(compat_43_osigvec)
984(long long res, long long signum_, void *nsv_, void *osv_) {
985 /* TODO */
986}
987PRE_SYSCALL(compat_43_osigblock)(long long mask_) { /* TODO */ }
988POST_SYSCALL(compat_43_osigblock)(long long res, long long mask_) { /* TODO */ }
989PRE_SYSCALL(compat_43_osigsetmask)(long long mask_) { /* TODO */ }
990POST_SYSCALL(compat_43_osigsetmask)(long long res, long long mask_) {
991 /* TODO */
992}
993PRE_SYSCALL(compat_13_sigsuspend13)(long long mask_) { /* TODO */ }
994POST_SYSCALL(compat_13_sigsuspend13)(long long res, long long mask_) {
995 /* TODO */
996}
997PRE_SYSCALL(compat_43_osigstack)(void *nss_, void *oss_) { /* TODO */ }
998POST_SYSCALL(compat_43_osigstack)(long long res, void *nss_, void *oss_) {
999 /* TODO */
1000}
1001PRE_SYSCALL(compat_43_orecvmsg)(long long s_, void *msg_, long long flags_) {
1002 /* TODO */
1003}
1004POST_SYSCALL(compat_43_orecvmsg)
1005(long long res, long long s_, void *msg_, long long flags_) {
1006 /* TODO */
1007}
1008PRE_SYSCALL(compat_43_osendmsg)(long long s_, void *msg_, long long flags_) {
1009 /* TODO */
1010}
1011POST_SYSCALL(compat_43_osendmsg)
1012(long long res, long long s_, void *msg_, long long flags_) {
1013 /* TODO */
1014}
1015/* syscall 115 has been skipped */
1016PRE_SYSCALL(compat_50_gettimeofday)(void *tp_, void *tzp_) { /* TODO */ }
1017POST_SYSCALL(compat_50_gettimeofday)(long long res, void *tp_, void *tzp_) {
1018 /* TODO */
1019}
1020PRE_SYSCALL(compat_50_getrusage)(long long who_, void *rusage_) { /* TODO */ }
1021POST_SYSCALL(compat_50_getrusage)
1022(long long res, long long who_, void *rusage_) {
1023 /* TODO */
1024}
1025PRE_SYSCALL(getsockopt)
1026(long long s_, long long level_, long long name_, void *val_, void *avalsize_) {
1027 /* TODO */
1028}
1029POST_SYSCALL(getsockopt)
1030(long long res, long long s_, long long level_, long long name_, void *val_,
1031 void *avalsize_) {
1032 /* TODO */
1033}
1034/* syscall 119 has been skipped */
1035PRE_SYSCALL(readv)(long long fd_, void *iovp_, long long iovcnt_) {
1036 struct __sanitizer_iovec *iovp = (struct __sanitizer_iovec *)iovp_;
1037 int i;
1038 if (iovp) {
1039 PRE_READ(iovp, sizeof(struct __sanitizer_iovec) * iovcnt_);
1040 for (i = 0; i < iovcnt_; i++) {
1041 PRE_WRITE(iovp[i].iov_base, iovp[i].iov_len);
1042 }
1043 }
1044}
1045POST_SYSCALL(readv)
1046(long long res, long long fd_, void *iovp_, long long iovcnt_) {
1047 struct __sanitizer_iovec *iovp = (struct __sanitizer_iovec *)iovp_;
1048 int i;
1049 uptr m, n = res;
1050 if (res > 0) {
1051 if (iovp) {
1052 POST_READ(iovp, sizeof(struct __sanitizer_iovec) * iovcnt_);
1053 for (i = 0; i < iovcnt_ && n > 0; i++) {
1054 m = n > iovp[i].iov_len ? iovp[i].iov_len : n;
1055 POST_WRITE(iovp[i].iov_base, m);
1056 n -= m;
1057 }
1058 }
1059 }
1060}
1061PRE_SYSCALL(writev)(long long fd_, void *iovp_, long long iovcnt_) {
1062 struct __sanitizer_iovec *iovp = (struct __sanitizer_iovec *)iovp_;
1063 int i;
1064 if (iovp) {
1065 PRE_READ(iovp, sizeof(struct __sanitizer_iovec) * iovcnt_);
1066 for (i = 0; i < iovcnt_; i++) {
1067 PRE_READ(iovp[i].iov_base, iovp[i].iov_len);
1068 }
1069 }
1070}
1071POST_SYSCALL(writev)
1072(long long res, long long fd_, void *iovp_, long long iovcnt_) {
1073 struct __sanitizer_iovec *iovp = (struct __sanitizer_iovec *)iovp_;
1074 int i;
1075 uptr m, n = res;
1076 if (res > 0) {
1077 if (iovp) {
1078 POST_READ(iovp, sizeof(struct __sanitizer_iovec) * iovcnt_);
1079 for (i = 0; i < iovcnt_ && n > 0; i++) {
1080 m = n > iovp[i].iov_len ? iovp[i].iov_len : n;
1081 POST_READ(iovp[i].iov_base, m);
1082 n -= m;
1083 }
1084 }
1085 }
1086}
1087PRE_SYSCALL(compat_50_settimeofday)(void *tv_, void *tzp_) { /* TODO */ }
1088POST_SYSCALL(compat_50_settimeofday)(long long res, void *tv_, void *tzp_) {
1089 /* TODO */
1090}
1091PRE_SYSCALL(fchown)(long long fd_, long long uid_, long long gid_) {
1092 /* Nothing to do */
1093}
1094POST_SYSCALL(fchown)
1095(long long res, long long fd_, long long uid_, long long gid_) {
1096 /* Nothing to do */
1097}
1098PRE_SYSCALL(fchmod)(long long fd_, long long mode_) { /* Nothing to do */ }
1099POST_SYSCALL(fchmod)(long long res, long long fd_, long long mode_) {
1100 /* Nothing to do */
1101}
1102PRE_SYSCALL(compat_43_orecvfrom)
1103(long long s_, void *buf_, long long len_, long long flags_, void *from_,
1104 void *fromlenaddr_) {
1105 /* TODO */
1106}
1107POST_SYSCALL(compat_43_orecvfrom)
1108(long long res, long long s_, void *buf_, long long len_, long long flags_,
1109 void *from_, void *fromlenaddr_) {
1110 /* TODO */
1111}
1112PRE_SYSCALL(setreuid)(long long ruid_, long long euid_) { /* Nothing to do */ }
1113POST_SYSCALL(setreuid)(long long res, long long ruid_, long long euid_) {
1114 /* Nothing to do */
1115}
1116PRE_SYSCALL(setregid)(long long rgid_, long long egid_) { /* Nothing to do */ }
1117POST_SYSCALL(setregid)(long long res, long long rgid_, long long egid_) {
1118 /* Nothing to do */
1119}
1120PRE_SYSCALL(rename)(void *from_, void *to_) {
1121 const char *from = (const char *)from_;
1122 const char *to = (const char *)to_;
1123 if (from) {
1124 PRE_READ(from, __sanitizer::internal_strlen(from) + 1);
1125 }
1126 if (to) {
1127 PRE_READ(to, __sanitizer::internal_strlen(to) + 1);
1128 }
1129}
1130POST_SYSCALL(rename)(long long res, void *from_, void *to_) {
1131 if (res == 0) {
1132 const char *from = (const char *)from_;
1133 const char *to = (const char *)to_;
1134 if (from) {
1135 POST_READ(from, __sanitizer::internal_strlen(from) + 1);
1136 }
1137 if (to) {
1138 POST_READ(to, __sanitizer::internal_strlen(to) + 1);
1139 }
1140 }
1141}
1142PRE_SYSCALL(compat_43_otruncate)(void *path_, long long length_) { /* TODO */ }
1143POST_SYSCALL(compat_43_otruncate)
1144(long long res, void *path_, long long length_) {
1145 /* TODO */
1146}
1147PRE_SYSCALL(compat_43_oftruncate)(long long fd_, long long length_) {
1148 /* TODO */
1149}
1150POST_SYSCALL(compat_43_oftruncate)
1151(long long res, long long fd_, long long length_) {
1152 /* TODO */
1153}
1154PRE_SYSCALL(flock)(long long fd_, long long how_) { /* Nothing to do */ }
1155POST_SYSCALL(flock)(long long res, long long fd_, long long how_) {
1156 /* Nothing to do */
1157}
1158PRE_SYSCALL(mkfifo)(void *path_, long long mode_) {
1159 const char *path = (const char *)path_;
1160 if (path) {
1161 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
1162 }
1163}
1164POST_SYSCALL(mkfifo)(long long res, void *path_, long long mode_) {
1165 if (res == 0) {
1166 const char *path = (const char *)path_;
1167 if (path) {
1168 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
1169 }
1170 }
1171}
1172PRE_SYSCALL(sendto)
1173(long long s_, void *buf_, long long len_, long long flags_, void *to_,
1174 long long tolen_) {
1175 PRE_READ(buf_, len_);
1176 PRE_READ(to_, tolen_);
1177}
1178POST_SYSCALL(sendto)
1179(long long res, long long s_, void *buf_, long long len_, long long flags_,
1180 void *to_, long long tolen_) {
1181 if (res >= 0) {
1182 POST_READ(buf_, len_);
1183 POST_READ(to_, tolen_);
1184 }
1185}
1186PRE_SYSCALL(shutdown)(long long s_, long long how_) { /* Nothing to do */ }
1187POST_SYSCALL(shutdown)(long long res, long long s_, long long how_) {
1188 /* Nothing to do */
1189}
1190PRE_SYSCALL(socketpair)
1191(long long domain_, long long type_, long long protocol_, void *rsv_) {
1192 PRE_WRITE(rsv_, 2 * sizeof(int));
1193}
1194POST_SYSCALL(socketpair)
1195(long long res, long long domain_, long long type_, long long protocol_,
1196 void *rsv_) {
1197 if (res == 0) {
1198 POST_WRITE(rsv_, 2 * sizeof(int));
1199 }
1200}
1201PRE_SYSCALL(mkdir)(void *path_, long long mode_) {
1202 const char *path = (const char *)path_;
1203 if (path) {
1204 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
1205 }
1206}
1207POST_SYSCALL(mkdir)(long long res, void *path_, long long mode_) {
1208 if (res == 0) {
1209 const char *path = (const char *)path_;
1210 if (path) {
1211 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
1212 }
1213 }
1214}
1215PRE_SYSCALL(rmdir)(void *path_) {
1216 const char *path = (const char *)path_;
1217 if (path) {
1218 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
1219 }
1220}
1221POST_SYSCALL(rmdir)(long long res, void *path_) {
1222 if (res == 0) {
1223 const char *path = (const char *)path_;
1224 if (path) {
1225 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
1226 }
1227 }
1228}
1229PRE_SYSCALL(compat_50_utimes)(void *path_, void *tptr_) { /* TODO */ }
1230POST_SYSCALL(compat_50_utimes)(long long res, void *path_, void *tptr_) {
1231 /* TODO */
1232}
1233/* syscall 139 has been skipped */
1234PRE_SYSCALL(compat_50_adjtime)(void *delta_, void *olddelta_) { /* TODO */ }
1235POST_SYSCALL(compat_50_adjtime)(long long res, void *delta_, void *olddelta_) {
1236 /* TODO */
1237}
1238PRE_SYSCALL(compat_43_ogetpeername)(long long fdes_, void *asa_, void *alen_) {
1239 /* TODO */
1240}
1241POST_SYSCALL(compat_43_ogetpeername)
1242(long long res, long long fdes_, void *asa_, void *alen_) {
1243 /* TODO */
1244}
1245PRE_SYSCALL(compat_43_ogethostid)(void) { /* TODO */ }
1246POST_SYSCALL(compat_43_ogethostid)(long long res) { /* TODO */ }
1247PRE_SYSCALL(compat_43_osethostid)(long long hostid_) { /* TODO */ }
1248POST_SYSCALL(compat_43_osethostid)(long long res, long long hostid_) {
1249 /* TODO */
1250}
1251PRE_SYSCALL(compat_43_ogetrlimit)(long long which_, void *rlp_) { /* TODO */ }
1252POST_SYSCALL(compat_43_ogetrlimit)
1253(long long res, long long which_, void *rlp_) {
1254 /* TODO */
1255}
1256PRE_SYSCALL(compat_43_osetrlimit)(long long which_, void *rlp_) { /* TODO */ }
1257POST_SYSCALL(compat_43_osetrlimit)
1258(long long res, long long which_, void *rlp_) {
1259 /* TODO */
1260}
1261PRE_SYSCALL(compat_43_okillpg)(long long pgid_, long long signum_) {
1262 /* TODO */
1263}
1264POST_SYSCALL(compat_43_okillpg)
1265(long long res, long long pgid_, long long signum_) {
1266 /* TODO */
1267}
1268PRE_SYSCALL(setsid)(void) { /* Nothing to do */ }
1269POST_SYSCALL(setsid)(long long res) { /* Nothing to do */ }
1270PRE_SYSCALL(compat_50_quotactl)
1271(void *path_, long long cmd_, long long uid_, void *arg_) {
1272 /* TODO */
1273}
1274POST_SYSCALL(compat_50_quotactl)
1275(long long res, void *path_, long long cmd_, long long uid_, void *arg_) {
1276 /* TODO */
1277}
1278PRE_SYSCALL(compat_43_oquota)(void) { /* TODO */ }
1279POST_SYSCALL(compat_43_oquota)(long long res) { /* TODO */ }
1280PRE_SYSCALL(compat_43_ogetsockname)(long long fdec_, void *asa_, void *alen_) {
1281 /* TODO */
1282}
1283POST_SYSCALL(compat_43_ogetsockname)
1284(long long res, long long fdec_, void *asa_, void *alen_) {
1285 /* TODO */
1286}
1287/* syscall 151 has been skipped */
1288/* syscall 152 has been skipped */
1289/* syscall 153 has been skipped */
1290/* syscall 154 has been skipped */
1291PRE_SYSCALL(nfssvc)(long long flag_, void *argp_) { /* Nothing to do */ }
1292POST_SYSCALL(nfssvc)(long long res, long long flag_, void *argp_) {
1293 /* Nothing to do */
1294}
1295PRE_SYSCALL(compat_43_ogetdirentries)
1296(long long fd_, void *buf_, long long count_, void *basep_) {
1297 /* TODO */
1298}
1299POST_SYSCALL(compat_43_ogetdirentries)
1300(long long res, long long fd_, void *buf_, long long count_, void *basep_) {
1301 /* TODO */
1302}
1303PRE_SYSCALL(compat_20_statfs)(void *path_, void *buf_) { /* TODO */ }
1304POST_SYSCALL(compat_20_statfs)(long long res, void *path_, void *buf_) {
1305 /* TODO */
1306}
1307PRE_SYSCALL(compat_20_fstatfs)(long long fd_, void *buf_) { /* TODO */ }
1308POST_SYSCALL(compat_20_fstatfs)(long long res, long long fd_, void *buf_) {
1309 /* TODO */
1310}
1311/* syscall 159 has been skipped */
1312/* syscall 160 has been skipped */
1313PRE_SYSCALL(compat_30_getfh)(void *fname_, void *fhp_) { /* TODO */ }
1314POST_SYSCALL(compat_30_getfh)(long long res, void *fname_, void *fhp_) {
1315 /* TODO */
1316}
1317PRE_SYSCALL(compat_09_ogetdomainname)(void *domainname_, long long len_) {
1318 /* TODO */
1319}
1320POST_SYSCALL(compat_09_ogetdomainname)
1321(long long res, void *domainname_, long long len_) {
1322 /* TODO */
1323}
1324PRE_SYSCALL(compat_09_osetdomainname)(void *domainname_, long long len_) {
1325 /* TODO */
1326}
1327POST_SYSCALL(compat_09_osetdomainname)
1328(long long res, void *domainname_, long long len_) {
1329 /* TODO */
1330}
1331PRE_SYSCALL(compat_09_ouname)(void *name_) { /* TODO */ }
1332POST_SYSCALL(compat_09_ouname)(long long res, void *name_) { /* TODO */ }
1333PRE_SYSCALL(sysarch)(long long op_, void *parms_) { /* TODO */ }
1334POST_SYSCALL(sysarch)(long long res, long long op_, void *parms_) { /* TODO */ }
1335/* syscall 166 has been skipped */
1336/* syscall 167 has been skipped */
1337/* syscall 168 has been skipped */
1338#if !defined(_LP64)
1339PRE_SYSCALL(compat_10_osemsys)
1340(long long which_, long long a2_, long long a3_, long long a4_, long long a5_) {
1341 /* TODO */
1342}
1343POST_SYSCALL(compat_10_osemsys)
1344(long long res, long long which_, long long a2_, long long a3_, long long a4_,
1345 long long a5_) {
1346 /* TODO */
1347}
1348#else
1349/* syscall 169 has been skipped */
1350#endif
1351#if !defined(_LP64)
1352PRE_SYSCALL(compat_10_omsgsys)
1353(long long which_, long long a2_, long long a3_, long long a4_, long long a5_,
1354 long long a6_) {
1355 /* TODO */
1356}
1357POST_SYSCALL(compat_10_omsgsys)
1358(long long res, long long which_, long long a2_, long long a3_, long long a4_,
1359 long long a5_, long long a6_) {
1360 /* TODO */
1361}
1362#else
1363/* syscall 170 has been skipped */
1364#endif
1365#if !defined(_LP64)
1366PRE_SYSCALL(compat_10_oshmsys)
1367(long long which_, long long a2_, long long a3_, long long a4_) {
1368 /* TODO */
1369}
1370POST_SYSCALL(compat_10_oshmsys)
1371(long long res, long long which_, long long a2_, long long a3_, long long a4_) {
1372 /* TODO */
1373}
1374#else
1375/* syscall 171 has been skipped */
1376#endif
1377/* syscall 172 has been skipped */
1378PRE_SYSCALL(pread)
1379(long long fd_, void *buf_, long long nbyte_, long long PAD_,
1380 long long offset_) {
1381 if (buf_) {
1382 PRE_WRITE(buf_, nbyte_);
1383 }
1384}
1385POST_SYSCALL(pread)
1386(long long res, long long fd_, void *buf_, long long nbyte_, long long PAD_,
1387 long long offset_) {
1388 if (res > 0) {
1389 POST_WRITE(buf_, res);
1390 }
1391}
1392PRE_SYSCALL(pwrite)
1393(long long fd_, void *buf_, long long nbyte_, long long PAD_,
1394 long long offset_) {
1395 if (buf_) {
1396 PRE_READ(buf_, nbyte_);
1397 }
1398}
1399POST_SYSCALL(pwrite)
1400(long long res, long long fd_, void *buf_, long long nbyte_, long long PAD_,
1401 long long offset_) {
1402 if (res > 0) {
1403 POST_READ(buf_, res);
1404 }
1405}
1406PRE_SYSCALL(compat_30_ntp_gettime)(void *ntvp_) { /* TODO */ }
1407POST_SYSCALL(compat_30_ntp_gettime)(long long res, void *ntvp_) { /* TODO */ }
1408#if defined(NTP) || !defined(_KERNEL_OPT)
1409PRE_SYSCALL(ntp_adjtime)(void *tp_) { /* Nothing to do */ }
1410POST_SYSCALL(ntp_adjtime)(long long res, void *tp_) { /* Nothing to do */ }
1411#else
1412/* syscall 176 has been skipped */
1413#endif
1414/* syscall 177 has been skipped */
1415/* syscall 178 has been skipped */
1416/* syscall 179 has been skipped */
1417/* syscall 180 has been skipped */
1418PRE_SYSCALL(setgid)(long long gid_) { /* Nothing to do */ }
1419POST_SYSCALL(setgid)(long long res, long long gid_) { /* Nothing to do */ }
1420PRE_SYSCALL(setegid)(long long egid_) { /* Nothing to do */ }
1421POST_SYSCALL(setegid)(long long res, long long egid_) { /* Nothing to do */ }
1422PRE_SYSCALL(seteuid)(long long euid_) { /* Nothing to do */ }
1423POST_SYSCALL(seteuid)(long long res, long long euid_) { /* Nothing to do */ }
1424PRE_SYSCALL(lfs_bmapv)(void *fsidp_, void *blkiov_, long long blkcnt_) {
1425 /* TODO */
1426}
1427POST_SYSCALL(lfs_bmapv)
1428(long long res, void *fsidp_, void *blkiov_, long long blkcnt_) {
1429 /* TODO */
1430}
1431PRE_SYSCALL(lfs_markv)(void *fsidp_, void *blkiov_, long long blkcnt_) {
1432 /* TODO */
1433}
1434POST_SYSCALL(lfs_markv)
1435(long long res, void *fsidp_, void *blkiov_, long long blkcnt_) {
1436 /* TODO */
1437}
1438PRE_SYSCALL(lfs_segclean)(void *fsidp_, long long segment_) { /* TODO */ }
1439POST_SYSCALL(lfs_segclean)(long long res, void *fsidp_, long long segment_) {
1440 /* TODO */
1441}
1442PRE_SYSCALL(compat_50_lfs_segwait)(void *fsidp_, void *tv_) { /* TODO */ }
1443POST_SYSCALL(compat_50_lfs_segwait)(long long res, void *fsidp_, void *tv_) {
1444 /* TODO */
1445}
1446PRE_SYSCALL(compat_12_stat12)(void *path_, void *ub_) { /* TODO */ }
1447POST_SYSCALL(compat_12_stat12)(long long res, void *path_, void *ub_) {
1448 /* TODO */
1449}
1450PRE_SYSCALL(compat_12_fstat12)(long long fd_, void *sb_) { /* TODO */ }
1451POST_SYSCALL(compat_12_fstat12)(long long res, long long fd_, void *sb_) {
1452 /* TODO */
1453}
1454PRE_SYSCALL(compat_12_lstat12)(void *path_, void *ub_) { /* TODO */ }
1455POST_SYSCALL(compat_12_lstat12)(long long res, void *path_, void *ub_) {
1456 /* TODO */
1457}
1458PRE_SYSCALL(pathconf)(void *path_, long long name_) {
1459 const char *path = (const char *)path_;
1460 if (path) {
1461 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
1462 }
1463}
1464POST_SYSCALL(pathconf)(long long res, void *path_, long long name_) {
1465 if (res != -1) {
1466 const char *path = (const char *)path_;
1467 if (path) {
1468 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
1469 }
1470 }
1471}
1472PRE_SYSCALL(fpathconf)(long long fd_, long long name_) { /* Nothing to do */ }
1473POST_SYSCALL(fpathconf)(long long res, long long fd_, long long name_) {
1474 /* Nothing to do */
1475}
b667dd70
ML
1476PRE_SYSCALL(getsockopt2)
1477(long long s_, long long level_, long long name_, void *val_, void *avalsize_) {
1478 /* TODO */
1479}
1480POST_SYSCALL(getsockopt2)
1481(long long res, long long s_, long long level_, long long name_, void *val_,
1482 void *avalsize_) {
1483 /* TODO */
1484}
eac97531
ML
1485PRE_SYSCALL(getrlimit)(long long which_, void *rlp_) {
1486 PRE_WRITE(rlp_, struct_rlimit_sz);
1487}
1488POST_SYSCALL(getrlimit)(long long res, long long which_, void *rlp_) {
1489 if (res == 0) {
1490 POST_WRITE(rlp_, struct_rlimit_sz);
1491 }
1492}
1493PRE_SYSCALL(setrlimit)(long long which_, void *rlp_) {
1494 PRE_READ(rlp_, struct_rlimit_sz);
1495}
1496POST_SYSCALL(setrlimit)(long long res, long long which_, void *rlp_) {
1497 if (res == 0) {
1498 POST_READ(rlp_, struct_rlimit_sz);
1499 }
1500}
1501PRE_SYSCALL(compat_12_getdirentries)
1502(long long fd_, void *buf_, long long count_, void *basep_) {
1503 /* TODO */
1504}
1505POST_SYSCALL(compat_12_getdirentries)
1506(long long res, long long fd_, void *buf_, long long count_, void *basep_) {
1507 /* TODO */
1508}
1509PRE_SYSCALL(mmap)
1510(void *addr_, long long len_, long long prot_, long long flags_, long long fd_,
1511 long long PAD_, long long pos_) {
1512 /* Nothing to do */
1513}
1514POST_SYSCALL(mmap)
1515(long long res, void *addr_, long long len_, long long prot_, long long flags_,
1516 long long fd_, long long PAD_, long long pos_) {
1517 /* Nothing to do */
1518}
1519PRE_SYSCALL(__syscall)(long long code_, long long args_[SYS_MAXSYSARGS]) {
1520 /* Nothing to do */
1521}
1522POST_SYSCALL(__syscall)
1523(long long res, long long code_, long long args_[SYS_MAXSYSARGS]) {
1524 /* Nothing to do */
1525}
1526PRE_SYSCALL(lseek)
1527(long long fd_, long long PAD_, long long offset_, long long whence_) {
1528 /* Nothing to do */
1529}
1530POST_SYSCALL(lseek)
1531(long long res, long long fd_, long long PAD_, long long offset_,
1532 long long whence_) {
1533 /* Nothing to do */
1534}
1535PRE_SYSCALL(truncate)(void *path_, long long PAD_, long long length_) {
1536 const char *path = (const char *)path_;
1537 if (path) {
1538 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
1539 }
1540}
1541POST_SYSCALL(truncate)
1542(long long res, void *path_, long long PAD_, long long length_) {
1543 if (res == 0) {
1544 const char *path = (const char *)path_;
1545 if (path) {
1546 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
1547 }
1548 }
1549}
1550PRE_SYSCALL(ftruncate)(long long fd_, long long PAD_, long long length_) {
1551 /* Nothing to do */
1552}
1553POST_SYSCALL(ftruncate)
1554(long long res, long long fd_, long long PAD_, long long length_) {
1555 /* Nothing to do */
1556}
1557PRE_SYSCALL(__sysctl)
1558(void *name_, long long namelen_, void *oldv_, void *oldlenp_, void *newv_,
1559 long long newlen_) {
1560 const int *name = (const int *)name_;
1561 if (name) {
1562 PRE_READ(name, namelen_ * sizeof(*name));
1563 }
1564 if (newv_) {
1565 PRE_READ(name, newlen_);
1566 }
1567}
1568POST_SYSCALL(__sysctl)
1569(long long res, void *name_, long long namelen_, void *oldv_, void *oldlenp_,
1570 void *newv_, long long newlen_) {
1571 if (res == 0) {
1572 const int *name = (const int *)name_;
1573 if (name) {
1574 POST_READ(name, namelen_ * sizeof(*name));
1575 }
1576 if (newv_) {
1577 POST_READ(name, newlen_);
1578 }
1579 }
1580}
1581PRE_SYSCALL(mlock)(void *addr_, long long len_) { /* Nothing to do */ }
1582POST_SYSCALL(mlock)(long long res, void *addr_, long long len_) {
1583 /* Nothing to do */
1584}
1585PRE_SYSCALL(munlock)(void *addr_, long long len_) { /* Nothing to do */ }
1586POST_SYSCALL(munlock)(long long res, void *addr_, long long len_) {
1587 /* Nothing to do */
1588}
1589PRE_SYSCALL(undelete)(void *path_) {
1590 const char *path = (const char *)path_;
1591 if (path) {
1592 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
1593 }
1594}
1595POST_SYSCALL(undelete)(long long res, void *path_) {
1596 if (res == 0) {
1597 const char *path = (const char *)path_;
1598 if (path) {
1599 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
1600 }
1601 }
1602}
1603PRE_SYSCALL(compat_50_futimes)(long long fd_, void *tptr_) { /* TODO */ }
1604POST_SYSCALL(compat_50_futimes)(long long res, long long fd_, void *tptr_) {
1605 /* TODO */
1606}
1607PRE_SYSCALL(getpgid)(long long pid_) { /* Nothing to do */ }
1608POST_SYSCALL(getpgid)(long long res, long long pid_) { /* Nothing to do */ }
1609PRE_SYSCALL(reboot)(long long opt_, void *bootstr_) {
1610 const char *bootstr = (const char *)bootstr_;
1611 if (bootstr) {
1612 PRE_READ(bootstr, __sanitizer::internal_strlen(bootstr) + 1);
1613 }
1614}
1615POST_SYSCALL(reboot)(long long res, long long opt_, void *bootstr_) {
1616 /* This call should never return */
1617 const char *bootstr = (const char *)bootstr_;
1618 if (bootstr) {
1619 POST_READ(bootstr, __sanitizer::internal_strlen(bootstr) + 1);
1620 }
1621}
1622PRE_SYSCALL(poll)(void *fds_, long long nfds_, long long timeout_) {
1623 /* Nothing to do */
1624}
1625POST_SYSCALL(poll)
1626(long long res, void *fds_, long long nfds_, long long timeout_) {
1627 /* Nothing to do */
1628}
1629PRE_SYSCALL(afssys)
1630(long long id_, long long a1_, long long a2_, long long a3_, long long a4_,
1631 long long a5_, long long a6_) {
1632 /* TODO */
1633}
1634POST_SYSCALL(afssys)
1635(long long res, long long id_, long long a1_, long long a2_, long long a3_,
1636 long long a4_, long long a5_, long long a6_) {
1637 /* TODO */
1638}
1639/* syscall 211 has been skipped */
1640/* syscall 212 has been skipped */
1641/* syscall 213 has been skipped */
1642/* syscall 214 has been skipped */
1643/* syscall 215 has been skipped */
1644/* syscall 216 has been skipped */
1645/* syscall 217 has been skipped */
1646/* syscall 218 has been skipped */
1647/* syscall 219 has been skipped */
1648PRE_SYSCALL(compat_14___semctl)
1649(long long semid_, long long semnum_, long long cmd_, void *arg_) {
1650 /* TODO */
1651}
1652POST_SYSCALL(compat_14___semctl)
1653(long long res, long long semid_, long long semnum_, long long cmd_,
1654 void *arg_) {
1655 /* TODO */
1656}
1657PRE_SYSCALL(semget)(long long key_, long long nsems_, long long semflg_) {
1658 /* Nothing to do */
1659}
1660POST_SYSCALL(semget)
1661(long long res, long long key_, long long nsems_, long long semflg_) {
1662 /* Nothing to do */
1663}
1664PRE_SYSCALL(semop)(long long semid_, void *sops_, long long nsops_) {
1665 if (sops_) {
1666 PRE_READ(sops_, nsops_ * struct_sembuf_sz);
1667 }
1668}
1669POST_SYSCALL(semop)
1670(long long res, long long semid_, void *sops_, long long nsops_) {
1671 if (res == 0) {
1672 if (sops_) {
1673 POST_READ(sops_, nsops_ * struct_sembuf_sz);
1674 }
1675 }
1676}
1677PRE_SYSCALL(semconfig)(long long flag_) { /* Nothing to do */ }
1678POST_SYSCALL(semconfig)(long long res, long long flag_) { /* Nothing to do */ }
1679PRE_SYSCALL(compat_14_msgctl)(long long msqid_, long long cmd_, void *buf_) {
1680 /* TODO */
1681}
1682POST_SYSCALL(compat_14_msgctl)
1683(long long res, long long msqid_, long long cmd_, void *buf_) {
1684 /* TODO */
1685}
1686PRE_SYSCALL(msgget)(long long key_, long long msgflg_) { /* Nothing to do */ }
1687POST_SYSCALL(msgget)(long long res, long long key_, long long msgflg_) {
1688 /* Nothing to do */
1689}
1690PRE_SYSCALL(msgsnd)
1691(long long msqid_, void *msgp_, long long msgsz_, long long msgflg_) {
1692 if (msgp_) {
1693 PRE_READ(msgp_, msgsz_);
1694 }
1695}
1696POST_SYSCALL(msgsnd)
1697(long long res, long long msqid_, void *msgp_, long long msgsz_,
1698 long long msgflg_) {
1699 if (res == 0) {
1700 if (msgp_) {
1701 POST_READ(msgp_, msgsz_);
1702 }
1703 }
1704}
1705PRE_SYSCALL(msgrcv)
1706(long long msqid_, void *msgp_, long long msgsz_, long long msgtyp_,
1707 long long msgflg_) {
1708 /* Nothing to do */
1709}
1710POST_SYSCALL(msgrcv)
1711(long long res, long long msqid_, void *msgp_, long long msgsz_,
1712 long long msgtyp_, long long msgflg_) {
1713 /* Nothing to do */
1714}
1715PRE_SYSCALL(shmat)(long long shmid_, void *shmaddr_, long long shmflg_) {
1716 /* Nothing to do */
1717}
1718POST_SYSCALL(shmat)
1719(long long res, long long shmid_, void *shmaddr_, long long shmflg_) {
1720 /* Nothing to do */
1721}
1722PRE_SYSCALL(compat_14_shmctl)(long long shmid_, long long cmd_, void *buf_) {
1723 /* TODO */
1724}
1725POST_SYSCALL(compat_14_shmctl)
1726(long long res, long long shmid_, long long cmd_, void *buf_) {
1727 /* TODO */
1728}
1729PRE_SYSCALL(shmdt)(void *shmaddr_) { /* Nothing to do */ }
1730POST_SYSCALL(shmdt)(long long res, void *shmaddr_) { /* Nothing to do */ }
1731PRE_SYSCALL(shmget)(long long key_, long long size_, long long shmflg_) {
1732 /* Nothing to do */
1733}
1734POST_SYSCALL(shmget)
1735(long long res, long long key_, long long size_, long long shmflg_) {
1736 /* Nothing to do */
1737}
1738PRE_SYSCALL(compat_50_clock_gettime)(long long clock_id_, void *tp_) {
1739 /* TODO */
1740}
1741POST_SYSCALL(compat_50_clock_gettime)
1742(long long res, long long clock_id_, void *tp_) {
1743 /* TODO */
1744}
1745PRE_SYSCALL(compat_50_clock_settime)(long long clock_id_, void *tp_) {
1746 /* TODO */
1747}
1748POST_SYSCALL(compat_50_clock_settime)
1749(long long res, long long clock_id_, void *tp_) {
1750 /* TODO */
1751}
1752PRE_SYSCALL(compat_50_clock_getres)(long long clock_id_, void *tp_) {
1753 /* TODO */
1754}
1755POST_SYSCALL(compat_50_clock_getres)
1756(long long res, long long clock_id_, void *tp_) {
1757 /* TODO */
1758}
1759PRE_SYSCALL(timer_create)(long long clock_id_, void *evp_, void *timerid_) {
1760 /* Nothing to do */
1761}
1762POST_SYSCALL(timer_create)
1763(long long res, long long clock_id_, void *evp_, void *timerid_) {
1764 /* Nothing to do */
1765}
1766PRE_SYSCALL(timer_delete)(long long timerid_) { /* Nothing to do */ }
1767POST_SYSCALL(timer_delete)(long long res, long long timerid_) {
1768 /* Nothing to do */
1769}
1770PRE_SYSCALL(compat_50_timer_settime)
1771(long long timerid_, long long flags_, void *value_, void *ovalue_) {
1772 /* TODO */
1773}
1774POST_SYSCALL(compat_50_timer_settime)
1775(long long res, long long timerid_, long long flags_, void *value_,
1776 void *ovalue_) {
1777 /* TODO */
1778}
1779PRE_SYSCALL(compat_50_timer_gettime)(long long timerid_, void *value_) {
1780 /* TODO */
1781}
1782POST_SYSCALL(compat_50_timer_gettime)
1783(long long res, long long timerid_, void *value_) {
1784 /* TODO */
1785}
1786PRE_SYSCALL(timer_getoverrun)(long long timerid_) { /* Nothing to do */ }
1787POST_SYSCALL(timer_getoverrun)(long long res, long long timerid_) {
1788 /* Nothing to do */
1789}
1790PRE_SYSCALL(compat_50_nanosleep)(void *rqtp_, void *rmtp_) { /* TODO */ }
1791POST_SYSCALL(compat_50_nanosleep)(long long res, void *rqtp_, void *rmtp_) {
1792 /* TODO */
1793}
1794PRE_SYSCALL(fdatasync)(long long fd_) { /* Nothing to do */ }
1795POST_SYSCALL(fdatasync)(long long res, long long fd_) { /* Nothing to do */ }
1796PRE_SYSCALL(mlockall)(long long flags_) { /* Nothing to do */ }
1797POST_SYSCALL(mlockall)(long long res, long long flags_) { /* Nothing to do */ }
1798PRE_SYSCALL(munlockall)(void) { /* Nothing to do */ }
1799POST_SYSCALL(munlockall)(long long res) { /* Nothing to do */ }
1800PRE_SYSCALL(compat_50___sigtimedwait)(void *set_, void *info_, void *timeout_) {
1801 /* TODO */
1802}
1803POST_SYSCALL(compat_50___sigtimedwait)
1804(long long res, void *set_, void *info_, void *timeout_) {
1805 /* TODO */
1806}
1807PRE_SYSCALL(sigqueueinfo)(long long pid_, void *info_) {
1808 if (info_) {
1809 PRE_READ(info_, siginfo_t_sz);
1810 }
1811}
1812POST_SYSCALL(sigqueueinfo)(long long res, long long pid_, void *info_) {}
1813PRE_SYSCALL(modctl)(long long cmd_, void *arg_) { /* TODO */ }
1814POST_SYSCALL(modctl)(long long res, long long cmd_, void *arg_) { /* TODO */ }
1815PRE_SYSCALL(_ksem_init)(long long value_, void *idp_) { /* Nothing to do */ }
1816POST_SYSCALL(_ksem_init)(long long res, long long value_, void *idp_) {
1817 /* Nothing to do */
1818}
1819PRE_SYSCALL(_ksem_open)
1820(void *name_, long long oflag_, long long mode_, long long value_, void *idp_) {
1821 const char *name = (const char *)name_;
1822 if (name) {
1823 PRE_READ(name, __sanitizer::internal_strlen(name) + 1);
1824 }
1825}
1826POST_SYSCALL(_ksem_open)
1827(long long res, void *name_, long long oflag_, long long mode_,
1828 long long value_, void *idp_) {
1829 const char *name = (const char *)name_;
1830 if (name) {
1831 POST_READ(name, __sanitizer::internal_strlen(name) + 1);
1832 }
1833}
1834PRE_SYSCALL(_ksem_unlink)(void *name_) {
1835 const char *name = (const char *)name_;
1836 if (name) {
1837 PRE_READ(name, __sanitizer::internal_strlen(name) + 1);
1838 }
1839}
1840POST_SYSCALL(_ksem_unlink)(long long res, void *name_) {
1841 const char *name = (const char *)name_;
1842 if (name) {
1843 POST_READ(name, __sanitizer::internal_strlen(name) + 1);
1844 }
1845}
1846PRE_SYSCALL(_ksem_close)(long long id_) { /* Nothing to do */ }
1847POST_SYSCALL(_ksem_close)(long long res, long long id_) { /* Nothing to do */ }
1848PRE_SYSCALL(_ksem_post)(long long id_) { /* Nothing to do */ }
1849POST_SYSCALL(_ksem_post)(long long res, long long id_) { /* Nothing to do */ }
1850PRE_SYSCALL(_ksem_wait)(long long id_) { /* Nothing to do */ }
1851POST_SYSCALL(_ksem_wait)(long long res, long long id_) { /* Nothing to do */ }
1852PRE_SYSCALL(_ksem_trywait)(long long id_) { /* Nothing to do */ }
1853POST_SYSCALL(_ksem_trywait)(long long res, long long id_) {
1854 /* Nothing to do */
1855}
1856PRE_SYSCALL(_ksem_getvalue)(long long id_, void *value_) { /* Nothing to do */ }
1857POST_SYSCALL(_ksem_getvalue)(long long res, long long id_, void *value_) {
1858 /* Nothing to do */
1859}
1860PRE_SYSCALL(_ksem_destroy)(long long id_) { /* Nothing to do */ }
1861POST_SYSCALL(_ksem_destroy)(long long res, long long id_) {
1862 /* Nothing to do */
1863}
1864PRE_SYSCALL(_ksem_timedwait)(long long id_, void *abstime_) {
1865 if (abstime_) {
1866 PRE_READ(abstime_, struct_timespec_sz);
1867 }
1868}
1869POST_SYSCALL(_ksem_timedwait)(long long res, long long id_, void *abstime_) {}
1870PRE_SYSCALL(mq_open)
1871(void *name_, long long oflag_, long long mode_, void *attr_) {
1872 const char *name = (const char *)name_;
1873 if (name) {
1874 PRE_READ(name, __sanitizer::internal_strlen(name) + 1);
1875 }
1876}
1877POST_SYSCALL(mq_open)
1878(long long res, void *name_, long long oflag_, long long mode_, void *attr_) {
1879 const char *name = (const char *)name_;
1880 if (name) {
1881 POST_READ(name, __sanitizer::internal_strlen(name) + 1);
1882 }
1883}
1884PRE_SYSCALL(mq_close)(long long mqdes_) { /* Nothing to do */ }
1885POST_SYSCALL(mq_close)(long long res, long long mqdes_) { /* Nothing to do */ }
1886PRE_SYSCALL(mq_unlink)(void *name_) {
1887 const char *name = (const char *)name_;
1888 if (name) {
1889 PRE_READ(name, __sanitizer::internal_strlen(name) + 1);
1890 }
1891}
1892POST_SYSCALL(mq_unlink)(long long res, void *name_) {
1893 const char *name = (const char *)name_;
1894 if (name) {
1895 POST_READ(name, __sanitizer::internal_strlen(name) + 1);
1896 }
1897}
1898PRE_SYSCALL(mq_getattr)(long long mqdes_, void *mqstat_) { /* Nothing to do */ }
1899POST_SYSCALL(mq_getattr)(long long res, long long mqdes_, void *mqstat_) {
1900 /* Nothing to do */
1901}
1902PRE_SYSCALL(mq_setattr)(long long mqdes_, void *mqstat_, void *omqstat_) {
1903 if (mqstat_) {
1904 PRE_READ(mqstat_, struct_mq_attr_sz);
1905 }
1906}
1907POST_SYSCALL(mq_setattr)
1908(long long res, long long mqdes_, void *mqstat_, void *omqstat_) {}
1909PRE_SYSCALL(mq_notify)(long long mqdes_, void *notification_) {
1910 if (notification_) {
1911 PRE_READ(notification_, struct_sigevent_sz);
1912 }
1913}
1914POST_SYSCALL(mq_notify)(long long res, long long mqdes_, void *notification_) {}
1915PRE_SYSCALL(mq_send)
1916(long long mqdes_, void *msg_ptr_, long long msg_len_, long long msg_prio_) {
1917 if (msg_ptr_) {
1918 PRE_READ(msg_ptr_, msg_len_);
1919 }
1920}
1921POST_SYSCALL(mq_send)
1922(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_,
1923 long long msg_prio_) {}
1924PRE_SYSCALL(mq_receive)
1925(long long mqdes_, void *msg_ptr_, long long msg_len_, void *msg_prio_) {
1926 /* Nothing to do */
1927}
1928POST_SYSCALL(mq_receive)
1929(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_,
1930 void *msg_prio_) {
1931 /* Nothing to do */
1932}
1933PRE_SYSCALL(compat_50_mq_timedsend)
1934(long long mqdes_, void *msg_ptr_, long long msg_len_, long long msg_prio_,
1935 void *abs_timeout_) {
1936 /* TODO */
1937}
1938POST_SYSCALL(compat_50_mq_timedsend)
1939(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_,
1940 long long msg_prio_, void *abs_timeout_) {
1941 /* TODO */
1942}
1943PRE_SYSCALL(compat_50_mq_timedreceive)
1944(long long mqdes_, void *msg_ptr_, long long msg_len_, void *msg_prio_,
1945 void *abs_timeout_) {
1946 /* TODO */
1947}
1948POST_SYSCALL(compat_50_mq_timedreceive)
1949(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_,
1950 void *msg_prio_, void *abs_timeout_) {
1951 /* TODO */
1952}
1953/* syscall 267 has been skipped */
1954/* syscall 268 has been skipped */
1955/* syscall 269 has been skipped */
1956PRE_SYSCALL(__posix_rename)(void *from_, void *to_) {
1957 const char *from = (const char *)from_;
1958 const char *to = (const char *)to_;
1959 if (from_) {
1960 PRE_READ(from, __sanitizer::internal_strlen(from) + 1);
1961 }
1962 if (to) {
1963 PRE_READ(to, __sanitizer::internal_strlen(to) + 1);
1964 }
1965}
1966POST_SYSCALL(__posix_rename)(long long res, void *from_, void *to_) {
1967 const char *from = (const char *)from_;
1968 const char *to = (const char *)to_;
1969 if (from) {
1970 POST_READ(from, __sanitizer::internal_strlen(from) + 1);
1971 }
1972 if (to) {
1973 POST_READ(to, __sanitizer::internal_strlen(to) + 1);
1974 }
1975}
1976PRE_SYSCALL(swapctl)(long long cmd_, void *arg_, long long misc_) { /* TODO */ }
1977POST_SYSCALL(swapctl)
1978(long long res, long long cmd_, void *arg_, long long misc_) {
1979 /* TODO */
1980}
1981PRE_SYSCALL(compat_30_getdents)(long long fd_, void *buf_, long long count_) {
1982 /* TODO */
1983}
1984POST_SYSCALL(compat_30_getdents)
1985(long long res, long long fd_, void *buf_, long long count_) {
1986 /* TODO */
1987}
1988PRE_SYSCALL(minherit)(void *addr_, long long len_, long long inherit_) {
1989 /* Nothing to do */
1990}
1991POST_SYSCALL(minherit)
1992(long long res, void *addr_, long long len_, long long inherit_) {
1993 /* Nothing to do */
1994}
1995PRE_SYSCALL(lchmod)(void *path_, long long mode_) {
1996 const char *path = (const char *)path_;
1997 if (path) {
1998 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
1999 }
2000}
2001POST_SYSCALL(lchmod)(long long res, void *path_, long long mode_) {
2002 const char *path = (const char *)path_;
2003 if (path) {
2004 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2005 }
2006}
2007PRE_SYSCALL(lchown)(void *path_, long long uid_, long long gid_) {
2008 const char *path = (const char *)path_;
2009 if (path) {
2010 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2011 }
2012}
2013POST_SYSCALL(lchown)
2014(long long res, void *path_, long long uid_, long long gid_) {
2015 const char *path = (const char *)path_;
2016 if (path) {
2017 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2018 }
2019}
2020PRE_SYSCALL(compat_50_lutimes)(void *path_, void *tptr_) { /* TODO */ }
2021POST_SYSCALL(compat_50_lutimes)(long long res, void *path_, void *tptr_) {
2022 /* TODO */
2023}
2024PRE_SYSCALL(__msync13)(void *addr_, long long len_, long long flags_) {
2025 /* Nothing to do */
2026}
2027POST_SYSCALL(__msync13)
2028(long long res, void *addr_, long long len_, long long flags_) {
2029 /* Nothing to do */
2030}
2031PRE_SYSCALL(compat_30___stat13)(void *path_, void *ub_) { /* TODO */ }
2032POST_SYSCALL(compat_30___stat13)(long long res, void *path_, void *ub_) {
2033 /* TODO */
2034}
2035PRE_SYSCALL(compat_30___fstat13)(long long fd_, void *sb_) { /* TODO */ }
2036POST_SYSCALL(compat_30___fstat13)(long long res, long long fd_, void *sb_) {
2037 /* TODO */
2038}
2039PRE_SYSCALL(compat_30___lstat13)(void *path_, void *ub_) { /* TODO */ }
2040POST_SYSCALL(compat_30___lstat13)(long long res, void *path_, void *ub_) {
2041 /* TODO */
2042}
2043PRE_SYSCALL(__sigaltstack14)(void *nss_, void *oss_) {
2044 if (nss_) {
2045 PRE_READ(nss_, struct_sigaltstack_sz);
2046 }
2047 if (oss_) {
2048 PRE_READ(oss_, struct_sigaltstack_sz);
2049 }
2050}
2051POST_SYSCALL(__sigaltstack14)(long long res, void *nss_, void *oss_) {}
2052PRE_SYSCALL(__vfork14)(void) { /* Nothing to do */ }
2053POST_SYSCALL(__vfork14)(long long res) { /* Nothing to do */ }
2054PRE_SYSCALL(__posix_chown)(void *path_, long long uid_, long long gid_) {
2055 const char *path = (const char *)path_;
2056 if (path) {
2057 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2058 }
2059}
2060POST_SYSCALL(__posix_chown)
2061(long long res, void *path_, long long uid_, long long gid_) {
2062 const char *path = (const char *)path_;
2063 if (path) {
2064 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2065 }
2066}
2067PRE_SYSCALL(__posix_fchown)(long long fd_, long long uid_, long long gid_) {
2068 /* Nothing to do */
2069}
2070POST_SYSCALL(__posix_fchown)
2071(long long res, long long fd_, long long uid_, long long gid_) {
2072 /* Nothing to do */
2073}
2074PRE_SYSCALL(__posix_lchown)(void *path_, long long uid_, long long gid_) {
2075 const char *path = (const char *)path_;
2076 if (path) {
2077 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2078 }
2079}
2080POST_SYSCALL(__posix_lchown)
2081(long long res, void *path_, long long uid_, long long gid_) {
2082 const char *path = (const char *)path_;
2083 if (path) {
2084 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2085 }
2086}
2087PRE_SYSCALL(getsid)(long long pid_) { /* Nothing to do */ }
2088POST_SYSCALL(getsid)(long long res, long long pid_) { /* Nothing to do */ }
2089PRE_SYSCALL(__clone)(long long flags_, void *stack_) { /* Nothing to do */ }
2090POST_SYSCALL(__clone)(long long res, long long flags_, void *stack_) {
2091 /* Nothing to do */
2092}
2093PRE_SYSCALL(fktrace)
2094(long long fd_, long long ops_, long long facs_, long long pid_) {
2095 /* Nothing to do */
2096}
2097POST_SYSCALL(fktrace)
2098(long long res, long long fd_, long long ops_, long long facs_,
2099 long long pid_) {
2100 /* Nothing to do */
2101}
2102PRE_SYSCALL(preadv)
2103(long long fd_, void *iovp_, long long iovcnt_, long long PAD_,
2104 long long offset_) {
2105 /* Nothing to do */
2106}
2107POST_SYSCALL(preadv)
2108(long long res, long long fd_, void *iovp_, long long iovcnt_, long long PAD_,
2109 long long offset_) {
2110 /* Nothing to do */
2111}
2112PRE_SYSCALL(pwritev)
2113(long long fd_, void *iovp_, long long iovcnt_, long long PAD_,
2114 long long offset_) {
2115 /* Nothing to do */
2116}
2117POST_SYSCALL(pwritev)
2118(long long res, long long fd_, void *iovp_, long long iovcnt_, long long PAD_,
2119 long long offset_) {
2120 /* Nothing to do */
2121}
2122PRE_SYSCALL(compat_16___sigaction14)
2123(long long signum_, void *nsa_, void *osa_) {
2124 /* TODO */
2125}
2126POST_SYSCALL(compat_16___sigaction14)
2127(long long res, long long signum_, void *nsa_, void *osa_) {
2128 /* TODO */
2129}
2130PRE_SYSCALL(__sigpending14)(void *set_) { /* Nothing to do */ }
2131POST_SYSCALL(__sigpending14)(long long res, void *set_) { /* Nothing to do */ }
2132PRE_SYSCALL(__sigprocmask14)(long long how_, void *set_, void *oset_) {
2133 /* Nothing to do */
2134}
2135POST_SYSCALL(__sigprocmask14)
2136(long long res, long long how_, void *set_, void *oset_) {
2137 /* Nothing to do */
2138}
2139PRE_SYSCALL(__sigsuspend14)(void *set_) {
2140 if (set_) {
2141 PRE_READ(set_, sizeof(__sanitizer_sigset_t));
2142 }
2143}
2144POST_SYSCALL(__sigsuspend14)(long long res, void *set_) {
2145 if (set_) {
2146 PRE_READ(set_, sizeof(__sanitizer_sigset_t));
2147 }
2148}
2149PRE_SYSCALL(compat_16___sigreturn14)(void *sigcntxp_) { /* TODO */ }
2150POST_SYSCALL(compat_16___sigreturn14)(long long res, void *sigcntxp_) {
2151 /* TODO */
2152}
2153PRE_SYSCALL(__getcwd)(void *bufp_, long long length_) { /* Nothing to do */ }
2154POST_SYSCALL(__getcwd)(long long res, void *bufp_, long long length_) {
2155 /* Nothing to do */
2156}
2157PRE_SYSCALL(fchroot)(long long fd_) { /* Nothing to do */ }
2158POST_SYSCALL(fchroot)(long long res, long long fd_) { /* Nothing to do */ }
2159PRE_SYSCALL(compat_30_fhopen)(void *fhp_, long long flags_) { /* TODO */ }
2160POST_SYSCALL(compat_30_fhopen)(long long res, void *fhp_, long long flags_) {
2161 /* TODO */
2162}
2163PRE_SYSCALL(compat_30_fhstat)(void *fhp_, void *sb_) { /* TODO */ }
2164POST_SYSCALL(compat_30_fhstat)(long long res, void *fhp_, void *sb_) {
2165 /* TODO */
2166}
2167PRE_SYSCALL(compat_20_fhstatfs)(void *fhp_, void *buf_) { /* TODO */ }
2168POST_SYSCALL(compat_20_fhstatfs)(long long res, void *fhp_, void *buf_) {
2169 /* TODO */
2170}
2171PRE_SYSCALL(compat_50_____semctl13)
2172(long long semid_, long long semnum_, long long cmd_, void *arg_) {
2173 /* TODO */
2174}
2175POST_SYSCALL(compat_50_____semctl13)
2176(long long res, long long semid_, long long semnum_, long long cmd_,
2177 void *arg_) {
2178 /* TODO */
2179}
2180PRE_SYSCALL(compat_50___msgctl13)
2181(long long msqid_, long long cmd_, void *buf_) {
2182 /* TODO */
2183}
2184POST_SYSCALL(compat_50___msgctl13)
2185(long long res, long long msqid_, long long cmd_, void *buf_) {
2186 /* TODO */
2187}
2188PRE_SYSCALL(compat_50___shmctl13)
2189(long long shmid_, long long cmd_, void *buf_) {
2190 /* TODO */
2191}
2192POST_SYSCALL(compat_50___shmctl13)
2193(long long res, long long shmid_, long long cmd_, void *buf_) {
2194 /* TODO */
2195}
2196PRE_SYSCALL(lchflags)(void *path_, long long flags_) {
2197 const char *path = (const char *)path_;
2198 if (path) {
2199 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2200 }
2201}
2202POST_SYSCALL(lchflags)(long long res, void *path_, long long flags_) {
2203 const char *path = (const char *)path_;
2204 if (path) {
2205 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2206 }
2207}
2208PRE_SYSCALL(issetugid)(void) { /* Nothing to do */ }
2209POST_SYSCALL(issetugid)(long long res) { /* Nothing to do */ }
2210PRE_SYSCALL(utrace)(void *label_, void *addr_, long long len_) {
2211 const char *label = (const char *)label_;
2212 if (label) {
2213 PRE_READ(label, __sanitizer::internal_strlen(label) + 1);
2214 }
2215 if (addr_) {
2216 PRE_READ(addr_, len_);
2217 }
2218}
2219POST_SYSCALL(utrace)(long long res, void *label_, void *addr_, long long len_) {
2220 const char *label = (const char *)label_;
2221 if (label) {
2222 POST_READ(label, __sanitizer::internal_strlen(label) + 1);
2223 }
2224 if (addr_) {
2225 POST_READ(addr_, len_);
2226 }
2227}
2228PRE_SYSCALL(getcontext)(void *ucp_) { /* Nothing to do */ }
2229POST_SYSCALL(getcontext)(long long res, void *ucp_) { /* Nothing to do */ }
2230PRE_SYSCALL(setcontext)(void *ucp_) {
2231 if (ucp_) {
2232 PRE_READ(ucp_, ucontext_t_sz);
2233 }
2234}
2235POST_SYSCALL(setcontext)(long long res, void *ucp_) {}
2236PRE_SYSCALL(_lwp_create)(void *ucp_, long long flags_, void *new_lwp_) {
2237 if (ucp_) {
2238 PRE_READ(ucp_, ucontext_t_sz);
2239 }
2240}
2241POST_SYSCALL(_lwp_create)
2242(long long res, void *ucp_, long long flags_, void *new_lwp_) {}
2243PRE_SYSCALL(_lwp_exit)(void) { /* Nothing to do */ }
2244POST_SYSCALL(_lwp_exit)(long long res) { /* Nothing to do */ }
2245PRE_SYSCALL(_lwp_self)(void) { /* Nothing to do */ }
2246POST_SYSCALL(_lwp_self)(long long res) { /* Nothing to do */ }
2247PRE_SYSCALL(_lwp_wait)(long long wait_for_, void *departed_) {
2248 /* Nothing to do */
2249}
2250POST_SYSCALL(_lwp_wait)(long long res, long long wait_for_, void *departed_) {
2251 /* Nothing to do */
2252}
2253PRE_SYSCALL(_lwp_suspend)(long long target_) { /* Nothing to do */ }
2254POST_SYSCALL(_lwp_suspend)(long long res, long long target_) {
2255 /* Nothing to do */
2256}
2257PRE_SYSCALL(_lwp_continue)(long long target_) { /* Nothing to do */ }
2258POST_SYSCALL(_lwp_continue)(long long res, long long target_) {
2259 /* Nothing to do */
2260}
2261PRE_SYSCALL(_lwp_wakeup)(long long target_) { /* Nothing to do */ }
2262POST_SYSCALL(_lwp_wakeup)(long long res, long long target_) {
2263 /* Nothing to do */
2264}
2265PRE_SYSCALL(_lwp_getprivate)(void) { /* Nothing to do */ }
2266POST_SYSCALL(_lwp_getprivate)(long long res) { /* Nothing to do */ }
2267PRE_SYSCALL(_lwp_setprivate)(void *ptr_) { /* Nothing to do */ }
2268POST_SYSCALL(_lwp_setprivate)(long long res, void *ptr_) { /* Nothing to do */ }
2269PRE_SYSCALL(_lwp_kill)(long long target_, long long signo_) {
2270 /* Nothing to do */
2271}
2272POST_SYSCALL(_lwp_kill)(long long res, long long target_, long long signo_) {
2273 /* Nothing to do */
2274}
2275PRE_SYSCALL(_lwp_detach)(long long target_) { /* Nothing to do */ }
2276POST_SYSCALL(_lwp_detach)(long long res, long long target_) {
2277 /* Nothing to do */
2278}
2279PRE_SYSCALL(compat_50__lwp_park)
2280(void *ts_, long long unpark_, void *hint_, void *unparkhint_) {
2281 /* TODO */
2282}
2283POST_SYSCALL(compat_50__lwp_park)
2284(long long res, void *ts_, long long unpark_, void *hint_, void *unparkhint_) {
2285 /* TODO */
2286}
2287PRE_SYSCALL(_lwp_unpark)(long long target_, void *hint_) { /* Nothing to do */ }
2288POST_SYSCALL(_lwp_unpark)(long long res, long long target_, void *hint_) {
2289 /* Nothing to do */
2290}
2291PRE_SYSCALL(_lwp_unpark_all)(void *targets_, long long ntargets_, void *hint_) {
2292 if (targets_) {
2293 PRE_READ(targets_, ntargets_ * sizeof(__sanitizer_lwpid_t));
2294 }
2295}
2296POST_SYSCALL(_lwp_unpark_all)
2297(long long res, void *targets_, long long ntargets_, void *hint_) {}
2298PRE_SYSCALL(_lwp_setname)(long long target_, void *name_) {
2299 const char *name = (const char *)name_;
2300 if (name) {
2301 PRE_READ(name, __sanitizer::internal_strlen(name) + 1);
2302 }
2303}
2304POST_SYSCALL(_lwp_setname)(long long res, long long target_, void *name_) {
2305 const char *name = (const char *)name_;
2306 if (name) {
2307 POST_READ(name, __sanitizer::internal_strlen(name) + 1);
2308 }
2309}
2310PRE_SYSCALL(_lwp_getname)(long long target_, void *name_, long long len_) {
2311 /* Nothing to do */
2312}
2313POST_SYSCALL(_lwp_getname)
2314(long long res, long long target_, void *name_, long long len_) {
2315 /* Nothing to do */
2316}
2317PRE_SYSCALL(_lwp_ctl)(long long features_, void **address_) {
2318 /* Nothing to do */
2319}
2320POST_SYSCALL(_lwp_ctl)(long long res, long long features_, void **address_) {
2321 /* Nothing to do */
2322}
2323/* syscall 326 has been skipped */
2324/* syscall 327 has been skipped */
2325/* syscall 328 has been skipped */
2326/* syscall 329 has been skipped */
2327PRE_SYSCALL(compat_60_sa_register)
2328(void *newv_, void **oldv_, long long flags_, long long stackinfo_offset_) {
2329 /* TODO */
2330}
2331POST_SYSCALL(compat_60_sa_register)
2332(long long res, void *newv_, void **oldv_, long long flags_,
2333 long long stackinfo_offset_) {
2334 /* TODO */
2335}
2336PRE_SYSCALL(compat_60_sa_stacks)(long long num_, void *stacks_) { /* TODO */ }
2337POST_SYSCALL(compat_60_sa_stacks)
2338(long long res, long long num_, void *stacks_) {
2339 /* TODO */
2340}
2341PRE_SYSCALL(compat_60_sa_enable)(void) { /* TODO */ }
2342POST_SYSCALL(compat_60_sa_enable)(long long res) { /* TODO */ }
2343PRE_SYSCALL(compat_60_sa_setconcurrency)(long long concurrency_) { /* TODO */ }
2344POST_SYSCALL(compat_60_sa_setconcurrency)
2345(long long res, long long concurrency_) {
2346 /* TODO */
2347}
2348PRE_SYSCALL(compat_60_sa_yield)(void) { /* TODO */ }
2349POST_SYSCALL(compat_60_sa_yield)(long long res) { /* TODO */ }
2350PRE_SYSCALL(compat_60_sa_preempt)(long long sa_id_) { /* TODO */ }
2351POST_SYSCALL(compat_60_sa_preempt)(long long res, long long sa_id_) {
2352 /* TODO */
2353}
2354/* syscall 336 has been skipped */
2355/* syscall 337 has been skipped */
2356/* syscall 338 has been skipped */
2357/* syscall 339 has been skipped */
2358PRE_SYSCALL(__sigaction_sigtramp)
2359(long long signum_, void *nsa_, void *osa_, void *tramp_, long long vers_) {
2360 if (nsa_) {
2361 PRE_READ(nsa_, sizeof(__sanitizer_sigaction));
2362 }
2363}
2364POST_SYSCALL(__sigaction_sigtramp)
2365(long long res, long long signum_, void *nsa_, void *osa_, void *tramp_,
2366 long long vers_) {
2367 if (nsa_) {
2368 PRE_READ(nsa_, sizeof(__sanitizer_sigaction));
2369 }
2370}
b667dd70
ML
2371/* syscall 341 has been skipped */
2372/* syscall 342 has been skipped */
eac97531
ML
2373PRE_SYSCALL(rasctl)(void *addr_, long long len_, long long op_) {
2374 /* Nothing to do */
2375}
2376POST_SYSCALL(rasctl)
2377(long long res, void *addr_, long long len_, long long op_) {
2378 /* Nothing to do */
2379}
2380PRE_SYSCALL(kqueue)(void) { /* Nothing to do */ }
2381POST_SYSCALL(kqueue)(long long res) { /* Nothing to do */ }
2382PRE_SYSCALL(compat_50_kevent)
2383(long long fd_, void *changelist_, long long nchanges_, void *eventlist_,
2384 long long nevents_, void *timeout_) {
2385 /* TODO */
2386}
2387POST_SYSCALL(compat_50_kevent)
2388(long long res, long long fd_, void *changelist_, long long nchanges_,
2389 void *eventlist_, long long nevents_, void *timeout_) {
2390 /* TODO */
2391}
2392PRE_SYSCALL(_sched_setparam)
2393(long long pid_, long long lid_, long long policy_, void *params_) {
2394 if (params_) {
2395 PRE_READ(params_, struct_sched_param_sz);
2396 }
2397}
2398POST_SYSCALL(_sched_setparam)
2399(long long res, long long pid_, long long lid_, long long policy_,
2400 void *params_) {
2401 if (params_) {
2402 PRE_READ(params_, struct_sched_param_sz);
2403 }
2404}
2405PRE_SYSCALL(_sched_getparam)
2406(long long pid_, long long lid_, void *policy_, void *params_) {
2407 /* Nothing to do */
2408}
2409POST_SYSCALL(_sched_getparam)
2410(long long res, long long pid_, long long lid_, void *policy_, void *params_) {
2411 /* Nothing to do */
2412}
2413PRE_SYSCALL(_sched_setaffinity)
2414(long long pid_, long long lid_, long long size_, void *cpuset_) {
2415 if (cpuset_) {
2416 PRE_READ(cpuset_, size_);
2417 }
2418}
2419POST_SYSCALL(_sched_setaffinity)
2420(long long res, long long pid_, long long lid_, long long size_,
2421 void *cpuset_) {
2422 if (cpuset_) {
2423 PRE_READ(cpuset_, size_);
2424 }
2425}
2426PRE_SYSCALL(_sched_getaffinity)
2427(long long pid_, long long lid_, long long size_, void *cpuset_) {
2428 /* Nothing to do */
2429}
2430POST_SYSCALL(_sched_getaffinity)
2431(long long res, long long pid_, long long lid_, long long size_,
2432 void *cpuset_) {
2433 /* Nothing to do */
2434}
2435PRE_SYSCALL(sched_yield)(void) { /* Nothing to do */ }
2436POST_SYSCALL(sched_yield)(long long res) { /* Nothing to do */ }
2437PRE_SYSCALL(_sched_protect)(long long priority_) { /* Nothing to do */ }
2438POST_SYSCALL(_sched_protect)(long long res, long long priority_) {
2439 /* Nothing to do */
2440}
2441/* syscall 352 has been skipped */
2442/* syscall 353 has been skipped */
2443PRE_SYSCALL(fsync_range)
2444(long long fd_, long long flags_, long long start_, long long length_) {
2445 /* Nothing to do */
2446}
2447POST_SYSCALL(fsync_range)
2448(long long res, long long fd_, long long flags_, long long start_,
2449 long long length_) {
2450 /* Nothing to do */
2451}
2452PRE_SYSCALL(uuidgen)(void *store_, long long count_) { /* Nothing to do */ }
2453POST_SYSCALL(uuidgen)(long long res, void *store_, long long count_) {
2454 /* Nothing to do */
2455}
cb7dc4da
ML
2456PRE_SYSCALL(compat_90_getvfsstat)
2457(void *buf_, long long bufsize_, long long flags_) {
eac97531
ML
2458 /* Nothing to do */
2459}
cb7dc4da 2460POST_SYSCALL(compat_90_getvfsstat)
eac97531
ML
2461(long long res, void *buf_, long long bufsize_, long long flags_) {
2462 /* Nothing to do */
2463}
cb7dc4da 2464PRE_SYSCALL(compat_90_statvfs1)(void *path_, void *buf_, long long flags_) {
eac97531
ML
2465 const char *path = (const char *)path_;
2466 if (path) {
2467 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2468 }
2469}
cb7dc4da 2470POST_SYSCALL(compat_90_statvfs1)
eac97531
ML
2471(long long res, void *path_, void *buf_, long long flags_) {
2472 const char *path = (const char *)path_;
2473 if (path) {
2474 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2475 }
2476}
cb7dc4da 2477PRE_SYSCALL(compat_90_fstatvfs1)(long long fd_, void *buf_, long long flags_) {
eac97531
ML
2478 /* Nothing to do */
2479}
cb7dc4da 2480POST_SYSCALL(compat_90_fstatvfs1)
eac97531
ML
2481(long long res, long long fd_, void *buf_, long long flags_) {
2482 /* Nothing to do */
2483}
2484PRE_SYSCALL(compat_30_fhstatvfs1)(void *fhp_, void *buf_, long long flags_) {
2485 /* TODO */
2486}
2487POST_SYSCALL(compat_30_fhstatvfs1)
2488(long long res, void *fhp_, void *buf_, long long flags_) {
2489 /* TODO */
2490}
2491PRE_SYSCALL(extattrctl)
2492(void *path_, long long cmd_, void *filename_, long long attrnamespace_,
2493 void *attrname_) {
2494 const char *path = (const char *)path_;
2495 if (path) {
2496 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2497 }
2498}
2499POST_SYSCALL(extattrctl)
2500(long long res, void *path_, long long cmd_, void *filename_,
2501 long long attrnamespace_, void *attrname_) {
2502 const char *path = (const char *)path_;
2503 if (path) {
2504 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2505 }
2506}
2507PRE_SYSCALL(extattr_set_file)
2508(void *path_, long long attrnamespace_, void *attrname_, void *data_,
2509 long long nbytes_) {
2510 const char *path = (const char *)path_;
2511 if (path) {
2512 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2513 }
2514}
2515POST_SYSCALL(extattr_set_file)
2516(long long res, void *path_, long long attrnamespace_, void *attrname_,
2517 void *data_, long long nbytes_) {
2518 const char *path = (const char *)path_;
2519 if (path) {
2520 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2521 }
2522}
2523PRE_SYSCALL(extattr_get_file)
2524(void *path_, long long attrnamespace_, void *attrname_, void *data_,
2525 long long nbytes_) {
2526 const char *path = (const char *)path_;
2527 if (path) {
2528 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2529 }
2530}
2531POST_SYSCALL(extattr_get_file)
2532(long long res, void *path_, long long attrnamespace_, void *attrname_,
2533 void *data_, long long nbytes_) {
2534 const char *path = (const char *)path_;
2535 if (path) {
2536 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2537 }
2538}
2539PRE_SYSCALL(extattr_delete_file)
2540(void *path_, long long attrnamespace_, void *attrname_) {
2541 const char *path = (const char *)path_;
2542 if (path) {
2543 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2544 }
2545}
2546POST_SYSCALL(extattr_delete_file)
2547(long long res, void *path_, long long attrnamespace_, void *attrname_) {
2548 const char *path = (const char *)path_;
2549 if (path) {
2550 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2551 }
2552}
2553PRE_SYSCALL(extattr_set_fd)
2554(long long fd_, long long attrnamespace_, void *attrname_, void *data_,
2555 long long nbytes_) {
2556 /* TODO */
2557}
2558POST_SYSCALL(extattr_set_fd)
2559(long long res, long long fd_, long long attrnamespace_, void *attrname_,
2560 void *data_, long long nbytes_) {
2561 /* TODO */
2562}
2563PRE_SYSCALL(extattr_get_fd)
2564(long long fd_, long long attrnamespace_, void *attrname_, void *data_,
2565 long long nbytes_) {
2566 /* TODO */
2567}
2568POST_SYSCALL(extattr_get_fd)
2569(long long res, long long fd_, long long attrnamespace_, void *attrname_,
2570 void *data_, long long nbytes_) {
2571 /* TODO */
2572}
2573PRE_SYSCALL(extattr_delete_fd)
2574(long long fd_, long long attrnamespace_, void *attrname_) {
2575 /* TODO */
2576}
2577POST_SYSCALL(extattr_delete_fd)
2578(long long res, long long fd_, long long attrnamespace_, void *attrname_) {
2579 /* TODO */
2580}
2581PRE_SYSCALL(extattr_set_link)
2582(void *path_, long long attrnamespace_, void *attrname_, void *data_,
2583 long long nbytes_) {
2584 const char *path = (const char *)path_;
2585 if (path) {
2586 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2587 }
2588}
2589POST_SYSCALL(extattr_set_link)
2590(long long res, void *path_, long long attrnamespace_, void *attrname_,
2591 void *data_, long long nbytes_) {
2592 const char *path = (const char *)path_;
2593 if (path) {
2594 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2595 }
2596}
2597PRE_SYSCALL(extattr_get_link)
2598(void *path_, long long attrnamespace_, void *attrname_, void *data_,
2599 long long nbytes_) {
2600 const char *path = (const char *)path_;
2601 if (path) {
2602 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2603 }
2604}
2605POST_SYSCALL(extattr_get_link)
2606(long long res, void *path_, long long attrnamespace_, void *attrname_,
2607 void *data_, long long nbytes_) {
2608 const char *path = (const char *)path_;
2609 if (path) {
2610 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2611 }
2612}
2613PRE_SYSCALL(extattr_delete_link)
2614(void *path_, long long attrnamespace_, void *attrname_) {
2615 const char *path = (const char *)path_;
2616 if (path) {
2617 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2618 }
2619}
2620POST_SYSCALL(extattr_delete_link)
2621(long long res, void *path_, long long attrnamespace_, void *attrname_) {
2622 const char *path = (const char *)path_;
2623 if (path) {
2624 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2625 }
2626}
2627PRE_SYSCALL(extattr_list_fd)
2628(long long fd_, long long attrnamespace_, void *data_, long long nbytes_) {
2629 /* TODO */
2630}
2631POST_SYSCALL(extattr_list_fd)
2632(long long res, long long fd_, long long attrnamespace_, void *data_,
2633 long long nbytes_) {
2634 /* TODO */
2635}
2636PRE_SYSCALL(extattr_list_file)
2637(void *path_, long long attrnamespace_, void *data_, long long nbytes_) {
2638 const char *path = (const char *)path_;
2639 if (path) {
2640 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2641 }
2642}
2643POST_SYSCALL(extattr_list_file)
2644(long long res, void *path_, long long attrnamespace_, void *data_,
2645 long long nbytes_) {
2646 const char *path = (const char *)path_;
2647 if (path) {
2648 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2649 }
2650}
2651PRE_SYSCALL(extattr_list_link)
2652(void *path_, long long attrnamespace_, void *data_, long long nbytes_) {
2653 const char *path = (const char *)path_;
2654 if (path) {
2655 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2656 }
2657}
2658POST_SYSCALL(extattr_list_link)
2659(long long res, void *path_, long long attrnamespace_, void *data_,
2660 long long nbytes_) {
2661 const char *path = (const char *)path_;
2662 if (path) {
2663 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2664 }
2665}
2666PRE_SYSCALL(compat_50_pselect)
2667(long long nd_, void *in_, void *ou_, void *ex_, void *ts_, void *mask_) {
2668 /* TODO */
2669}
2670POST_SYSCALL(compat_50_pselect)
2671(long long res, long long nd_, void *in_, void *ou_, void *ex_, void *ts_,
2672 void *mask_) {
2673 /* TODO */
2674}
2675PRE_SYSCALL(compat_50_pollts)
2676(void *fds_, long long nfds_, void *ts_, void *mask_) {
2677 /* TODO */
2678}
2679POST_SYSCALL(compat_50_pollts)
2680(long long res, void *fds_, long long nfds_, void *ts_, void *mask_) {
2681 /* TODO */
2682}
2683PRE_SYSCALL(setxattr)
2684(void *path_, void *name_, void *value_, long long size_, long long flags_) {
2685 const char *path = (const char *)path_;
2686 if (path) {
2687 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2688 }
2689}
2690POST_SYSCALL(setxattr)
2691(long long res, void *path_, void *name_, void *value_, long long size_,
2692 long long flags_) {
2693 const char *path = (const char *)path_;
2694 if (path) {
2695 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2696 }
2697}
2698PRE_SYSCALL(lsetxattr)
2699(void *path_, void *name_, void *value_, long long size_, long long flags_) {
2700 const char *path = (const char *)path_;
2701 if (path) {
2702 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2703 }
2704}
2705POST_SYSCALL(lsetxattr)
2706(long long res, void *path_, void *name_, void *value_, long long size_,
2707 long long flags_) {
2708 const char *path = (const char *)path_;
2709 if (path) {
2710 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2711 }
2712}
2713PRE_SYSCALL(fsetxattr)
2714(long long fd_, void *name_, void *value_, long long size_, long long flags_) {
2715 /* Nothing to do */
2716}
2717POST_SYSCALL(fsetxattr)
2718(long long res, long long fd_, void *name_, void *value_, long long size_,
2719 long long flags_) {
2720 /* Nothing to do */
2721}
2722PRE_SYSCALL(getxattr)(void *path_, void *name_, void *value_, long long size_) {
2723 const char *path = (const char *)path_;
2724 if (path) {
2725 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2726 }
2727}
2728POST_SYSCALL(getxattr)
2729(long long res, void *path_, void *name_, void *value_, long long size_) {
2730 const char *path = (const char *)path_;
2731 if (path) {
2732 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2733 }
2734}
2735PRE_SYSCALL(lgetxattr)
2736(void *path_, void *name_, void *value_, long long size_) {
2737 const char *path = (const char *)path_;
2738 if (path) {
2739 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2740 }
2741}
2742POST_SYSCALL(lgetxattr)
2743(long long res, void *path_, void *name_, void *value_, long long size_) {
2744 const char *path = (const char *)path_;
2745 if (path) {
2746 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2747 }
2748}
2749PRE_SYSCALL(fgetxattr)
2750(long long fd_, void *name_, void *value_, long long size_) {
2751 /* Nothing to do */
2752}
2753POST_SYSCALL(fgetxattr)
2754(long long res, long long fd_, void *name_, void *value_, long long size_) {
2755 /* Nothing to do */
2756}
2757PRE_SYSCALL(listxattr)(void *path_, void *list_, long long size_) {
2758 const char *path = (const char *)path_;
2759 if (path) {
2760 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2761 }
2762}
2763POST_SYSCALL(listxattr)
2764(long long res, void *path_, void *list_, long long size_) {
2765 const char *path = (const char *)path_;
2766 if (path) {
2767 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2768 }
2769}
2770PRE_SYSCALL(llistxattr)(void *path_, void *list_, long long size_) {
2771 const char *path = (const char *)path_;
2772 if (path) {
2773 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2774 }
2775}
2776POST_SYSCALL(llistxattr)
2777(long long res, void *path_, void *list_, long long size_) {
2778 const char *path = (const char *)path_;
2779 if (path) {
2780 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2781 }
2782}
2783PRE_SYSCALL(flistxattr)(long long fd_, void *list_, long long size_) {
2784 /* TODO */
2785}
2786POST_SYSCALL(flistxattr)
2787(long long res, long long fd_, void *list_, long long size_) {
2788 /* TODO */
2789}
2790PRE_SYSCALL(removexattr)(void *path_, void *name_) {
2791 const char *path = (const char *)path_;
2792 if (path) {
2793 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2794 }
2795}
2796POST_SYSCALL(removexattr)(long long res, void *path_, void *name_) {
2797 const char *path = (const char *)path_;
2798 if (path) {
2799 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2800 }
2801}
2802PRE_SYSCALL(lremovexattr)(void *path_, void *name_) {
2803 const char *path = (const char *)path_;
2804 if (path) {
2805 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2806 }
2807}
2808POST_SYSCALL(lremovexattr)(long long res, void *path_, void *name_) {
2809 const char *path = (const char *)path_;
2810 if (path) {
2811 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2812 }
2813}
2814PRE_SYSCALL(fremovexattr)(long long fd_, void *name_) { /* TODO */ }
2815POST_SYSCALL(fremovexattr)(long long res, long long fd_, void *name_) {
2816 /* TODO */
2817}
2818PRE_SYSCALL(compat_50___stat30)(void *path_, void *ub_) { /* TODO */ }
2819POST_SYSCALL(compat_50___stat30)(long long res, void *path_, void *ub_) {
2820 /* TODO */
2821}
2822PRE_SYSCALL(compat_50___fstat30)(long long fd_, void *sb_) { /* TODO */ }
2823POST_SYSCALL(compat_50___fstat30)(long long res, long long fd_, void *sb_) {
2824 /* TODO */
2825}
2826PRE_SYSCALL(compat_50___lstat30)(void *path_, void *ub_) { /* TODO */ }
2827POST_SYSCALL(compat_50___lstat30)(long long res, void *path_, void *ub_) {
2828 /* TODO */
2829}
2830PRE_SYSCALL(__getdents30)(long long fd_, void *buf_, long long count_) {
2831 /* Nothing to do */
2832}
2833POST_SYSCALL(__getdents30)
2834(long long res, long long fd_, void *buf_, long long count_) {
2835 /* Nothing to do */
2836}
2837PRE_SYSCALL(posix_fadvise)(long long) { /* Nothing to do */ }
2838POST_SYSCALL(posix_fadvise)(long long res, long long) { /* Nothing to do */ }
2839PRE_SYSCALL(compat_30___fhstat30)(void *fhp_, void *sb_) { /* TODO */ }
2840POST_SYSCALL(compat_30___fhstat30)(long long res, void *fhp_, void *sb_) {
2841 /* TODO */
2842}
2843PRE_SYSCALL(compat_50___ntp_gettime30)(void *ntvp_) { /* TODO */ }
2844POST_SYSCALL(compat_50___ntp_gettime30)(long long res, void *ntvp_) {
2845 /* TODO */
2846}
2847PRE_SYSCALL(__socket30)
2848(long long domain_, long long type_, long long protocol_) {
2849 /* Nothing to do */
2850}
2851POST_SYSCALL(__socket30)
2852(long long res, long long domain_, long long type_, long long protocol_) {
2853 /* Nothing to do */
2854}
2855PRE_SYSCALL(__getfh30)(void *fname_, void *fhp_, void *fh_size_) {
2856 const char *fname = (const char *)fname_;
2857 if (fname) {
2858 PRE_READ(fname, __sanitizer::internal_strlen(fname) + 1);
2859 }
2860}
2861POST_SYSCALL(__getfh30)
2862(long long res, void *fname_, void *fhp_, void *fh_size_) {
2863 const char *fname = (const char *)fname_;
2864 if (res == 0) {
2865 if (fname) {
2866 POST_READ(fname, __sanitizer::internal_strlen(fname) + 1);
2867 }
2868 }
2869}
2870PRE_SYSCALL(__fhopen40)(void *fhp_, long long fh_size_, long long flags_) {
2871 if (fhp_) {
2872 PRE_READ(fhp_, fh_size_);
2873 }
2874}
2875POST_SYSCALL(__fhopen40)
2876(long long res, void *fhp_, long long fh_size_, long long flags_) {}
cb7dc4da 2877PRE_SYSCALL(compat_90_fhstatvfs1)
eac97531
ML
2878(void *fhp_, long long fh_size_, void *buf_, long long flags_) {
2879 if (fhp_) {
2880 PRE_READ(fhp_, fh_size_);
2881 }
2882}
cb7dc4da 2883POST_SYSCALL(compat_90_fhstatvfs1)
eac97531
ML
2884(long long res, void *fhp_, long long fh_size_, void *buf_, long long flags_) {}
2885PRE_SYSCALL(compat_50___fhstat40)(void *fhp_, long long fh_size_, void *sb_) {
2886 if (fhp_) {
2887 PRE_READ(fhp_, fh_size_);
2888 }
2889}
2890POST_SYSCALL(compat_50___fhstat40)
2891(long long res, void *fhp_, long long fh_size_, void *sb_) {}
2892PRE_SYSCALL(aio_cancel)(long long fildes_, void *aiocbp_) {
2893 if (aiocbp_) {
2894 PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb));
2895 }
2896}
2897POST_SYSCALL(aio_cancel)(long long res, long long fildes_, void *aiocbp_) {}
2898PRE_SYSCALL(aio_error)(void *aiocbp_) {
2899 if (aiocbp_) {
2900 PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb));
2901 }
2902}
2903POST_SYSCALL(aio_error)(long long res, void *aiocbp_) {}
2904PRE_SYSCALL(aio_fsync)(long long op_, void *aiocbp_) {
2905 if (aiocbp_) {
2906 PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb));
2907 }
2908}
2909POST_SYSCALL(aio_fsync)(long long res, long long op_, void *aiocbp_) {}
2910PRE_SYSCALL(aio_read)(void *aiocbp_) {
2911 if (aiocbp_) {
2912 PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb));
2913 }
2914}
2915POST_SYSCALL(aio_read)(long long res, void *aiocbp_) {}
2916PRE_SYSCALL(aio_return)(void *aiocbp_) {
2917 if (aiocbp_) {
2918 PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb));
2919 }
2920}
2921POST_SYSCALL(aio_return)(long long res, void *aiocbp_) {}
2922PRE_SYSCALL(compat_50_aio_suspend)
2923(void *list_, long long nent_, void *timeout_) {
2924 /* TODO */
2925}
2926POST_SYSCALL(compat_50_aio_suspend)
2927(long long res, void *list_, long long nent_, void *timeout_) {
2928 /* TODO */
2929}
2930PRE_SYSCALL(aio_write)(void *aiocbp_) {
2931 if (aiocbp_) {
2932 PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb));
2933 }
2934}
2935POST_SYSCALL(aio_write)(long long res, void *aiocbp_) {}
2936PRE_SYSCALL(lio_listio)
2937(long long mode_, void *list_, long long nent_, void *sig_) {
2938 /* Nothing to do */
2939}
2940POST_SYSCALL(lio_listio)
2941(long long res, long long mode_, void *list_, long long nent_, void *sig_) {
2942 /* Nothing to do */
2943}
2944/* syscall 407 has been skipped */
2945/* syscall 408 has been skipped */
2946/* syscall 409 has been skipped */
2947PRE_SYSCALL(__mount50)
2948(void *type_, void *path_, long long flags_, void *data_, long long data_len_) {
2949 const char *type = (const char *)type_;
2950 const char *path = (const char *)path_;
2951 if (type) {
2952 PRE_READ(type, __sanitizer::internal_strlen(type) + 1);
2953 }
2954 if (path) {
2955 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
2956 }
2957 if (data_) {
2958 PRE_READ(data_, data_len_);
2959 }
2960}
2961POST_SYSCALL(__mount50)
2962(long long res, void *type_, void *path_, long long flags_, void *data_,
2963 long long data_len_) {
2964 const char *type = (const char *)type_;
2965 const char *path = (const char *)path_;
2966 if (type) {
2967 POST_READ(type, __sanitizer::internal_strlen(type) + 1);
2968 }
2969 if (path) {
2970 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
2971 }
2972 if (data_) {
2973 POST_READ(data_, data_len_);
2974 }
2975}
2976PRE_SYSCALL(mremap)
2977(void *old_address_, long long old_size_, void *new_address_,
2978 long long new_size_, long long flags_) {
2979 /* Nothing to do */
2980}
2981POST_SYSCALL(mremap)
2982(long long res, void *old_address_, long long old_size_, void *new_address_,
2983 long long new_size_, long long flags_) {
2984 /* Nothing to do */
2985}
2986PRE_SYSCALL(pset_create)(void *psid_) { /* Nothing to do */ }
2987POST_SYSCALL(pset_create)(long long res, void *psid_) { /* Nothing to do */ }
2988PRE_SYSCALL(pset_destroy)(long long psid_) { /* Nothing to do */ }
2989POST_SYSCALL(pset_destroy)(long long res, long long psid_) {
2990 /* Nothing to do */
2991}
2992PRE_SYSCALL(pset_assign)(long long psid_, long long cpuid_, void *opsid_) {
2993 /* Nothing to do */
2994}
2995POST_SYSCALL(pset_assign)
2996(long long res, long long psid_, long long cpuid_, void *opsid_) {
2997 /* Nothing to do */
2998}
2999PRE_SYSCALL(_pset_bind)
3000(long long idtype_, long long first_id_, long long second_id_, long long psid_,
3001 void *opsid_) {
3002 /* Nothing to do */
3003}
3004POST_SYSCALL(_pset_bind)
3005(long long res, long long idtype_, long long first_id_, long long second_id_,
3006 long long psid_, void *opsid_) {
3007 /* Nothing to do */
3008}
3009PRE_SYSCALL(__posix_fadvise50)
3010(long long fd_, long long PAD_, long long offset_, long long len_,
3011 long long advice_) {
3012 /* Nothing to do */
3013}
3014POST_SYSCALL(__posix_fadvise50)
3015(long long res, long long fd_, long long PAD_, long long offset_,
3016 long long len_, long long advice_) {
3017 /* Nothing to do */
3018}
3019PRE_SYSCALL(__select50)
3020(long long nd_, void *in_, void *ou_, void *ex_, void *tv_) {
3021 /* Nothing to do */
3022}
3023POST_SYSCALL(__select50)
3024(long long res, long long nd_, void *in_, void *ou_, void *ex_, void *tv_) {
3025 /* Nothing to do */
3026}
3027PRE_SYSCALL(__gettimeofday50)(void *tp_, void *tzp_) { /* Nothing to do */ }
3028POST_SYSCALL(__gettimeofday50)(long long res, void *tp_, void *tzp_) {
3029 /* Nothing to do */
3030}
3031PRE_SYSCALL(__settimeofday50)(void *tv_, void *tzp_) {
3032 if (tv_) {
3033 PRE_READ(tv_, timeval_sz);
3034 }
3035 if (tzp_) {
3036 PRE_READ(tzp_, struct_timezone_sz);
3037 }
3038}
3039POST_SYSCALL(__settimeofday50)(long long res, void *tv_, void *tzp_) {}
3040PRE_SYSCALL(__utimes50)(void *path_, void *tptr_) {
3041 struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_;
3042 const char *path = (const char *)path_;
3043 if (path) {
3044 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3045 }
3046 if (tptr) {
3047 PRE_READ(tptr[0], struct_timespec_sz);
3048 PRE_READ(tptr[1], struct_timespec_sz);
3049 }
3050}
3051POST_SYSCALL(__utimes50)(long long res, void *path_, void *tptr_) {}
3052PRE_SYSCALL(__adjtime50)(void *delta_, void *olddelta_) {
3053 if (delta_) {
3054 PRE_READ(delta_, timeval_sz);
3055 }
3056}
3057POST_SYSCALL(__adjtime50)(long long res, void *delta_, void *olddelta_) {}
3058PRE_SYSCALL(__lfs_segwait50)(void *fsidp_, void *tv_) { /* TODO */ }
3059POST_SYSCALL(__lfs_segwait50)(long long res, void *fsidp_, void *tv_) {
3060 /* TODO */
3061}
3062PRE_SYSCALL(__futimes50)(long long fd_, void *tptr_) {
3063 struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_;
3064 if (tptr) {
3065 PRE_READ(tptr[0], struct_timespec_sz);
3066 PRE_READ(tptr[1], struct_timespec_sz);
3067 }
3068}
3069POST_SYSCALL(__futimes50)(long long res, long long fd_, void *tptr_) {}
3070PRE_SYSCALL(__lutimes50)(void *path_, void *tptr_) {
3071 struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_;
3072 const char *path = (const char *)path_;
3073 if (path) {
3074 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3075 }
3076 if (tptr) {
3077 PRE_READ(tptr[0], struct_timespec_sz);
3078 PRE_READ(tptr[1], struct_timespec_sz);
3079 }
3080}
3081POST_SYSCALL(__lutimes50)(long long res, void *path_, void *tptr_) {
3082 struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_;
3083 const char *path = (const char *)path_;
3084 if (path) {
3085 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3086 }
3087 if (tptr) {
3088 POST_READ(tptr[0], struct_timespec_sz);
3089 POST_READ(tptr[1], struct_timespec_sz);
3090 }
3091}
3092PRE_SYSCALL(__setitimer50)(long long which_, void *itv_, void *oitv_) {
3093 struct __sanitizer_itimerval *itv = (struct __sanitizer_itimerval *)itv_;
3094 if (itv) {
3095 PRE_READ(&itv->it_interval.tv_sec, sizeof(__sanitizer_time_t));
3096 PRE_READ(&itv->it_interval.tv_usec, sizeof(__sanitizer_suseconds_t));
3097 PRE_READ(&itv->it_value.tv_sec, sizeof(__sanitizer_time_t));
3098 PRE_READ(&itv->it_value.tv_usec, sizeof(__sanitizer_suseconds_t));
3099 }
3100}
3101POST_SYSCALL(__setitimer50)
3102(long long res, long long which_, void *itv_, void *oitv_) {}
3103PRE_SYSCALL(__getitimer50)(long long which_, void *itv_) { /* Nothing to do */ }
3104POST_SYSCALL(__getitimer50)(long long res, long long which_, void *itv_) {
3105 /* Nothing to do */
3106}
3107PRE_SYSCALL(__clock_gettime50)(long long clock_id_, void *tp_) {
3108 /* Nothing to do */
3109}
3110POST_SYSCALL(__clock_gettime50)(long long res, long long clock_id_, void *tp_) {
3111 /* Nothing to do */
3112}
3113PRE_SYSCALL(__clock_settime50)(long long clock_id_, void *tp_) {
3114 if (tp_) {
3115 PRE_READ(tp_, struct_timespec_sz);
3116 }
3117}
3118POST_SYSCALL(__clock_settime50)
3119(long long res, long long clock_id_, void *tp_) {}
3120PRE_SYSCALL(__clock_getres50)(long long clock_id_, void *tp_) {
3121 /* Nothing to do */
3122}
3123POST_SYSCALL(__clock_getres50)(long long res, long long clock_id_, void *tp_) {
3124 /* Nothing to do */
3125}
3126PRE_SYSCALL(__nanosleep50)(void *rqtp_, void *rmtp_) {
3127 if (rqtp_) {
3128 PRE_READ(rqtp_, struct_timespec_sz);
3129 }
3130}
3131POST_SYSCALL(__nanosleep50)(long long res, void *rqtp_, void *rmtp_) {}
3132PRE_SYSCALL(____sigtimedwait50)(void *set_, void *info_, void *timeout_) {
3133 if (set_) {
3134 PRE_READ(set_, sizeof(__sanitizer_sigset_t));
3135 }
3136 if (timeout_) {
3137 PRE_READ(timeout_, struct_timespec_sz);
3138 }
3139}
3140POST_SYSCALL(____sigtimedwait50)
3141(long long res, void *set_, void *info_, void *timeout_) {}
3142PRE_SYSCALL(__mq_timedsend50)
3143(long long mqdes_, void *msg_ptr_, long long msg_len_, long long msg_prio_,
3144 void *abs_timeout_) {
3145 if (msg_ptr_) {
3146 PRE_READ(msg_ptr_, msg_len_);
3147 }
3148 if (abs_timeout_) {
3149 PRE_READ(abs_timeout_, struct_timespec_sz);
3150 }
3151}
3152POST_SYSCALL(__mq_timedsend50)
3153(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_,
3154 long long msg_prio_, void *abs_timeout_) {}
3155PRE_SYSCALL(__mq_timedreceive50)
3156(long long mqdes_, void *msg_ptr_, long long msg_len_, void *msg_prio_,
3157 void *abs_timeout_) {
3158 if (msg_ptr_) {
3159 PRE_READ(msg_ptr_, msg_len_);
3160 }
3161 if (abs_timeout_) {
3162 PRE_READ(abs_timeout_, struct_timespec_sz);
3163 }
3164}
3165POST_SYSCALL(__mq_timedreceive50)
3166(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_,
3167 void *msg_prio_, void *abs_timeout_) {}
3168PRE_SYSCALL(compat_60__lwp_park)
3169(void *ts_, long long unpark_, void *hint_, void *unparkhint_) {
3170 /* TODO */
3171}
3172POST_SYSCALL(compat_60__lwp_park)
3173(long long res, void *ts_, long long unpark_, void *hint_, void *unparkhint_) {
3174 /* TODO */
3175}
3176PRE_SYSCALL(__kevent50)
3177(long long fd_, void *changelist_, long long nchanges_, void *eventlist_,
3178 long long nevents_, void *timeout_) {
3179 if (changelist_) {
3180 PRE_READ(changelist_, nchanges_ * struct_kevent_sz);
3181 }
3182 if (timeout_) {
3183 PRE_READ(timeout_, struct_timespec_sz);
3184 }
3185}
3186POST_SYSCALL(__kevent50)
3187(long long res, long long fd_, void *changelist_, long long nchanges_,
3188 void *eventlist_, long long nevents_, void *timeout_) {}
3189PRE_SYSCALL(__pselect50)
3190(long long nd_, void *in_, void *ou_, void *ex_, void *ts_, void *mask_) {
3191 if (ts_) {
3192 PRE_READ(ts_, struct_timespec_sz);
3193 }
3194 if (mask_) {
3195 PRE_READ(mask_, sizeof(struct __sanitizer_sigset_t));
3196 }
3197}
3198POST_SYSCALL(__pselect50)
3199(long long res, long long nd_, void *in_, void *ou_, void *ex_, void *ts_,
3200 void *mask_) {}
3201PRE_SYSCALL(__pollts50)(void *fds_, long long nfds_, void *ts_, void *mask_) {
3202 if (ts_) {
3203 PRE_READ(ts_, struct_timespec_sz);
3204 }
3205 if (mask_) {
3206 PRE_READ(mask_, sizeof(struct __sanitizer_sigset_t));
3207 }
3208}
3209POST_SYSCALL(__pollts50)
3210(long long res, void *fds_, long long nfds_, void *ts_, void *mask_) {}
3211PRE_SYSCALL(__aio_suspend50)(void *list_, long long nent_, void *timeout_) {
3212 int i;
3213 const struct aiocb *const *list = (const struct aiocb *const *)list_;
3214 if (list) {
3215 for (i = 0; i < nent_; i++) {
3216 if (list[i]) {
3217 PRE_READ(list[i], sizeof(struct __sanitizer_aiocb));
3218 }
3219 }
3220 }
3221 if (timeout_) {
3222 PRE_READ(timeout_, struct_timespec_sz);
3223 }
3224}
3225POST_SYSCALL(__aio_suspend50)
3226(long long res, void *list_, long long nent_, void *timeout_) {}
3227PRE_SYSCALL(__stat50)(void *path_, void *ub_) {
3228 const char *path = (const char *)path_;
3229 if (path) {
3230 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3231 }
3232}
3233POST_SYSCALL(__stat50)(long long res, void *path_, void *ub_) {
3234 const char *path = (const char *)path_;
3235 if (res == 0) {
3236 if (path) {
3237 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3238 }
3239 }
3240}
3241PRE_SYSCALL(__fstat50)(long long fd_, void *sb_) { /* Nothing to do */ }
3242POST_SYSCALL(__fstat50)(long long res, long long fd_, void *sb_) {
3243 /* Nothing to do */
3244}
3245PRE_SYSCALL(__lstat50)(void *path_, void *ub_) {
3246 const char *path = (const char *)path_;
3247 if (path) {
3248 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3249 }
3250}
3251POST_SYSCALL(__lstat50)(long long res, void *path_, void *ub_) {
3252 const char *path = (const char *)path_;
3253 if (res == 0) {
3254 if (path) {
3255 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3256 }
3257 }
3258}
3259PRE_SYSCALL(____semctl50)
3260(long long semid_, long long semnum_, long long cmd_, void *arg_) {
3261 /* Nothing to do */
3262}
3263POST_SYSCALL(____semctl50)
3264(long long res, long long semid_, long long semnum_, long long cmd_,
3265 void *arg_) {
3266 /* Nothing to do */
3267}
3268PRE_SYSCALL(__shmctl50)(long long shmid_, long long cmd_, void *buf_) {
3269 /* Nothing to do */
3270}
3271POST_SYSCALL(__shmctl50)
3272(long long res, long long shmid_, long long cmd_, void *buf_) {
3273 /* Nothing to do */
3274}
3275PRE_SYSCALL(__msgctl50)(long long msqid_, long long cmd_, void *buf_) {
3276 /* Nothing to do */
3277}
3278POST_SYSCALL(__msgctl50)
3279(long long res, long long msqid_, long long cmd_, void *buf_) {
3280 /* Nothing to do */
3281}
3282PRE_SYSCALL(__getrusage50)(long long who_, void *rusage_) {
3283 /* Nothing to do */
3284}
3285POST_SYSCALL(__getrusage50)(long long res, long long who_, void *rusage_) {
3286 /* Nothing to do */
3287}
3288PRE_SYSCALL(__timer_settime50)
3289(long long timerid_, long long flags_, void *value_, void *ovalue_) {
3290 struct __sanitizer_itimerval *value = (struct __sanitizer_itimerval *)value_;
3291 if (value) {
3292 PRE_READ(&value->it_interval.tv_sec, sizeof(__sanitizer_time_t));
3293 PRE_READ(&value->it_interval.tv_usec, sizeof(__sanitizer_suseconds_t));
3294 PRE_READ(&value->it_value.tv_sec, sizeof(__sanitizer_time_t));
3295 PRE_READ(&value->it_value.tv_usec, sizeof(__sanitizer_suseconds_t));
3296 }
3297}
3298POST_SYSCALL(__timer_settime50)
3299(long long res, long long timerid_, long long flags_, void *value_,
3300 void *ovalue_) {
3301 struct __sanitizer_itimerval *value = (struct __sanitizer_itimerval *)value_;
3302 if (res == 0) {
3303 if (value) {
3304 POST_READ(&value->it_interval.tv_sec, sizeof(__sanitizer_time_t));
3305 POST_READ(&value->it_interval.tv_usec, sizeof(__sanitizer_suseconds_t));
3306 POST_READ(&value->it_value.tv_sec, sizeof(__sanitizer_time_t));
3307 POST_READ(&value->it_value.tv_usec, sizeof(__sanitizer_suseconds_t));
3308 }
3309 }
3310}
3311PRE_SYSCALL(__timer_gettime50)(long long timerid_, void *value_) {
3312 /* Nothing to do */
3313}
3314POST_SYSCALL(__timer_gettime50)
3315(long long res, long long timerid_, void *value_) {
3316 /* Nothing to do */
3317}
3318#if defined(NTP) || !defined(_KERNEL_OPT)
3319PRE_SYSCALL(__ntp_gettime50)(void *ntvp_) { /* Nothing to do */ }
3320POST_SYSCALL(__ntp_gettime50)(long long res, void *ntvp_) {
3321 /* Nothing to do */
3322}
3323#else
3324/* syscall 448 has been skipped */
3325#endif
3326PRE_SYSCALL(__wait450)
3327(long long pid_, void *status_, long long options_, void *rusage_) {
3328 /* Nothing to do */
3329}
3330POST_SYSCALL(__wait450)
3331(long long res, long long pid_, void *status_, long long options_,
3332 void *rusage_) {
3333 /* Nothing to do */
3334}
3335PRE_SYSCALL(__mknod50)(void *path_, long long mode_, long long dev_) {
3336 const char *path = (const char *)path_;
3337 if (path) {
3338 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3339 }
3340}
3341POST_SYSCALL(__mknod50)
3342(long long res, void *path_, long long mode_, long long dev_) {
3343 const char *path = (const char *)path_;
3344 if (res == 0) {
3345 if (path) {
3346 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3347 }
3348 }
3349}
3350PRE_SYSCALL(__fhstat50)(void *fhp_, long long fh_size_, void *sb_) {
3351 if (fhp_) {
3352 PRE_READ(fhp_, fh_size_);
3353 }
3354}
3355POST_SYSCALL(__fhstat50)
3356(long long res, void *fhp_, long long fh_size_, void *sb_) {
3357 if (res == 0) {
3358 if (fhp_) {
3359 POST_READ(fhp_, fh_size_);
3360 }
3361 }
3362}
3363/* syscall 452 has been skipped */
3364PRE_SYSCALL(pipe2)(void *fildes_, long long flags_) { /* Nothing to do */ }
3365POST_SYSCALL(pipe2)(long long res, void *fildes_, long long flags_) {
3366 /* Nothing to do */
3367}
3368PRE_SYSCALL(dup3)(long long from_, long long to_, long long flags_) {
3369 /* Nothing to do */
3370}
3371POST_SYSCALL(dup3)
3372(long long res, long long from_, long long to_, long long flags_) {
3373 /* Nothing to do */
3374}
3375PRE_SYSCALL(kqueue1)(long long flags_) { /* Nothing to do */ }
3376POST_SYSCALL(kqueue1)(long long res, long long flags_) { /* Nothing to do */ }
3377PRE_SYSCALL(paccept)
3378(long long s_, void *name_, void *anamelen_, void *mask_, long long flags_) {
3379 if (mask_) {
3380 PRE_READ(mask_, sizeof(__sanitizer_sigset_t));
3381 }
3382}
3383POST_SYSCALL(paccept)
3384(long long res, long long s_, void *name_, void *anamelen_, void *mask_,
3385 long long flags_) {
3386 if (res >= 0) {
3387 if (mask_) {
3388 PRE_READ(mask_, sizeof(__sanitizer_sigset_t));
3389 }
3390 }
3391}
3392PRE_SYSCALL(linkat)
3393(long long fd1_, void *name1_, long long fd2_, void *name2_, long long flags_) {
3394 const char *name1 = (const char *)name1_;
3395 const char *name2 = (const char *)name2_;
3396 if (name1) {
3397 PRE_READ(name1, __sanitizer::internal_strlen(name1) + 1);
3398 }
3399 if (name2) {
3400 PRE_READ(name2, __sanitizer::internal_strlen(name2) + 1);
3401 }
3402}
3403POST_SYSCALL(linkat)
3404(long long res, long long fd1_, void *name1_, long long fd2_, void *name2_,
3405 long long flags_) {
3406 const char *name1 = (const char *)name1_;
3407 const char *name2 = (const char *)name2_;
3408 if (res == 0) {
3409 if (name1) {
3410 POST_READ(name1, __sanitizer::internal_strlen(name1) + 1);
3411 }
3412 if (name2) {
3413 POST_READ(name2, __sanitizer::internal_strlen(name2) + 1);
3414 }
3415 }
3416}
3417PRE_SYSCALL(renameat)
3418(long long fromfd_, void *from_, long long tofd_, void *to_) {
3419 const char *from = (const char *)from_;
3420 const char *to = (const char *)to_;
3421 if (from) {
3422 PRE_READ(from, __sanitizer::internal_strlen(from) + 1);
3423 }
3424 if (to) {
3425 PRE_READ(to, __sanitizer::internal_strlen(to) + 1);
3426 }
3427}
3428POST_SYSCALL(renameat)
3429(long long res, long long fromfd_, void *from_, long long tofd_, void *to_) {
3430 const char *from = (const char *)from_;
3431 const char *to = (const char *)to_;
3432 if (res == 0) {
3433 if (from) {
3434 POST_READ(from, __sanitizer::internal_strlen(from) + 1);
3435 }
3436 if (to) {
3437 POST_READ(to, __sanitizer::internal_strlen(to) + 1);
3438 }
3439 }
3440}
3441PRE_SYSCALL(mkfifoat)(long long fd_, void *path_, long long mode_) {
3442 const char *path = (const char *)path_;
3443 if (path) {
3444 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3445 }
3446}
3447POST_SYSCALL(mkfifoat)
3448(long long res, long long fd_, void *path_, long long mode_) {
3449 const char *path = (const char *)path_;
3450 if (res == 0) {
3451 if (path) {
3452 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3453 }
3454 }
3455}
3456PRE_SYSCALL(mknodat)
3457(long long fd_, void *path_, long long mode_, long long PAD_, long long dev_) {
3458 const char *path = (const char *)path_;
3459 if (path) {
3460 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3461 }
3462}
3463POST_SYSCALL(mknodat)
3464(long long res, long long fd_, void *path_, long long mode_, long long PAD_,
3465 long long dev_) {
3466 const char *path = (const char *)path_;
3467 if (res == 0) {
3468 if (path) {
3469 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3470 }
3471 }
3472}
3473PRE_SYSCALL(mkdirat)(long long fd_, void *path_, long long mode_) {
3474 const char *path = (const char *)path_;
3475 if (path) {
3476 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3477 }
3478}
3479POST_SYSCALL(mkdirat)
3480(long long res, long long fd_, void *path_, long long mode_) {
3481 const char *path = (const char *)path_;
3482 if (res == 0) {
3483 if (path) {
3484 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3485 }
3486 }
3487}
3488PRE_SYSCALL(faccessat)
3489(long long fd_, void *path_, long long amode_, long long flag_) {
3490 const char *path = (const char *)path_;
3491 if (path) {
3492 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3493 }
3494}
3495POST_SYSCALL(faccessat)
3496(long long res, long long fd_, void *path_, long long amode_, long long flag_) {
3497 const char *path = (const char *)path_;
3498 if (res == 0) {
3499 if (path) {
3500 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3501 }
3502 }
3503}
3504PRE_SYSCALL(fchmodat)
3505(long long fd_, void *path_, long long mode_, long long flag_) {
3506 const char *path = (const char *)path_;
3507 if (path) {
3508 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3509 }
3510}
3511POST_SYSCALL(fchmodat)
3512(long long res, long long fd_, void *path_, long long mode_, long long flag_) {
3513 const char *path = (const char *)path_;
3514 if (res == 0) {
3515 if (path) {
3516 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3517 }
3518 }
3519}
3520PRE_SYSCALL(fchownat)
3521(long long fd_, void *path_, long long owner_, long long group_,
3522 long long flag_) {
3523 const char *path = (const char *)path_;
3524 if (path) {
3525 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3526 }
3527}
3528POST_SYSCALL(fchownat)
3529(long long res, long long fd_, void *path_, long long owner_, long long group_,
3530 long long flag_) {
3531 const char *path = (const char *)path_;
3532 if (res == 0) {
3533 if (path) {
3534 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3535 }
3536 }
3537}
3538PRE_SYSCALL(fexecve)(long long fd_, void *argp_, void *envp_) { /* TODO */ }
3539POST_SYSCALL(fexecve)(long long res, long long fd_, void *argp_, void *envp_) {
3540 /* TODO */
3541}
3542PRE_SYSCALL(fstatat)(long long fd_, void *path_, void *buf_, long long flag_) {
3543 const char *path = (const char *)path_;
3544 if (path) {
3545 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3546 }
3547}
3548POST_SYSCALL(fstatat)
3549(long long res, long long fd_, void *path_, void *buf_, long long flag_) {
3550 const char *path = (const char *)path_;
3551 if (path) {
3552 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3553 }
3554}
3555PRE_SYSCALL(utimensat)
3556(long long fd_, void *path_, void *tptr_, long long flag_) {
3557 const char *path = (const char *)path_;
3558 if (path) {
3559 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3560 }
3561 if (tptr_) {
3562 PRE_READ(tptr_, struct_timespec_sz);
3563 }
3564}
3565POST_SYSCALL(utimensat)
3566(long long res, long long fd_, void *path_, void *tptr_, long long flag_) {
3567 const char *path = (const char *)path_;
3568 if (res > 0) {
3569 if (path) {
3570 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3571 }
3572 if (tptr_) {
3573 POST_READ(tptr_, struct_timespec_sz);
3574 }
3575 }
3576}
3577PRE_SYSCALL(openat)
3578(long long fd_, void *path_, long long oflags_, long long mode_) {
3579 const char *path = (const char *)path_;
3580 if (path) {
3581 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3582 }
3583}
3584POST_SYSCALL(openat)
3585(long long res, long long fd_, void *path_, long long oflags_,
3586 long long mode_) {
3587 const char *path = (const char *)path_;
3588 if (res > 0) {
3589 if (path) {
3590 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3591 }
3592 }
3593}
3594PRE_SYSCALL(readlinkat)
3595(long long fd_, void *path_, void *buf_, long long bufsize_) {
3596 const char *path = (const char *)path_;
3597 if (path) {
3598 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3599 }
3600}
3601POST_SYSCALL(readlinkat)
3602(long long res, long long fd_, void *path_, void *buf_, long long bufsize_) {
3603 const char *path = (const char *)path_;
3604 if (res > 0) {
3605 if (path) {
3606 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3607 }
3608 }
3609}
3610PRE_SYSCALL(symlinkat)(void *path1_, long long fd_, void *path2_) {
3611 const char *path1 = (const char *)path1_;
3612 const char *path2 = (const char *)path2_;
3613 if (path1) {
3614 PRE_READ(path1, __sanitizer::internal_strlen(path1) + 1);
3615 }
3616 if (path2) {
3617 PRE_READ(path2, __sanitizer::internal_strlen(path2) + 1);
3618 }
3619}
3620POST_SYSCALL(symlinkat)
3621(long long res, void *path1_, long long fd_, void *path2_) {
3622 const char *path1 = (const char *)path1_;
3623 const char *path2 = (const char *)path2_;
3624 if (res == 0) {
3625 if (path1) {
3626 POST_READ(path1, __sanitizer::internal_strlen(path1) + 1);
3627 }
3628 if (path2) {
3629 POST_READ(path2, __sanitizer::internal_strlen(path2) + 1);
3630 }
3631 }
3632}
3633PRE_SYSCALL(unlinkat)(long long fd_, void *path_, long long flag_) {
3634 const char *path = (const char *)path_;
3635 if (path) {
3636 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3637 }
3638}
3639POST_SYSCALL(unlinkat)
3640(long long res, long long fd_, void *path_, long long flag_) {
3641 const char *path = (const char *)path_;
3642 if (res == 0) {
3643 if (path) {
3644 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3645 }
3646 }
3647}
3648PRE_SYSCALL(futimens)(long long fd_, void *tptr_) {
3649 struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_;
3650 if (tptr) {
3651 PRE_READ(tptr[0], struct_timespec_sz);
3652 PRE_READ(tptr[1], struct_timespec_sz);
3653 }
3654}
3655POST_SYSCALL(futimens)(long long res, long long fd_, void *tptr_) {
3656 struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_;
3657 if (res == 0) {
3658 if (tptr) {
3659 POST_READ(tptr[0], struct_timespec_sz);
3660 POST_READ(tptr[1], struct_timespec_sz);
3661 }
3662 }
3663}
3664PRE_SYSCALL(__quotactl)(void *path_, void *args_) {
3665 const char *path = (const char *)path_;
3666 if (path) {
3667 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3668 }
3669}
3670POST_SYSCALL(__quotactl)(long long res, void *path_, void *args_) {
3671 const char *path = (const char *)path_;
3672 if (res == 0) {
3673 if (path) {
3674 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3675 }
3676 }
3677}
3678PRE_SYSCALL(posix_spawn)
3679(void *pid_, void *path_, void *file_actions_, void *attrp_, void *argv_,
3680 void *envp_) {
3681 const char *path = (const char *)path_;
3682 if (path) {
3683 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3684 }
3685}
3686POST_SYSCALL(posix_spawn)
3687(long long res, void *pid_, void *path_, void *file_actions_, void *attrp_,
3688 void *argv_, void *envp_) {
3689 const char *path = (const char *)path_;
3690 if (pid_) {
3691 if (path) {
3692 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3693 }
3694 }
3695}
3696PRE_SYSCALL(recvmmsg)
3697(long long s_, void *mmsg_, long long vlen_, long long flags_, void *timeout_) {
3698 if (timeout_) {
3699 PRE_READ(timeout_, struct_timespec_sz);
3700 }
3701}
3702POST_SYSCALL(recvmmsg)
3703(long long res, long long s_, void *mmsg_, long long vlen_, long long flags_,
3704 void *timeout_) {
3705 if (res >= 0) {
3706 if (timeout_) {
3707 POST_READ(timeout_, struct_timespec_sz);
3708 }
3709 }
3710}
3711PRE_SYSCALL(sendmmsg)
3712(long long s_, void *mmsg_, long long vlen_, long long flags_) {
3713 struct __sanitizer_mmsghdr *mmsg = (struct __sanitizer_mmsghdr *)mmsg_;
eac97531 3714 if (mmsg) {
b667dd70
ML
3715 PRE_READ(mmsg, sizeof(struct __sanitizer_mmsghdr) *
3716 (vlen_ > 1024 ? 1024 : vlen_));
eac97531
ML
3717 }
3718}
3719POST_SYSCALL(sendmmsg)
3720(long long res, long long s_, void *mmsg_, long long vlen_, long long flags_) {
3721 struct __sanitizer_mmsghdr *mmsg = (struct __sanitizer_mmsghdr *)mmsg_;
eac97531
ML
3722 if (res >= 0) {
3723 if (mmsg) {
b667dd70
ML
3724 POST_READ(mmsg, sizeof(struct __sanitizer_mmsghdr) *
3725 (vlen_ > 1024 ? 1024 : vlen_));
eac97531
ML
3726 }
3727 }
3728}
3729PRE_SYSCALL(clock_nanosleep)
3730(long long clock_id_, long long flags_, void *rqtp_, void *rmtp_) {
3731 if (rqtp_) {
3732 PRE_READ(rqtp_, struct_timespec_sz);
3733 }
3734}
3735POST_SYSCALL(clock_nanosleep)
3736(long long res, long long clock_id_, long long flags_, void *rqtp_,
3737 void *rmtp_) {
3738 if (rqtp_) {
3739 POST_READ(rqtp_, struct_timespec_sz);
3740 }
3741}
3742PRE_SYSCALL(___lwp_park60)
3743(long long clock_id_, long long flags_, void *ts_, long long unpark_,
3744 void *hint_, void *unparkhint_) {
3745 if (ts_) {
3746 PRE_READ(ts_, struct_timespec_sz);
3747 }
3748}
3749POST_SYSCALL(___lwp_park60)
3750(long long res, long long clock_id_, long long flags_, void *ts_,
3751 long long unpark_, void *hint_, void *unparkhint_) {
3752 if (res == 0) {
3753 if (ts_) {
3754 POST_READ(ts_, struct_timespec_sz);
3755 }
3756 }
3757}
3758PRE_SYSCALL(posix_fallocate)
3759(long long fd_, long long PAD_, long long pos_, long long len_) {
3760 /* Nothing to do */
3761}
3762POST_SYSCALL(posix_fallocate)
3763(long long res, long long fd_, long long PAD_, long long pos_, long long len_) {
3764 /* Nothing to do */
3765}
3766PRE_SYSCALL(fdiscard)
3767(long long fd_, long long PAD_, long long pos_, long long len_) {
3768 /* Nothing to do */
3769}
3770POST_SYSCALL(fdiscard)
3771(long long res, long long fd_, long long PAD_, long long pos_, long long len_) {
3772 /* Nothing to do */
3773}
3774PRE_SYSCALL(wait6)
3775(long long idtype_, long long id_, void *status_, long long options_,
3776 void *wru_, void *info_) {
3777 /* Nothing to do */
3778}
3779POST_SYSCALL(wait6)
3780(long long res, long long idtype_, long long id_, void *status_,
3781 long long options_, void *wru_, void *info_) {
3782 /* Nothing to do */
3783}
3784PRE_SYSCALL(clock_getcpuclockid2)
3785(long long idtype_, long long id_, void *clock_id_) {
3786 /* Nothing to do */
3787}
3788POST_SYSCALL(clock_getcpuclockid2)
3789(long long res, long long idtype_, long long id_, void *clock_id_) {
3790 /* Nothing to do */
3791}
cb7dc4da
ML
3792PRE_SYSCALL(__getvfsstat90)(void *buf_, long long bufsize_, long long flags_) {
3793 /* Nothing to do */
3794}
3795POST_SYSCALL(__getvfsstat90)
3796(long long res, void *buf_, long long bufsize_, long long flags_) {
3797 /* Nothing to do */
3798}
3799PRE_SYSCALL(__statvfs190)(void *path_, void *buf_, long long flags_) {
3800 const char *path = (const char *)path_;
3801 if (path) {
3802 PRE_READ(path, __sanitizer::internal_strlen(path) + 1);
3803 }
3804}
3805POST_SYSCALL(__statvfs190)
3806(long long res, void *path_, void *buf_, long long flags_) {
3807 const char *path = (const char *)path_;
3808 if (path) {
3809 POST_READ(path, __sanitizer::internal_strlen(path) + 1);
3810 }
3811}
3812PRE_SYSCALL(__fstatvfs190)(long long fd_, void *buf_, long long flags_) {
3813 /* Nothing to do */
3814}
3815POST_SYSCALL(__fstatvfs190)
3816(long long res, long long fd_, void *buf_, long long flags_) {
3817 /* Nothing to do */
3818}
3819PRE_SYSCALL(__fhstatvfs190)
3820(void *fhp_, long long fh_size_, void *buf_, long long flags_) {
3821 if (fhp_) {
3822 PRE_READ(fhp_, fh_size_);
3823 }
3824}
3825POST_SYSCALL(__fhstatvfs190)
3826(long long res, void *fhp_, long long fh_size_, void *buf_, long long flags_) {}
eac97531
ML
3827#undef SYS_MAXSYSARGS
3828} // extern "C"
3829
3830#undef PRE_SYSCALL
3831#undef PRE_READ
3832#undef PRE_WRITE
3833#undef POST_SYSCALL
3834#undef POST_READ
3835#undef POST_WRITE
3836
3837#endif // SANITIZER_NETBSD