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