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