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