181418a27Smrg//===-- sanitizer_syscalls_netbsd.inc ---------------------------*- C++ -*-===// 281418a27Smrg// 37bb5462dSkamil// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 47bb5462dSkamil// See https://llvm.org/LICENSE.txt for license information. 57bb5462dSkamil// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 681418a27Smrg// 781418a27Smrg//===----------------------------------------------------------------------===// 881418a27Smrg// 981418a27Smrg// Common syscalls handlers for tools like AddressSanitizer, 1081418a27Smrg// ThreadSanitizer, MemorySanitizer, etc. 1181418a27Smrg// 1281418a27Smrg// This file should be included into the tool's interceptor file, 1381418a27Smrg// which has to define it's own macros: 1481418a27Smrg// COMMON_SYSCALL_PRE_READ_RANGE 1581418a27Smrg// Called in prehook for regions that will be read by the kernel and 1681418a27Smrg// must be initialized. 1781418a27Smrg// COMMON_SYSCALL_PRE_WRITE_RANGE 1881418a27Smrg// Called in prehook for regions that will be written to by the kernel 1981418a27Smrg// and must be addressable. The actual write range may be smaller than 2081418a27Smrg// reported in the prehook. See POST_WRITE_RANGE. 2181418a27Smrg// COMMON_SYSCALL_POST_READ_RANGE 2281418a27Smrg// Called in posthook for regions that were read by the kernel. Does 2381418a27Smrg// not make much sense. 2481418a27Smrg// COMMON_SYSCALL_POST_WRITE_RANGE 2581418a27Smrg// Called in posthook for regions that were written to by the kernel 2681418a27Smrg// and are now initialized. 2781418a27Smrg// COMMON_SYSCALL_ACQUIRE(addr) 2881418a27Smrg// Acquire memory visibility from addr. 2981418a27Smrg// COMMON_SYSCALL_RELEASE(addr) 3081418a27Smrg// Release memory visibility to addr. 3181418a27Smrg// COMMON_SYSCALL_FD_CLOSE(fd) 3281418a27Smrg// Called before closing file descriptor fd. 3381418a27Smrg// COMMON_SYSCALL_FD_ACQUIRE(fd) 3481418a27Smrg// Acquire memory visibility from fd. 3581418a27Smrg// COMMON_SYSCALL_FD_RELEASE(fd) 3681418a27Smrg// Release memory visibility to fd. 3781418a27Smrg// COMMON_SYSCALL_PRE_FORK() 3881418a27Smrg// Called before fork syscall. 3981418a27Smrg// COMMON_SYSCALL_POST_FORK(long long res) 4081418a27Smrg// Called after fork syscall. 4181418a27Smrg// 4281418a27Smrg// DO NOT EDIT! THIS FILE HAS BEEN GENERATED! 4381418a27Smrg// 4481418a27Smrg// Generated with: generate_netbsd_syscalls.awk 457bb5462dSkamil// Generated date: 2020-09-10 467bb5462dSkamil// Generated from: syscalls.master,v 1.306 2020/08/14 00:53:16 riastradh Exp 4781418a27Smrg// 4881418a27Smrg//===----------------------------------------------------------------------===// 4981418a27Smrg 5081418a27Smrg#include "sanitizer_platform.h" 5181418a27Smrg#if SANITIZER_NETBSD 5281418a27Smrg 5381418a27Smrg#include "sanitizer_libc.h" 5481418a27Smrg 5581418a27Smrg#define PRE_SYSCALL(name) \ 5681418a27Smrg SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_syscall_pre_impl_##name 5781418a27Smrg#define PRE_READ(p, s) COMMON_SYSCALL_PRE_READ_RANGE(p, s) 5881418a27Smrg#define PRE_WRITE(p, s) COMMON_SYSCALL_PRE_WRITE_RANGE(p, s) 5981418a27Smrg 6081418a27Smrg#define POST_SYSCALL(name) \ 6181418a27Smrg SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_syscall_post_impl_##name 6281418a27Smrg#define POST_READ(p, s) COMMON_SYSCALL_POST_READ_RANGE(p, s) 6381418a27Smrg#define POST_WRITE(p, s) COMMON_SYSCALL_POST_WRITE_RANGE(p, s) 6481418a27Smrg 6581418a27Smrg#ifndef COMMON_SYSCALL_ACQUIRE 6681418a27Smrg#define COMMON_SYSCALL_ACQUIRE(addr) ((void)(addr)) 6781418a27Smrg#endif 6881418a27Smrg 6981418a27Smrg#ifndef COMMON_SYSCALL_RELEASE 7081418a27Smrg#define COMMON_SYSCALL_RELEASE(addr) ((void)(addr)) 7181418a27Smrg#endif 7281418a27Smrg 7381418a27Smrg#ifndef COMMON_SYSCALL_FD_CLOSE 7481418a27Smrg#define COMMON_SYSCALL_FD_CLOSE(fd) ((void)(fd)) 7581418a27Smrg#endif 7681418a27Smrg 7781418a27Smrg#ifndef COMMON_SYSCALL_FD_ACQUIRE 7881418a27Smrg#define COMMON_SYSCALL_FD_ACQUIRE(fd) ((void)(fd)) 7981418a27Smrg#endif 8081418a27Smrg 8181418a27Smrg#ifndef COMMON_SYSCALL_FD_RELEASE 8281418a27Smrg#define COMMON_SYSCALL_FD_RELEASE(fd) ((void)(fd)) 8381418a27Smrg#endif 8481418a27Smrg 8581418a27Smrg#ifndef COMMON_SYSCALL_PRE_FORK 8681418a27Smrg#define COMMON_SYSCALL_PRE_FORK() \ 8781418a27Smrg {} 8881418a27Smrg#endif 8981418a27Smrg 9081418a27Smrg#ifndef COMMON_SYSCALL_POST_FORK 9181418a27Smrg#define COMMON_SYSCALL_POST_FORK(res) \ 9281418a27Smrg {} 9381418a27Smrg#endif 9481418a27Smrg 9581418a27Smrg// FIXME: do some kind of PRE_READ for all syscall arguments (int(s) and such). 9681418a27Smrg 9781418a27Smrgextern "C" { 9881418a27Smrg#define SYS_MAXSYSARGS 8 9981418a27SmrgPRE_SYSCALL(syscall)(long long code_, long long args_[SYS_MAXSYSARGS]) { 10081418a27Smrg /* Nothing to do */ 10181418a27Smrg} 10281418a27SmrgPOST_SYSCALL(syscall) 10381418a27Smrg(long long res, long long code_, long long args_[SYS_MAXSYSARGS]) { 10481418a27Smrg /* Nothing to do */ 10581418a27Smrg} 10681418a27SmrgPRE_SYSCALL(exit)(long long rval_) { /* Nothing to do */ } 10781418a27SmrgPOST_SYSCALL(exit)(long long res, long long rval_) { /* Nothing to do */ } 10881418a27SmrgPRE_SYSCALL(fork)(void) { COMMON_SYSCALL_PRE_FORK(); } 10981418a27SmrgPOST_SYSCALL(fork)(long long res) { COMMON_SYSCALL_POST_FORK(res); } 11081418a27SmrgPRE_SYSCALL(read)(long long fd_, void *buf_, long long nbyte_) { 11181418a27Smrg if (buf_) { 11281418a27Smrg PRE_WRITE(buf_, nbyte_); 11381418a27Smrg } 11481418a27Smrg} 11581418a27SmrgPOST_SYSCALL(read)(long long res, long long fd_, void *buf_, long long nbyte_) { 11681418a27Smrg if (res > 0) { 11781418a27Smrg POST_WRITE(buf_, res); 11881418a27Smrg } 11981418a27Smrg} 12081418a27SmrgPRE_SYSCALL(write)(long long fd_, void *buf_, long long nbyte_) { 12181418a27Smrg if (buf_) { 12281418a27Smrg PRE_READ(buf_, nbyte_); 12381418a27Smrg } 12481418a27Smrg} 12581418a27SmrgPOST_SYSCALL(write) 12681418a27Smrg(long long res, long long fd_, void *buf_, long long nbyte_) { 12781418a27Smrg if (res > 0) { 12881418a27Smrg POST_READ(buf_, res); 12981418a27Smrg } 13081418a27Smrg} 13181418a27SmrgPRE_SYSCALL(open)(void *path_, long long flags_, long long mode_) { 13281418a27Smrg const char *path = (const char *)path_; 13381418a27Smrg if (path) { 13481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 13581418a27Smrg } 13681418a27Smrg} 13781418a27SmrgPOST_SYSCALL(open) 13881418a27Smrg(long long res, void *path_, long long flags_, long long mode_) { 13981418a27Smrg if (res > 0) { 14081418a27Smrg const char *path = (const char *)path_; 14181418a27Smrg if (path) { 14281418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 14381418a27Smrg } 14481418a27Smrg } 14581418a27Smrg} 14681418a27SmrgPRE_SYSCALL(close)(long long fd_) { COMMON_SYSCALL_FD_CLOSE((int)fd_); } 14781418a27SmrgPOST_SYSCALL(close)(long long res, long long fd_) { /* Nothing to do */ } 14881418a27SmrgPRE_SYSCALL(compat_50_wait4) 14981418a27Smrg(long long pid_, void *status_, long long options_, void *rusage_) { 15081418a27Smrg /* TODO */ 15181418a27Smrg} 15281418a27SmrgPOST_SYSCALL(compat_50_wait4) 15381418a27Smrg(long long res, long long pid_, void *status_, long long options_, 15481418a27Smrg void *rusage_) { 15581418a27Smrg /* TODO */ 15681418a27Smrg} 15781418a27SmrgPRE_SYSCALL(compat_43_ocreat)(void *path_, long long mode_) { /* TODO */ } 15881418a27SmrgPOST_SYSCALL(compat_43_ocreat)(long long res, void *path_, long long mode_) { 15981418a27Smrg /* TODO */ 16081418a27Smrg} 16181418a27SmrgPRE_SYSCALL(link)(void *path_, void *link_) { 16281418a27Smrg const char *path = (const char *)path_; 16381418a27Smrg const char *link = (const char *)link_; 16481418a27Smrg if (path) { 16581418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 16681418a27Smrg } 16781418a27Smrg if (link) { 16881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(link) + 1); 16981418a27Smrg } 17081418a27Smrg} 17181418a27SmrgPOST_SYSCALL(link)(long long res, void *path_, void *link_) { 17281418a27Smrg if (res == 0) { 17381418a27Smrg const char *path = (const char *)path_; 17481418a27Smrg const char *link = (const char *)link_; 17581418a27Smrg if (path) { 17681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 17781418a27Smrg } 17881418a27Smrg if (link) { 17981418a27Smrg POST_READ(path, __sanitizer::internal_strlen(link) + 1); 18081418a27Smrg } 18181418a27Smrg } 18281418a27Smrg} 18381418a27SmrgPRE_SYSCALL(unlink)(void *path_) { 18481418a27Smrg const char *path = (const char *)path_; 18581418a27Smrg if (path) { 18681418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 18781418a27Smrg } 18881418a27Smrg} 18981418a27SmrgPOST_SYSCALL(unlink)(long long res, void *path_) { 19081418a27Smrg if (res == 0) { 19181418a27Smrg const char *path = (const char *)path_; 19281418a27Smrg if (path) { 19381418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 19481418a27Smrg } 19581418a27Smrg } 19681418a27Smrg} 19781418a27Smrg/* syscall 11 has been skipped */ 19881418a27SmrgPRE_SYSCALL(chdir)(void *path_) { 19981418a27Smrg const char *path = (const char *)path_; 20081418a27Smrg if (path) { 20181418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 20281418a27Smrg } 20381418a27Smrg} 20481418a27SmrgPOST_SYSCALL(chdir)(long long res, void *path_) { 20581418a27Smrg if (res == 0) { 20681418a27Smrg const char *path = (const char *)path_; 20781418a27Smrg if (path) { 20881418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 20981418a27Smrg } 21081418a27Smrg } 21181418a27Smrg} 21281418a27SmrgPRE_SYSCALL(fchdir)(long long fd_) { /* Nothing to do */ } 21381418a27SmrgPOST_SYSCALL(fchdir)(long long res, long long fd_) { /* Nothing to do */ } 21481418a27SmrgPRE_SYSCALL(compat_50_mknod)(void *path_, long long mode_, long long dev_) { 21581418a27Smrg /* TODO */ 21681418a27Smrg} 21781418a27SmrgPOST_SYSCALL(compat_50_mknod) 21881418a27Smrg(long long res, void *path_, long long mode_, long long dev_) { 21981418a27Smrg /* TODO */ 22081418a27Smrg} 22181418a27SmrgPRE_SYSCALL(chmod)(void *path_, long long mode_) { 22281418a27Smrg const char *path = (const char *)path_; 22381418a27Smrg if (path) { 22481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 22581418a27Smrg } 22681418a27Smrg} 22781418a27SmrgPOST_SYSCALL(chmod)(long long res, void *path_, long long mode_) { 22881418a27Smrg if (res == 0) { 22981418a27Smrg const char *path = (const char *)path_; 23081418a27Smrg if (path) { 23181418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 23281418a27Smrg } 23381418a27Smrg } 23481418a27Smrg} 23581418a27SmrgPRE_SYSCALL(chown)(void *path_, long long uid_, long long gid_) { 23681418a27Smrg const char *path = (const char *)path_; 23781418a27Smrg if (path) { 23881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 23981418a27Smrg } 24081418a27Smrg} 24181418a27SmrgPOST_SYSCALL(chown) 24281418a27Smrg(long long res, void *path_, long long uid_, long long gid_) { 24381418a27Smrg if (res == 0) { 24481418a27Smrg const char *path = (const char *)path_; 24581418a27Smrg if (path) { 24681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 24781418a27Smrg } 24881418a27Smrg } 24981418a27Smrg} 25081418a27SmrgPRE_SYSCALL(break)(void *nsize_) { /* Nothing to do */ } 25181418a27SmrgPOST_SYSCALL(break)(long long res, void *nsize_) { /* Nothing to do */ } 25281418a27SmrgPRE_SYSCALL(compat_20_getfsstat) 25381418a27Smrg(void *buf_, long long bufsize_, long long flags_) { 25481418a27Smrg /* TODO */ 25581418a27Smrg} 25681418a27SmrgPOST_SYSCALL(compat_20_getfsstat) 25781418a27Smrg(long long res, void *buf_, long long bufsize_, long long flags_) { 25881418a27Smrg /* TODO */ 25981418a27Smrg} 26081418a27SmrgPRE_SYSCALL(compat_43_olseek) 26181418a27Smrg(long long fd_, long long offset_, long long whence_) { 26281418a27Smrg /* TODO */ 26381418a27Smrg} 26481418a27SmrgPOST_SYSCALL(compat_43_olseek) 26581418a27Smrg(long long res, long long fd_, long long offset_, long long whence_) { 26681418a27Smrg /* TODO */ 26781418a27Smrg} 26881418a27SmrgPRE_SYSCALL(getpid)(void) { /* Nothing to do */ } 26981418a27SmrgPOST_SYSCALL(getpid)(long long res) { /* Nothing to do */ } 27081418a27SmrgPRE_SYSCALL(compat_40_mount) 27181418a27Smrg(void *type_, void *path_, long long flags_, void *data_) { 27281418a27Smrg /* TODO */ 27381418a27Smrg} 27481418a27SmrgPOST_SYSCALL(compat_40_mount) 27581418a27Smrg(long long res, void *type_, void *path_, long long flags_, void *data_) { 27681418a27Smrg /* TODO */ 27781418a27Smrg} 27881418a27SmrgPRE_SYSCALL(unmount)(void *path_, long long flags_) { 27981418a27Smrg const char *path = (const char *)path_; 28081418a27Smrg if (path) { 28181418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 28281418a27Smrg } 28381418a27Smrg} 28481418a27SmrgPOST_SYSCALL(unmount)(long long res, void *path_, long long flags_) { 28581418a27Smrg if (res == 0) { 28681418a27Smrg const char *path = (const char *)path_; 28781418a27Smrg if (path) { 28881418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 28981418a27Smrg } 29081418a27Smrg } 29181418a27Smrg} 29281418a27SmrgPRE_SYSCALL(setuid)(long long uid_) { /* Nothing to do */ } 29381418a27SmrgPOST_SYSCALL(setuid)(long long res, long long uid_) { /* Nothing to do */ } 29481418a27SmrgPRE_SYSCALL(getuid)(void) { /* Nothing to do */ } 29581418a27SmrgPOST_SYSCALL(getuid)(long long res) { /* Nothing to do */ } 29681418a27SmrgPRE_SYSCALL(geteuid)(void) { /* Nothing to do */ } 29781418a27SmrgPOST_SYSCALL(geteuid)(long long res) { /* Nothing to do */ } 29881418a27SmrgPRE_SYSCALL(ptrace) 29981418a27Smrg(long long req_, long long pid_, void *addr_, long long data_) { 30081418a27Smrg if (req_ == ptrace_pt_io) { 30181418a27Smrg struct __sanitizer_ptrace_io_desc *addr = 30281418a27Smrg (struct __sanitizer_ptrace_io_desc *)addr_; 30381418a27Smrg PRE_READ(addr, struct_ptrace_ptrace_io_desc_struct_sz); 30481418a27Smrg if (addr->piod_op == ptrace_piod_write_d || 30581418a27Smrg addr->piod_op == ptrace_piod_write_i) { 30681418a27Smrg PRE_READ(addr->piod_addr, addr->piod_len); 30781418a27Smrg } 30881418a27Smrg if (addr->piod_op == ptrace_piod_read_d || 30981418a27Smrg addr->piod_op == ptrace_piod_read_i || 31081418a27Smrg addr->piod_op == ptrace_piod_read_auxv) { 31181418a27Smrg PRE_WRITE(addr->piod_addr, addr->piod_len); 31281418a27Smrg } 31381418a27Smrg } else if (req_ == ptrace_pt_lwpinfo) { 31481418a27Smrg struct __sanitizer_ptrace_lwpinfo *addr = 31581418a27Smrg (struct __sanitizer_ptrace_lwpinfo *)addr_; 31681418a27Smrg PRE_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t)); 31781418a27Smrg PRE_WRITE(addr, struct_ptrace_ptrace_lwpinfo_struct_sz); 31881418a27Smrg } else if (req_ == ptrace_pt_set_event_mask) { 31981418a27Smrg PRE_READ(addr_, struct_ptrace_ptrace_event_struct_sz); 32081418a27Smrg } else if (req_ == ptrace_pt_get_event_mask) { 32181418a27Smrg PRE_WRITE(addr_, struct_ptrace_ptrace_event_struct_sz); 32281418a27Smrg } else if (req_ == ptrace_pt_set_siginfo) { 32381418a27Smrg PRE_READ(addr_, struct_ptrace_ptrace_siginfo_struct_sz); 32481418a27Smrg } else if (req_ == ptrace_pt_get_siginfo) { 32581418a27Smrg PRE_WRITE(addr_, struct_ptrace_ptrace_siginfo_struct_sz); 3267bb5462dSkamil } else if (req_ == ptrace_pt_lwpstatus) { 3277bb5462dSkamil struct __sanitizer_ptrace_lwpstatus *addr = 3287bb5462dSkamil (struct __sanitizer_ptrace_lwpstatus *)addr_; 3297bb5462dSkamil PRE_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t)); 3307bb5462dSkamil PRE_WRITE(addr, struct_ptrace_ptrace_lwpstatus_struct_sz); 3317bb5462dSkamil } else if (req_ == ptrace_pt_lwpnext) { 3327bb5462dSkamil struct __sanitizer_ptrace_lwpstatus *addr = 3337bb5462dSkamil (struct __sanitizer_ptrace_lwpstatus *)addr_; 3347bb5462dSkamil PRE_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t)); 3357bb5462dSkamil PRE_WRITE(addr, struct_ptrace_ptrace_lwpstatus_struct_sz); 33681418a27Smrg } else if (req_ == ptrace_pt_setregs) { 33781418a27Smrg PRE_READ(addr_, struct_ptrace_reg_struct_sz); 33881418a27Smrg } else if (req_ == ptrace_pt_getregs) { 33981418a27Smrg PRE_WRITE(addr_, struct_ptrace_reg_struct_sz); 34081418a27Smrg } else if (req_ == ptrace_pt_setfpregs) { 34181418a27Smrg PRE_READ(addr_, struct_ptrace_fpreg_struct_sz); 34281418a27Smrg } else if (req_ == ptrace_pt_getfpregs) { 34381418a27Smrg PRE_WRITE(addr_, struct_ptrace_fpreg_struct_sz); 34481418a27Smrg } else if (req_ == ptrace_pt_setdbregs) { 34581418a27Smrg PRE_READ(addr_, struct_ptrace_dbreg_struct_sz); 34681418a27Smrg } else if (req_ == ptrace_pt_getdbregs) { 34781418a27Smrg PRE_WRITE(addr_, struct_ptrace_dbreg_struct_sz); 34881418a27Smrg } 34981418a27Smrg} 35081418a27SmrgPOST_SYSCALL(ptrace) 35181418a27Smrg(long long res, long long req_, long long pid_, void *addr_, long long data_) { 35281418a27Smrg if (res == 0) { 35381418a27Smrg if (req_ == ptrace_pt_io) { 35481418a27Smrg struct __sanitizer_ptrace_io_desc *addr = 35581418a27Smrg (struct __sanitizer_ptrace_io_desc *)addr_; 35681418a27Smrg POST_READ(addr, struct_ptrace_ptrace_io_desc_struct_sz); 35781418a27Smrg if (addr->piod_op == ptrace_piod_write_d || 35881418a27Smrg addr->piod_op == ptrace_piod_write_i) { 35981418a27Smrg POST_READ(addr->piod_addr, addr->piod_len); 36081418a27Smrg } 36181418a27Smrg if (addr->piod_op == ptrace_piod_read_d || 36281418a27Smrg addr->piod_op == ptrace_piod_read_i || 36381418a27Smrg addr->piod_op == ptrace_piod_read_auxv) { 36481418a27Smrg POST_WRITE(addr->piod_addr, addr->piod_len); 36581418a27Smrg } 36681418a27Smrg } else if (req_ == ptrace_pt_lwpinfo) { 36781418a27Smrg struct __sanitizer_ptrace_lwpinfo *addr = 36881418a27Smrg (struct __sanitizer_ptrace_lwpinfo *)addr_; 36981418a27Smrg POST_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t)); 37081418a27Smrg POST_WRITE(addr, struct_ptrace_ptrace_lwpinfo_struct_sz); 37181418a27Smrg } else if (req_ == ptrace_pt_set_event_mask) { 37281418a27Smrg POST_READ(addr_, struct_ptrace_ptrace_event_struct_sz); 37381418a27Smrg } else if (req_ == ptrace_pt_get_event_mask) { 37481418a27Smrg POST_WRITE(addr_, struct_ptrace_ptrace_event_struct_sz); 37581418a27Smrg } else if (req_ == ptrace_pt_set_siginfo) { 37681418a27Smrg POST_READ(addr_, struct_ptrace_ptrace_siginfo_struct_sz); 37781418a27Smrg } else if (req_ == ptrace_pt_get_siginfo) { 37881418a27Smrg POST_WRITE(addr_, struct_ptrace_ptrace_siginfo_struct_sz); 3797bb5462dSkamil } else if (req_ == ptrace_pt_lwpstatus) { 3807bb5462dSkamil struct __sanitizer_ptrace_lwpstatus *addr = 3817bb5462dSkamil (struct __sanitizer_ptrace_lwpstatus *)addr_; 3827bb5462dSkamil POST_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t)); 3837bb5462dSkamil POST_WRITE(addr, struct_ptrace_ptrace_lwpstatus_struct_sz); 3847bb5462dSkamil } else if (req_ == ptrace_pt_lwpnext) { 3857bb5462dSkamil struct __sanitizer_ptrace_lwpstatus *addr = 3867bb5462dSkamil (struct __sanitizer_ptrace_lwpstatus *)addr_; 3877bb5462dSkamil POST_READ(&addr->pl_lwpid, sizeof(__sanitizer_lwpid_t)); 3887bb5462dSkamil POST_WRITE(addr, struct_ptrace_ptrace_lwpstatus_struct_sz); 38981418a27Smrg } else if (req_ == ptrace_pt_setregs) { 39081418a27Smrg POST_READ(addr_, struct_ptrace_reg_struct_sz); 39181418a27Smrg } else if (req_ == ptrace_pt_getregs) { 39281418a27Smrg POST_WRITE(addr_, struct_ptrace_reg_struct_sz); 39381418a27Smrg } else if (req_ == ptrace_pt_setfpregs) { 39481418a27Smrg POST_READ(addr_, struct_ptrace_fpreg_struct_sz); 39581418a27Smrg } else if (req_ == ptrace_pt_getfpregs) { 39681418a27Smrg POST_WRITE(addr_, struct_ptrace_fpreg_struct_sz); 39781418a27Smrg } else if (req_ == ptrace_pt_setdbregs) { 39881418a27Smrg POST_READ(addr_, struct_ptrace_dbreg_struct_sz); 39981418a27Smrg } else if (req_ == ptrace_pt_getdbregs) { 40081418a27Smrg POST_WRITE(addr_, struct_ptrace_dbreg_struct_sz); 40181418a27Smrg } 40281418a27Smrg } 40381418a27Smrg} 40481418a27SmrgPRE_SYSCALL(recvmsg)(long long s_, void *msg_, long long flags_) { 40581418a27Smrg PRE_WRITE(msg_, sizeof(__sanitizer_msghdr)); 40681418a27Smrg} 40781418a27SmrgPOST_SYSCALL(recvmsg) 40881418a27Smrg(long long res, long long s_, void *msg_, long long flags_) { 40981418a27Smrg if (res > 0) { 41081418a27Smrg POST_WRITE(msg_, sizeof(__sanitizer_msghdr)); 41181418a27Smrg } 41281418a27Smrg} 41381418a27SmrgPRE_SYSCALL(sendmsg)(long long s_, void *msg_, long long flags_) { 41481418a27Smrg PRE_READ(msg_, sizeof(__sanitizer_msghdr)); 41581418a27Smrg} 41681418a27SmrgPOST_SYSCALL(sendmsg) 41781418a27Smrg(long long res, long long s_, void *msg_, long long flags_) { 41881418a27Smrg if (res > 0) { 41981418a27Smrg POST_READ(msg_, sizeof(__sanitizer_msghdr)); 42081418a27Smrg } 42181418a27Smrg} 42281418a27SmrgPRE_SYSCALL(recvfrom) 42381418a27Smrg(long long s_, void *buf_, long long len_, long long flags_, void *from_, 42481418a27Smrg void *fromlenaddr_) { 42581418a27Smrg PRE_WRITE(buf_, len_); 42681418a27Smrg PRE_WRITE(from_, struct_sockaddr_sz); 42781418a27Smrg PRE_WRITE(fromlenaddr_, sizeof(__sanitizer_socklen_t)); 42881418a27Smrg} 42981418a27SmrgPOST_SYSCALL(recvfrom) 43081418a27Smrg(long long res, long long s_, void *buf_, long long len_, long long flags_, 43181418a27Smrg void *from_, void *fromlenaddr_) { 43281418a27Smrg if (res >= 0) { 43381418a27Smrg POST_WRITE(buf_, res); 43481418a27Smrg POST_WRITE(from_, struct_sockaddr_sz); 43581418a27Smrg POST_WRITE(fromlenaddr_, sizeof(__sanitizer_socklen_t)); 43681418a27Smrg } 43781418a27Smrg} 43881418a27SmrgPRE_SYSCALL(accept)(long long s_, void *name_, void *anamelen_) { 43981418a27Smrg PRE_WRITE(name_, struct_sockaddr_sz); 44081418a27Smrg PRE_WRITE(anamelen_, sizeof(__sanitizer_socklen_t)); 44181418a27Smrg} 44281418a27SmrgPOST_SYSCALL(accept) 44381418a27Smrg(long long res, long long s_, void *name_, void *anamelen_) { 44481418a27Smrg if (res == 0) { 44581418a27Smrg POST_WRITE(name_, struct_sockaddr_sz); 44681418a27Smrg POST_WRITE(anamelen_, sizeof(__sanitizer_socklen_t)); 44781418a27Smrg } 44881418a27Smrg} 44981418a27SmrgPRE_SYSCALL(getpeername)(long long fdes_, void *asa_, void *alen_) { 45081418a27Smrg PRE_WRITE(asa_, struct_sockaddr_sz); 45181418a27Smrg PRE_WRITE(alen_, sizeof(__sanitizer_socklen_t)); 45281418a27Smrg} 45381418a27SmrgPOST_SYSCALL(getpeername) 45481418a27Smrg(long long res, long long fdes_, void *asa_, void *alen_) { 45581418a27Smrg if (res == 0) { 45681418a27Smrg POST_WRITE(asa_, struct_sockaddr_sz); 45781418a27Smrg POST_WRITE(alen_, sizeof(__sanitizer_socklen_t)); 45881418a27Smrg } 45981418a27Smrg} 46081418a27SmrgPRE_SYSCALL(getsockname)(long long fdes_, void *asa_, void *alen_) { 46181418a27Smrg PRE_WRITE(asa_, struct_sockaddr_sz); 46281418a27Smrg PRE_WRITE(alen_, sizeof(__sanitizer_socklen_t)); 46381418a27Smrg} 46481418a27SmrgPOST_SYSCALL(getsockname) 46581418a27Smrg(long long res, long long fdes_, void *asa_, void *alen_) { 46681418a27Smrg if (res == 0) { 46781418a27Smrg POST_WRITE(asa_, struct_sockaddr_sz); 46881418a27Smrg POST_WRITE(alen_, sizeof(__sanitizer_socklen_t)); 46981418a27Smrg } 47081418a27Smrg} 47181418a27SmrgPRE_SYSCALL(access)(void *path_, long long flags_) { 47281418a27Smrg const char *path = (const char *)path_; 47381418a27Smrg if (path) { 47481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 47581418a27Smrg } 47681418a27Smrg} 47781418a27SmrgPOST_SYSCALL(access)(long long res, void *path_, long long flags_) { 47881418a27Smrg if (res == 0) { 47981418a27Smrg const char *path = (const char *)path_; 48081418a27Smrg if (path) { 48181418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 48281418a27Smrg } 48381418a27Smrg } 48481418a27Smrg} 48581418a27SmrgPRE_SYSCALL(chflags)(void *path_, long long flags_) { 48681418a27Smrg const char *path = (const char *)path_; 48781418a27Smrg if (path) { 48881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 48981418a27Smrg } 49081418a27Smrg} 49181418a27SmrgPOST_SYSCALL(chflags)(long long res, void *path_, long long flags_) { 49281418a27Smrg if (res == 0) { 49381418a27Smrg const char *path = (const char *)path_; 49481418a27Smrg if (path) { 49581418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 49681418a27Smrg } 49781418a27Smrg } 49881418a27Smrg} 49981418a27SmrgPRE_SYSCALL(fchflags)(long long fd_, long long flags_) { /* Nothing to do */ } 50081418a27SmrgPOST_SYSCALL(fchflags)(long long res, long long fd_, long long flags_) { 50181418a27Smrg /* Nothing to do */ 50281418a27Smrg} 50381418a27SmrgPRE_SYSCALL(sync)(void) { /* Nothing to do */ } 50481418a27SmrgPOST_SYSCALL(sync)(long long res) { /* Nothing to do */ } 50581418a27SmrgPRE_SYSCALL(kill)(long long pid_, long long signum_) { /* Nothing to do */ } 50681418a27SmrgPOST_SYSCALL(kill)(long long res, long long pid_, long long signum_) { 50781418a27Smrg /* Nothing to do */ 50881418a27Smrg} 50981418a27SmrgPRE_SYSCALL(compat_43_stat43)(void *path_, void *ub_) { /* TODO */ } 51081418a27SmrgPOST_SYSCALL(compat_43_stat43)(long long res, void *path_, void *ub_) { 51181418a27Smrg /* TODO */ 51281418a27Smrg} 51381418a27SmrgPRE_SYSCALL(getppid)(void) { /* Nothing to do */ } 51481418a27SmrgPOST_SYSCALL(getppid)(long long res) { /* Nothing to do */ } 51581418a27SmrgPRE_SYSCALL(compat_43_lstat43)(void *path_, void *ub_) { /* TODO */ } 51681418a27SmrgPOST_SYSCALL(compat_43_lstat43)(long long res, void *path_, void *ub_) { 51781418a27Smrg /* TODO */ 51881418a27Smrg} 51981418a27SmrgPRE_SYSCALL(dup)(long long fd_) { /* Nothing to do */ } 52081418a27SmrgPOST_SYSCALL(dup)(long long res, long long fd_) { /* Nothing to do */ } 52181418a27SmrgPRE_SYSCALL(pipe)(void) { 52281418a27Smrg /* pipe returns two descriptors through two returned values */ 52381418a27Smrg} 52481418a27SmrgPOST_SYSCALL(pipe)(long long res) { 52581418a27Smrg /* pipe returns two descriptors through two returned values */ 52681418a27Smrg} 52781418a27SmrgPRE_SYSCALL(getegid)(void) { /* Nothing to do */ } 52881418a27SmrgPOST_SYSCALL(getegid)(long long res) { /* Nothing to do */ } 52981418a27SmrgPRE_SYSCALL(profil) 53081418a27Smrg(void *samples_, long long size_, long long offset_, long long scale_) { 53181418a27Smrg if (samples_) { 53281418a27Smrg PRE_WRITE(samples_, size_); 53381418a27Smrg } 53481418a27Smrg} 53581418a27SmrgPOST_SYSCALL(profil) 53681418a27Smrg(long long res, void *samples_, long long size_, long long offset_, 53781418a27Smrg long long scale_) { 53881418a27Smrg if (res == 0) { 53981418a27Smrg if (samples_) { 54081418a27Smrg POST_WRITE(samples_, size_); 54181418a27Smrg } 54281418a27Smrg } 54381418a27Smrg} 54481418a27SmrgPRE_SYSCALL(ktrace) 54581418a27Smrg(void *fname_, long long ops_, long long facs_, long long pid_) { 54681418a27Smrg const char *fname = (const char *)fname_; 54781418a27Smrg if (fname) { 54881418a27Smrg PRE_READ(fname, __sanitizer::internal_strlen(fname) + 1); 54981418a27Smrg } 55081418a27Smrg} 55181418a27SmrgPOST_SYSCALL(ktrace) 55281418a27Smrg(long long res, void *fname_, long long ops_, long long facs_, long long pid_) { 55381418a27Smrg const char *fname = (const char *)fname_; 55481418a27Smrg if (res == 0) { 55581418a27Smrg if (fname) { 55681418a27Smrg POST_READ(fname, __sanitizer::internal_strlen(fname) + 1); 55781418a27Smrg } 55881418a27Smrg } 55981418a27Smrg} 56081418a27SmrgPRE_SYSCALL(compat_13_sigaction13)(long long signum_, void *nsa_, void *osa_) { 56181418a27Smrg /* TODO */ 56281418a27Smrg} 56381418a27SmrgPOST_SYSCALL(compat_13_sigaction13) 56481418a27Smrg(long long res, long long signum_, void *nsa_, void *osa_) { 56581418a27Smrg /* TODO */ 56681418a27Smrg} 56781418a27SmrgPRE_SYSCALL(getgid)(void) { /* Nothing to do */ } 56881418a27SmrgPOST_SYSCALL(getgid)(long long res) { /* Nothing to do */ } 56981418a27SmrgPRE_SYSCALL(compat_13_sigprocmask13)(long long how_, long long mask_) { 57081418a27Smrg /* TODO */ 57181418a27Smrg} 57281418a27SmrgPOST_SYSCALL(compat_13_sigprocmask13) 57381418a27Smrg(long long res, long long how_, long long mask_) { 57481418a27Smrg /* TODO */ 57581418a27Smrg} 57681418a27SmrgPRE_SYSCALL(__getlogin)(void *namebuf_, long long namelen_) { 57781418a27Smrg if (namebuf_) { 57881418a27Smrg PRE_WRITE(namebuf_, namelen_); 57981418a27Smrg } 58081418a27Smrg} 58181418a27SmrgPOST_SYSCALL(__getlogin)(long long res, void *namebuf_, long long namelen_) { 58281418a27Smrg if (res == 0) { 58381418a27Smrg if (namebuf_) { 58481418a27Smrg POST_WRITE(namebuf_, namelen_); 58581418a27Smrg } 58681418a27Smrg } 58781418a27Smrg} 58881418a27SmrgPRE_SYSCALL(__setlogin)(void *namebuf_) { 58981418a27Smrg const char *namebuf = (const char *)namebuf_; 59081418a27Smrg if (namebuf) { 59181418a27Smrg PRE_READ(namebuf, __sanitizer::internal_strlen(namebuf) + 1); 59281418a27Smrg } 59381418a27Smrg} 59481418a27SmrgPOST_SYSCALL(__setlogin)(long long res, void *namebuf_) { 59581418a27Smrg if (res == 0) { 59681418a27Smrg const char *namebuf = (const char *)namebuf_; 59781418a27Smrg if (namebuf) { 59881418a27Smrg POST_READ(namebuf, __sanitizer::internal_strlen(namebuf) + 1); 59981418a27Smrg } 60081418a27Smrg } 60181418a27Smrg} 60281418a27SmrgPRE_SYSCALL(acct)(void *path_) { 60381418a27Smrg const char *path = (const char *)path_; 60481418a27Smrg if (path) { 60581418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 60681418a27Smrg } 60781418a27Smrg} 60881418a27SmrgPOST_SYSCALL(acct)(long long res, void *path_) { 60981418a27Smrg if (res == 0) { 61081418a27Smrg const char *path = (const char *)path_; 61181418a27Smrg if (path) { 61281418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 61381418a27Smrg } 61481418a27Smrg } 61581418a27Smrg} 61681418a27SmrgPRE_SYSCALL(compat_13_sigpending13)(void) { /* TODO */ } 61781418a27SmrgPOST_SYSCALL(compat_13_sigpending13)(long long res) { /* TODO */ } 61881418a27SmrgPRE_SYSCALL(compat_13_sigaltstack13)(void *nss_, void *oss_) { /* TODO */ } 61981418a27SmrgPOST_SYSCALL(compat_13_sigaltstack13)(long long res, void *nss_, void *oss_) { 62081418a27Smrg /* TODO */ 62181418a27Smrg} 62281418a27SmrgPRE_SYSCALL(ioctl)(long long fd_, long long com_, void *data_) { 62381418a27Smrg /* Nothing to do */ 62481418a27Smrg} 62581418a27SmrgPOST_SYSCALL(ioctl)(long long res, long long fd_, long long com_, void *data_) { 62681418a27Smrg /* Nothing to do */ 62781418a27Smrg} 62881418a27SmrgPRE_SYSCALL(compat_12_oreboot)(long long opt_) { /* TODO */ } 62981418a27SmrgPOST_SYSCALL(compat_12_oreboot)(long long res, long long opt_) { /* TODO */ } 63081418a27SmrgPRE_SYSCALL(revoke)(void *path_) { 63181418a27Smrg const char *path = (const char *)path_; 63281418a27Smrg if (path) { 63381418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 63481418a27Smrg } 63581418a27Smrg} 63681418a27SmrgPOST_SYSCALL(revoke)(long long res, void *path_) { 63781418a27Smrg if (res == 0) { 63881418a27Smrg const char *path = (const char *)path_; 63981418a27Smrg if (path) { 64081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 64181418a27Smrg } 64281418a27Smrg } 64381418a27Smrg} 64481418a27SmrgPRE_SYSCALL(symlink)(void *path_, void *link_) { 64581418a27Smrg const char *path = (const char *)path_; 64681418a27Smrg const char *link = (const char *)link_; 64781418a27Smrg if (path) { 64881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 64981418a27Smrg } 65081418a27Smrg if (link) { 65181418a27Smrg PRE_READ(link, __sanitizer::internal_strlen(link) + 1); 65281418a27Smrg } 65381418a27Smrg} 65481418a27SmrgPOST_SYSCALL(symlink)(long long res, void *path_, void *link_) { 65581418a27Smrg if (res == 0) { 65681418a27Smrg const char *path = (const char *)path_; 65781418a27Smrg const char *link = (const char *)link_; 65881418a27Smrg if (path) { 65981418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 66081418a27Smrg } 66181418a27Smrg if (link) { 66281418a27Smrg POST_READ(link, __sanitizer::internal_strlen(link) + 1); 66381418a27Smrg } 66481418a27Smrg } 66581418a27Smrg} 66681418a27SmrgPRE_SYSCALL(readlink)(void *path_, void *buf_, long long count_) { 66781418a27Smrg const char *path = (const char *)path_; 66881418a27Smrg if (path) { 66981418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 67081418a27Smrg } 67181418a27Smrg if (buf_) { 67281418a27Smrg PRE_WRITE(buf_, count_); 67381418a27Smrg } 67481418a27Smrg} 67581418a27SmrgPOST_SYSCALL(readlink) 67681418a27Smrg(long long res, void *path_, void *buf_, long long count_) { 67781418a27Smrg if (res > 0) { 67881418a27Smrg const char *path = (const char *)path_; 67981418a27Smrg if (path) { 68081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 68181418a27Smrg } 68281418a27Smrg if (buf_) { 68381418a27Smrg PRE_WRITE(buf_, res); 68481418a27Smrg } 68581418a27Smrg } 68681418a27Smrg} 68781418a27SmrgPRE_SYSCALL(execve)(void *path_, void *argp_, void *envp_) { 68881418a27Smrg const char *path = (const char *)path_; 68981418a27Smrg char **argp = (char **)argp_; 69081418a27Smrg char **envp = (char **)envp_; 69181418a27Smrg if (path) { 69281418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 69381418a27Smrg } 69481418a27Smrg if (argp && argp[0]) { 69581418a27Smrg char *a = argp[0]; 69681418a27Smrg while (a++) { 69781418a27Smrg PRE_READ(a, __sanitizer::internal_strlen(a) + 1); 69881418a27Smrg } 69981418a27Smrg } 70081418a27Smrg if (envp && envp[0]) { 70181418a27Smrg char *e = envp[0]; 70281418a27Smrg while (e++) { 70381418a27Smrg PRE_READ(e, __sanitizer::internal_strlen(e) + 1); 70481418a27Smrg } 70581418a27Smrg } 70681418a27Smrg} 70781418a27SmrgPOST_SYSCALL(execve)(long long res, void *path_, void *argp_, void *envp_) { 70881418a27Smrg /* If we are here, something went wrong */ 70981418a27Smrg const char *path = (const char *)path_; 71081418a27Smrg char **argp = (char **)argp_; 71181418a27Smrg char **envp = (char **)envp_; 71281418a27Smrg if (path) { 71381418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 71481418a27Smrg } 71581418a27Smrg if (argp && argp[0]) { 71681418a27Smrg char *a = argp[0]; 71781418a27Smrg while (a++) { 71881418a27Smrg POST_READ(a, __sanitizer::internal_strlen(a) + 1); 71981418a27Smrg } 72081418a27Smrg } 72181418a27Smrg if (envp && envp[0]) { 72281418a27Smrg char *e = envp[0]; 72381418a27Smrg while (e++) { 72481418a27Smrg POST_READ(e, __sanitizer::internal_strlen(e) + 1); 72581418a27Smrg } 72681418a27Smrg } 72781418a27Smrg} 72881418a27SmrgPRE_SYSCALL(umask)(long long newmask_) { /* Nothing to do */ } 72981418a27SmrgPOST_SYSCALL(umask)(long long res, long long newmask_) { /* Nothing to do */ } 73081418a27SmrgPRE_SYSCALL(chroot)(void *path_) { 73181418a27Smrg const char *path = (const char *)path_; 73281418a27Smrg if (path) { 73381418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 73481418a27Smrg } 73581418a27Smrg} 73681418a27SmrgPOST_SYSCALL(chroot)(long long res, void *path_) { 73781418a27Smrg if (res == 0) { 73881418a27Smrg const char *path = (const char *)path_; 73981418a27Smrg if (path) { 74081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 74181418a27Smrg } 74281418a27Smrg } 74381418a27Smrg} 74481418a27SmrgPRE_SYSCALL(compat_43_fstat43)(long long fd_, void *sb_) { /* TODO */ } 74581418a27SmrgPOST_SYSCALL(compat_43_fstat43)(long long res, long long fd_, void *sb_) { 74681418a27Smrg /* TODO */ 74781418a27Smrg} 74881418a27SmrgPRE_SYSCALL(compat_43_ogetkerninfo) 74981418a27Smrg(long long op_, void *where_, void *size_, long long arg_) { 75081418a27Smrg /* TODO */ 75181418a27Smrg} 75281418a27SmrgPOST_SYSCALL(compat_43_ogetkerninfo) 75381418a27Smrg(long long res, long long op_, void *where_, void *size_, long long arg_) { 75481418a27Smrg /* TODO */ 75581418a27Smrg} 75681418a27SmrgPRE_SYSCALL(compat_43_ogetpagesize)(void) { /* TODO */ } 75781418a27SmrgPOST_SYSCALL(compat_43_ogetpagesize)(long long res) { /* TODO */ } 75881418a27SmrgPRE_SYSCALL(compat_12_msync)(void *addr_, long long len_) { /* TODO */ } 75981418a27SmrgPOST_SYSCALL(compat_12_msync)(long long res, void *addr_, long long len_) { 76081418a27Smrg /* TODO */ 76181418a27Smrg} 76281418a27SmrgPRE_SYSCALL(vfork)(void) { /* Nothing to do */ } 76381418a27SmrgPOST_SYSCALL(vfork)(long long res) { /* Nothing to do */ } 76481418a27Smrg/* syscall 67 has been skipped */ 76581418a27Smrg/* syscall 68 has been skipped */ 76681418a27Smrg/* syscall 69 has been skipped */ 76781418a27Smrg/* syscall 70 has been skipped */ 76881418a27SmrgPRE_SYSCALL(compat_43_ommap) 76981418a27Smrg(void *addr_, long long len_, long long prot_, long long flags_, long long fd_, 77081418a27Smrg long long pos_) { 77181418a27Smrg /* TODO */ 77281418a27Smrg} 77381418a27SmrgPOST_SYSCALL(compat_43_ommap) 77481418a27Smrg(long long res, void *addr_, long long len_, long long prot_, long long flags_, 77581418a27Smrg long long fd_, long long pos_) { 77681418a27Smrg /* TODO */ 77781418a27Smrg} 77881418a27SmrgPRE_SYSCALL(vadvise)(long long anom_) { /* Nothing to do */ } 77981418a27SmrgPOST_SYSCALL(vadvise)(long long res, long long anom_) { /* Nothing to do */ } 78081418a27SmrgPRE_SYSCALL(munmap)(void *addr_, long long len_) { /* Nothing to do */ } 78181418a27SmrgPOST_SYSCALL(munmap)(long long res, void *addr_, long long len_) { 78281418a27Smrg /* Nothing to do */ 78381418a27Smrg} 78481418a27SmrgPRE_SYSCALL(mprotect)(void *addr_, long long len_, long long prot_) { 78581418a27Smrg /* Nothing to do */ 78681418a27Smrg} 78781418a27SmrgPOST_SYSCALL(mprotect) 78881418a27Smrg(long long res, void *addr_, long long len_, long long prot_) { 78981418a27Smrg /* Nothing to do */ 79081418a27Smrg} 79181418a27SmrgPRE_SYSCALL(madvise)(void *addr_, long long len_, long long behav_) { 79281418a27Smrg /* Nothing to do */ 79381418a27Smrg} 79481418a27SmrgPOST_SYSCALL(madvise) 79581418a27Smrg(long long res, void *addr_, long long len_, long long behav_) { 79681418a27Smrg /* Nothing to do */ 79781418a27Smrg} 79881418a27Smrg/* syscall 76 has been skipped */ 79981418a27Smrg/* syscall 77 has been skipped */ 80081418a27SmrgPRE_SYSCALL(mincore)(void *addr_, long long len_, void *vec_) { 80181418a27Smrg /* Nothing to do */ 80281418a27Smrg} 80381418a27SmrgPOST_SYSCALL(mincore)(long long res, void *addr_, long long len_, void *vec_) { 80481418a27Smrg /* Nothing to do */ 80581418a27Smrg} 80681418a27SmrgPRE_SYSCALL(getgroups)(long long gidsetsize_, void *gidset_) { 80781418a27Smrg unsigned int *gidset = (unsigned int *)gidset_; 80881418a27Smrg if (gidset) { 80981418a27Smrg PRE_WRITE(gidset, sizeof(*gidset) * gidsetsize_); 81081418a27Smrg } 81181418a27Smrg} 81281418a27SmrgPOST_SYSCALL(getgroups)(long long res, long long gidsetsize_, void *gidset_) { 81381418a27Smrg if (res == 0) { 81481418a27Smrg unsigned int *gidset = (unsigned int *)gidset_; 81581418a27Smrg if (gidset) { 81681418a27Smrg POST_WRITE(gidset, sizeof(*gidset) * gidsetsize_); 81781418a27Smrg } 81881418a27Smrg } 81981418a27Smrg} 82081418a27SmrgPRE_SYSCALL(setgroups)(long long gidsetsize_, void *gidset_) { 82181418a27Smrg unsigned int *gidset = (unsigned int *)gidset_; 82281418a27Smrg if (gidset) { 82381418a27Smrg PRE_READ(gidset, sizeof(*gidset) * gidsetsize_); 82481418a27Smrg } 82581418a27Smrg} 82681418a27SmrgPOST_SYSCALL(setgroups)(long long res, long long gidsetsize_, void *gidset_) { 82781418a27Smrg if (res == 0) { 82881418a27Smrg unsigned int *gidset = (unsigned int *)gidset_; 82981418a27Smrg if (gidset) { 83081418a27Smrg POST_READ(gidset, sizeof(*gidset) * gidsetsize_); 83181418a27Smrg } 83281418a27Smrg } 83381418a27Smrg} 83481418a27SmrgPRE_SYSCALL(getpgrp)(void) { /* Nothing to do */ } 83581418a27SmrgPOST_SYSCALL(getpgrp)(long long res) { /* Nothing to do */ } 83681418a27SmrgPRE_SYSCALL(setpgid)(long long pid_, long long pgid_) { /* Nothing to do */ } 83781418a27SmrgPOST_SYSCALL(setpgid)(long long res, long long pid_, long long pgid_) { 83881418a27Smrg /* Nothing to do */ 83981418a27Smrg} 84081418a27SmrgPRE_SYSCALL(compat_50_setitimer)(long long which_, void *itv_, void *oitv_) { 84181418a27Smrg /* TODO */ 84281418a27Smrg} 84381418a27SmrgPOST_SYSCALL(compat_50_setitimer) 84481418a27Smrg(long long res, long long which_, void *itv_, void *oitv_) { 84581418a27Smrg /* TODO */ 84681418a27Smrg} 84781418a27SmrgPRE_SYSCALL(compat_43_owait)(void) { /* TODO */ } 84881418a27SmrgPOST_SYSCALL(compat_43_owait)(long long res) { /* TODO */ } 84981418a27SmrgPRE_SYSCALL(compat_12_oswapon)(void *name_) { /* TODO */ } 85081418a27SmrgPOST_SYSCALL(compat_12_oswapon)(long long res, void *name_) { /* TODO */ } 85181418a27SmrgPRE_SYSCALL(compat_50_getitimer)(long long which_, void *itv_) { /* TODO */ } 85281418a27SmrgPOST_SYSCALL(compat_50_getitimer)(long long res, long long which_, void *itv_) { 85381418a27Smrg /* TODO */ 85481418a27Smrg} 85581418a27SmrgPRE_SYSCALL(compat_43_ogethostname)(void *hostname_, long long len_) { 85681418a27Smrg /* TODO */ 85781418a27Smrg} 85881418a27SmrgPOST_SYSCALL(compat_43_ogethostname) 85981418a27Smrg(long long res, void *hostname_, long long len_) { 86081418a27Smrg /* TODO */ 86181418a27Smrg} 86281418a27SmrgPRE_SYSCALL(compat_43_osethostname)(void *hostname_, long long len_) { 86381418a27Smrg /* TODO */ 86481418a27Smrg} 86581418a27SmrgPOST_SYSCALL(compat_43_osethostname) 86681418a27Smrg(long long res, void *hostname_, long long len_) { 86781418a27Smrg /* TODO */ 86881418a27Smrg} 86981418a27SmrgPRE_SYSCALL(compat_43_ogetdtablesize)(void) { /* TODO */ } 87081418a27SmrgPOST_SYSCALL(compat_43_ogetdtablesize)(long long res) { /* TODO */ } 87181418a27SmrgPRE_SYSCALL(dup2)(long long from_, long long to_) { /* Nothing to do */ } 87281418a27SmrgPOST_SYSCALL(dup2)(long long res, long long from_, long long to_) { 87381418a27Smrg /* Nothing to do */ 87481418a27Smrg} 8757bb5462dSkamilPRE_SYSCALL(getrandom)(void *buf_, long long buflen_, long long flags_) { 8767bb5462dSkamil /* TODO */ 8777bb5462dSkamil} 8787bb5462dSkamilPOST_SYSCALL(getrandom) 8797bb5462dSkamil(long long res, void *buf_, long long buflen_, long long flags_) { 8807bb5462dSkamil /* TODO */ 8817bb5462dSkamil} 88281418a27SmrgPRE_SYSCALL(fcntl)(long long fd_, long long cmd_, void *arg_) { 88381418a27Smrg /* Nothing to do */ 88481418a27Smrg} 88581418a27SmrgPOST_SYSCALL(fcntl)(long long res, long long fd_, long long cmd_, void *arg_) { 88681418a27Smrg /* Nothing to do */ 88781418a27Smrg} 88881418a27SmrgPRE_SYSCALL(compat_50_select) 88981418a27Smrg(long long nd_, void *in_, void *ou_, void *ex_, void *tv_) { 89081418a27Smrg /* TODO */ 89181418a27Smrg} 89281418a27SmrgPOST_SYSCALL(compat_50_select) 89381418a27Smrg(long long res, long long nd_, void *in_, void *ou_, void *ex_, void *tv_) { 89481418a27Smrg /* TODO */ 89581418a27Smrg} 89681418a27Smrg/* syscall 94 has been skipped */ 89781418a27SmrgPRE_SYSCALL(fsync)(long long fd_) { /* Nothing to do */ } 89881418a27SmrgPOST_SYSCALL(fsync)(long long res, long long fd_) { /* Nothing to do */ } 89981418a27SmrgPRE_SYSCALL(setpriority)(long long which_, long long who_, long long prio_) { 90081418a27Smrg /* Nothing to do */ 90181418a27Smrg} 90281418a27SmrgPOST_SYSCALL(setpriority) 90381418a27Smrg(long long res, long long which_, long long who_, long long prio_) { 90481418a27Smrg /* Nothing to do */ 90581418a27Smrg} 90681418a27SmrgPRE_SYSCALL(compat_30_socket) 90781418a27Smrg(long long domain_, long long type_, long long protocol_) { 90881418a27Smrg /* TODO */ 90981418a27Smrg} 91081418a27SmrgPOST_SYSCALL(compat_30_socket) 91181418a27Smrg(long long res, long long domain_, long long type_, long long protocol_) { 91281418a27Smrg /* TODO */ 91381418a27Smrg} 91481418a27SmrgPRE_SYSCALL(connect)(long long s_, void *name_, long long namelen_) { 91581418a27Smrg PRE_READ(name_, namelen_); 91681418a27Smrg} 91781418a27SmrgPOST_SYSCALL(connect) 91881418a27Smrg(long long res, long long s_, void *name_, long long namelen_) { 91981418a27Smrg if (res == 0) { 92081418a27Smrg POST_READ(name_, namelen_); 92181418a27Smrg } 92281418a27Smrg} 92381418a27SmrgPRE_SYSCALL(compat_43_oaccept)(long long s_, void *name_, void *anamelen_) { 92481418a27Smrg /* TODO */ 92581418a27Smrg} 92681418a27SmrgPOST_SYSCALL(compat_43_oaccept) 92781418a27Smrg(long long res, long long s_, void *name_, void *anamelen_) { 92881418a27Smrg /* TODO */ 92981418a27Smrg} 93081418a27SmrgPRE_SYSCALL(getpriority)(long long which_, long long who_) { 93181418a27Smrg /* Nothing to do */ 93281418a27Smrg} 93381418a27SmrgPOST_SYSCALL(getpriority)(long long res, long long which_, long long who_) { 93481418a27Smrg /* Nothing to do */ 93581418a27Smrg} 93681418a27SmrgPRE_SYSCALL(compat_43_osend) 93781418a27Smrg(long long s_, void *buf_, long long len_, long long flags_) { 93881418a27Smrg /* TODO */ 93981418a27Smrg} 94081418a27SmrgPOST_SYSCALL(compat_43_osend) 94181418a27Smrg(long long res, long long s_, void *buf_, long long len_, long long flags_) { 94281418a27Smrg /* TODO */ 94381418a27Smrg} 94481418a27SmrgPRE_SYSCALL(compat_43_orecv) 94581418a27Smrg(long long s_, void *buf_, long long len_, long long flags_) { 94681418a27Smrg /* TODO */ 94781418a27Smrg} 94881418a27SmrgPOST_SYSCALL(compat_43_orecv) 94981418a27Smrg(long long res, long long s_, void *buf_, long long len_, long long flags_) { 95081418a27Smrg /* TODO */ 95181418a27Smrg} 95281418a27SmrgPRE_SYSCALL(compat_13_sigreturn13)(void *sigcntxp_) { /* TODO */ } 95381418a27SmrgPOST_SYSCALL(compat_13_sigreturn13)(long long res, void *sigcntxp_) { 95481418a27Smrg /* TODO */ 95581418a27Smrg} 95681418a27SmrgPRE_SYSCALL(bind)(long long s_, void *name_, long long namelen_) { 95781418a27Smrg PRE_READ(name_, namelen_); 95881418a27Smrg} 95981418a27SmrgPOST_SYSCALL(bind) 96081418a27Smrg(long long res, long long s_, void *name_, long long namelen_) { 96181418a27Smrg if (res == 0) { 96281418a27Smrg PRE_READ(name_, namelen_); 96381418a27Smrg } 96481418a27Smrg} 96581418a27SmrgPRE_SYSCALL(setsockopt) 96681418a27Smrg(long long s_, long long level_, long long name_, void *val_, 96781418a27Smrg long long valsize_) { 96881418a27Smrg if (val_) { 96981418a27Smrg PRE_READ(val_, valsize_); 97081418a27Smrg } 97181418a27Smrg} 97281418a27SmrgPOST_SYSCALL(setsockopt) 97381418a27Smrg(long long res, long long s_, long long level_, long long name_, void *val_, 97481418a27Smrg long long valsize_) { 97581418a27Smrg if (res == 0) { 97681418a27Smrg if (val_) { 97781418a27Smrg POST_READ(val_, valsize_); 97881418a27Smrg } 97981418a27Smrg } 98081418a27Smrg} 98181418a27SmrgPRE_SYSCALL(listen)(long long s_, long long backlog_) { /* Nothing to do */ } 98281418a27SmrgPOST_SYSCALL(listen)(long long res, long long s_, long long backlog_) { 98381418a27Smrg /* Nothing to do */ 98481418a27Smrg} 98581418a27Smrg/* syscall 107 has been skipped */ 98681418a27SmrgPRE_SYSCALL(compat_43_osigvec)(long long signum_, void *nsv_, void *osv_) { 98781418a27Smrg /* TODO */ 98881418a27Smrg} 98981418a27SmrgPOST_SYSCALL(compat_43_osigvec) 99081418a27Smrg(long long res, long long signum_, void *nsv_, void *osv_) { 99181418a27Smrg /* TODO */ 99281418a27Smrg} 99381418a27SmrgPRE_SYSCALL(compat_43_osigblock)(long long mask_) { /* TODO */ } 99481418a27SmrgPOST_SYSCALL(compat_43_osigblock)(long long res, long long mask_) { /* TODO */ } 99581418a27SmrgPRE_SYSCALL(compat_43_osigsetmask)(long long mask_) { /* TODO */ } 99681418a27SmrgPOST_SYSCALL(compat_43_osigsetmask)(long long res, long long mask_) { 99781418a27Smrg /* TODO */ 99881418a27Smrg} 99981418a27SmrgPRE_SYSCALL(compat_13_sigsuspend13)(long long mask_) { /* TODO */ } 100081418a27SmrgPOST_SYSCALL(compat_13_sigsuspend13)(long long res, long long mask_) { 100181418a27Smrg /* TODO */ 100281418a27Smrg} 100381418a27SmrgPRE_SYSCALL(compat_43_osigstack)(void *nss_, void *oss_) { /* TODO */ } 100481418a27SmrgPOST_SYSCALL(compat_43_osigstack)(long long res, void *nss_, void *oss_) { 100581418a27Smrg /* TODO */ 100681418a27Smrg} 100781418a27SmrgPRE_SYSCALL(compat_43_orecvmsg)(long long s_, void *msg_, long long flags_) { 100881418a27Smrg /* TODO */ 100981418a27Smrg} 101081418a27SmrgPOST_SYSCALL(compat_43_orecvmsg) 101181418a27Smrg(long long res, long long s_, void *msg_, long long flags_) { 101281418a27Smrg /* TODO */ 101381418a27Smrg} 101481418a27SmrgPRE_SYSCALL(compat_43_osendmsg)(long long s_, void *msg_, long long flags_) { 101581418a27Smrg /* TODO */ 101681418a27Smrg} 101781418a27SmrgPOST_SYSCALL(compat_43_osendmsg) 101881418a27Smrg(long long res, long long s_, void *msg_, long long flags_) { 101981418a27Smrg /* TODO */ 102081418a27Smrg} 102181418a27Smrg/* syscall 115 has been skipped */ 102281418a27SmrgPRE_SYSCALL(compat_50_gettimeofday)(void *tp_, void *tzp_) { /* TODO */ } 102381418a27SmrgPOST_SYSCALL(compat_50_gettimeofday)(long long res, void *tp_, void *tzp_) { 102481418a27Smrg /* TODO */ 102581418a27Smrg} 102681418a27SmrgPRE_SYSCALL(compat_50_getrusage)(long long who_, void *rusage_) { /* TODO */ } 102781418a27SmrgPOST_SYSCALL(compat_50_getrusage) 102881418a27Smrg(long long res, long long who_, void *rusage_) { 102981418a27Smrg /* TODO */ 103081418a27Smrg} 103181418a27SmrgPRE_SYSCALL(getsockopt) 103281418a27Smrg(long long s_, long long level_, long long name_, void *val_, void *avalsize_) { 103381418a27Smrg /* TODO */ 103481418a27Smrg} 103581418a27SmrgPOST_SYSCALL(getsockopt) 103681418a27Smrg(long long res, long long s_, long long level_, long long name_, void *val_, 103781418a27Smrg void *avalsize_) { 103881418a27Smrg /* TODO */ 103981418a27Smrg} 104081418a27Smrg/* syscall 119 has been skipped */ 104181418a27SmrgPRE_SYSCALL(readv)(long long fd_, void *iovp_, long long iovcnt_) { 104281418a27Smrg struct __sanitizer_iovec *iovp = (struct __sanitizer_iovec *)iovp_; 104381418a27Smrg int i; 104481418a27Smrg if (iovp) { 104581418a27Smrg PRE_READ(iovp, sizeof(struct __sanitizer_iovec) * iovcnt_); 104681418a27Smrg for (i = 0; i < iovcnt_; i++) { 104781418a27Smrg PRE_WRITE(iovp[i].iov_base, iovp[i].iov_len); 104881418a27Smrg } 104981418a27Smrg } 105081418a27Smrg} 105181418a27SmrgPOST_SYSCALL(readv) 105281418a27Smrg(long long res, long long fd_, void *iovp_, long long iovcnt_) { 105381418a27Smrg struct __sanitizer_iovec *iovp = (struct __sanitizer_iovec *)iovp_; 105481418a27Smrg int i; 105581418a27Smrg uptr m, n = res; 105681418a27Smrg if (res > 0) { 105781418a27Smrg if (iovp) { 105881418a27Smrg POST_READ(iovp, sizeof(struct __sanitizer_iovec) * iovcnt_); 105981418a27Smrg for (i = 0; i < iovcnt_ && n > 0; i++) { 106081418a27Smrg m = n > iovp[i].iov_len ? iovp[i].iov_len : n; 106181418a27Smrg POST_WRITE(iovp[i].iov_base, m); 106281418a27Smrg n -= m; 106381418a27Smrg } 106481418a27Smrg } 106581418a27Smrg } 106681418a27Smrg} 106781418a27SmrgPRE_SYSCALL(writev)(long long fd_, void *iovp_, long long iovcnt_) { 106881418a27Smrg struct __sanitizer_iovec *iovp = (struct __sanitizer_iovec *)iovp_; 106981418a27Smrg int i; 107081418a27Smrg if (iovp) { 107181418a27Smrg PRE_READ(iovp, sizeof(struct __sanitizer_iovec) * iovcnt_); 107281418a27Smrg for (i = 0; i < iovcnt_; i++) { 107381418a27Smrg PRE_READ(iovp[i].iov_base, iovp[i].iov_len); 107481418a27Smrg } 107581418a27Smrg } 107681418a27Smrg} 107781418a27SmrgPOST_SYSCALL(writev) 107881418a27Smrg(long long res, long long fd_, void *iovp_, long long iovcnt_) { 107981418a27Smrg struct __sanitizer_iovec *iovp = (struct __sanitizer_iovec *)iovp_; 108081418a27Smrg int i; 108181418a27Smrg uptr m, n = res; 108281418a27Smrg if (res > 0) { 108381418a27Smrg if (iovp) { 108481418a27Smrg POST_READ(iovp, sizeof(struct __sanitizer_iovec) * iovcnt_); 108581418a27Smrg for (i = 0; i < iovcnt_ && n > 0; i++) { 108681418a27Smrg m = n > iovp[i].iov_len ? iovp[i].iov_len : n; 108781418a27Smrg POST_READ(iovp[i].iov_base, m); 108881418a27Smrg n -= m; 108981418a27Smrg } 109081418a27Smrg } 109181418a27Smrg } 109281418a27Smrg} 109381418a27SmrgPRE_SYSCALL(compat_50_settimeofday)(void *tv_, void *tzp_) { /* TODO */ } 109481418a27SmrgPOST_SYSCALL(compat_50_settimeofday)(long long res, void *tv_, void *tzp_) { 109581418a27Smrg /* TODO */ 109681418a27Smrg} 109781418a27SmrgPRE_SYSCALL(fchown)(long long fd_, long long uid_, long long gid_) { 109881418a27Smrg /* Nothing to do */ 109981418a27Smrg} 110081418a27SmrgPOST_SYSCALL(fchown) 110181418a27Smrg(long long res, long long fd_, long long uid_, long long gid_) { 110281418a27Smrg /* Nothing to do */ 110381418a27Smrg} 110481418a27SmrgPRE_SYSCALL(fchmod)(long long fd_, long long mode_) { /* Nothing to do */ } 110581418a27SmrgPOST_SYSCALL(fchmod)(long long res, long long fd_, long long mode_) { 110681418a27Smrg /* Nothing to do */ 110781418a27Smrg} 110881418a27SmrgPRE_SYSCALL(compat_43_orecvfrom) 110981418a27Smrg(long long s_, void *buf_, long long len_, long long flags_, void *from_, 111081418a27Smrg void *fromlenaddr_) { 111181418a27Smrg /* TODO */ 111281418a27Smrg} 111381418a27SmrgPOST_SYSCALL(compat_43_orecvfrom) 111481418a27Smrg(long long res, long long s_, void *buf_, long long len_, long long flags_, 111581418a27Smrg void *from_, void *fromlenaddr_) { 111681418a27Smrg /* TODO */ 111781418a27Smrg} 111881418a27SmrgPRE_SYSCALL(setreuid)(long long ruid_, long long euid_) { /* Nothing to do */ } 111981418a27SmrgPOST_SYSCALL(setreuid)(long long res, long long ruid_, long long euid_) { 112081418a27Smrg /* Nothing to do */ 112181418a27Smrg} 112281418a27SmrgPRE_SYSCALL(setregid)(long long rgid_, long long egid_) { /* Nothing to do */ } 112381418a27SmrgPOST_SYSCALL(setregid)(long long res, long long rgid_, long long egid_) { 112481418a27Smrg /* Nothing to do */ 112581418a27Smrg} 112681418a27SmrgPRE_SYSCALL(rename)(void *from_, void *to_) { 112781418a27Smrg const char *from = (const char *)from_; 112881418a27Smrg const char *to = (const char *)to_; 112981418a27Smrg if (from) { 113081418a27Smrg PRE_READ(from, __sanitizer::internal_strlen(from) + 1); 113181418a27Smrg } 113281418a27Smrg if (to) { 113381418a27Smrg PRE_READ(to, __sanitizer::internal_strlen(to) + 1); 113481418a27Smrg } 113581418a27Smrg} 113681418a27SmrgPOST_SYSCALL(rename)(long long res, void *from_, void *to_) { 113781418a27Smrg if (res == 0) { 113881418a27Smrg const char *from = (const char *)from_; 113981418a27Smrg const char *to = (const char *)to_; 114081418a27Smrg if (from) { 114181418a27Smrg POST_READ(from, __sanitizer::internal_strlen(from) + 1); 114281418a27Smrg } 114381418a27Smrg if (to) { 114481418a27Smrg POST_READ(to, __sanitizer::internal_strlen(to) + 1); 114581418a27Smrg } 114681418a27Smrg } 114781418a27Smrg} 114881418a27SmrgPRE_SYSCALL(compat_43_otruncate)(void *path_, long long length_) { /* TODO */ } 114981418a27SmrgPOST_SYSCALL(compat_43_otruncate) 115081418a27Smrg(long long res, void *path_, long long length_) { 115181418a27Smrg /* TODO */ 115281418a27Smrg} 115381418a27SmrgPRE_SYSCALL(compat_43_oftruncate)(long long fd_, long long length_) { 115481418a27Smrg /* TODO */ 115581418a27Smrg} 115681418a27SmrgPOST_SYSCALL(compat_43_oftruncate) 115781418a27Smrg(long long res, long long fd_, long long length_) { 115881418a27Smrg /* TODO */ 115981418a27Smrg} 116081418a27SmrgPRE_SYSCALL(flock)(long long fd_, long long how_) { /* Nothing to do */ } 116181418a27SmrgPOST_SYSCALL(flock)(long long res, long long fd_, long long how_) { 116281418a27Smrg /* Nothing to do */ 116381418a27Smrg} 116481418a27SmrgPRE_SYSCALL(mkfifo)(void *path_, long long mode_) { 116581418a27Smrg const char *path = (const char *)path_; 116681418a27Smrg if (path) { 116781418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 116881418a27Smrg } 116981418a27Smrg} 117081418a27SmrgPOST_SYSCALL(mkfifo)(long long res, void *path_, long long mode_) { 117181418a27Smrg if (res == 0) { 117281418a27Smrg const char *path = (const char *)path_; 117381418a27Smrg if (path) { 117481418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 117581418a27Smrg } 117681418a27Smrg } 117781418a27Smrg} 117881418a27SmrgPRE_SYSCALL(sendto) 117981418a27Smrg(long long s_, void *buf_, long long len_, long long flags_, void *to_, 118081418a27Smrg long long tolen_) { 118181418a27Smrg PRE_READ(buf_, len_); 118281418a27Smrg PRE_READ(to_, tolen_); 118381418a27Smrg} 118481418a27SmrgPOST_SYSCALL(sendto) 118581418a27Smrg(long long res, long long s_, void *buf_, long long len_, long long flags_, 118681418a27Smrg void *to_, long long tolen_) { 118781418a27Smrg if (res >= 0) { 118881418a27Smrg POST_READ(buf_, len_); 118981418a27Smrg POST_READ(to_, tolen_); 119081418a27Smrg } 119181418a27Smrg} 119281418a27SmrgPRE_SYSCALL(shutdown)(long long s_, long long how_) { /* Nothing to do */ } 119381418a27SmrgPOST_SYSCALL(shutdown)(long long res, long long s_, long long how_) { 119481418a27Smrg /* Nothing to do */ 119581418a27Smrg} 119681418a27SmrgPRE_SYSCALL(socketpair) 119781418a27Smrg(long long domain_, long long type_, long long protocol_, void *rsv_) { 119881418a27Smrg PRE_WRITE(rsv_, 2 * sizeof(int)); 119981418a27Smrg} 120081418a27SmrgPOST_SYSCALL(socketpair) 120181418a27Smrg(long long res, long long domain_, long long type_, long long protocol_, 120281418a27Smrg void *rsv_) { 120381418a27Smrg if (res == 0) { 120481418a27Smrg POST_WRITE(rsv_, 2 * sizeof(int)); 120581418a27Smrg } 120681418a27Smrg} 120781418a27SmrgPRE_SYSCALL(mkdir)(void *path_, long long mode_) { 120881418a27Smrg const char *path = (const char *)path_; 120981418a27Smrg if (path) { 121081418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 121181418a27Smrg } 121281418a27Smrg} 121381418a27SmrgPOST_SYSCALL(mkdir)(long long res, void *path_, long long mode_) { 121481418a27Smrg if (res == 0) { 121581418a27Smrg const char *path = (const char *)path_; 121681418a27Smrg if (path) { 121781418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 121881418a27Smrg } 121981418a27Smrg } 122081418a27Smrg} 122181418a27SmrgPRE_SYSCALL(rmdir)(void *path_) { 122281418a27Smrg const char *path = (const char *)path_; 122381418a27Smrg if (path) { 122481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 122581418a27Smrg } 122681418a27Smrg} 122781418a27SmrgPOST_SYSCALL(rmdir)(long long res, void *path_) { 122881418a27Smrg if (res == 0) { 122981418a27Smrg const char *path = (const char *)path_; 123081418a27Smrg if (path) { 123181418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 123281418a27Smrg } 123381418a27Smrg } 123481418a27Smrg} 123581418a27SmrgPRE_SYSCALL(compat_50_utimes)(void *path_, void *tptr_) { /* TODO */ } 123681418a27SmrgPOST_SYSCALL(compat_50_utimes)(long long res, void *path_, void *tptr_) { 123781418a27Smrg /* TODO */ 123881418a27Smrg} 123981418a27Smrg/* syscall 139 has been skipped */ 124081418a27SmrgPRE_SYSCALL(compat_50_adjtime)(void *delta_, void *olddelta_) { /* TODO */ } 124181418a27SmrgPOST_SYSCALL(compat_50_adjtime)(long long res, void *delta_, void *olddelta_) { 124281418a27Smrg /* TODO */ 124381418a27Smrg} 124481418a27SmrgPRE_SYSCALL(compat_43_ogetpeername)(long long fdes_, void *asa_, void *alen_) { 124581418a27Smrg /* TODO */ 124681418a27Smrg} 124781418a27SmrgPOST_SYSCALL(compat_43_ogetpeername) 124881418a27Smrg(long long res, long long fdes_, void *asa_, void *alen_) { 124981418a27Smrg /* TODO */ 125081418a27Smrg} 125181418a27SmrgPRE_SYSCALL(compat_43_ogethostid)(void) { /* TODO */ } 125281418a27SmrgPOST_SYSCALL(compat_43_ogethostid)(long long res) { /* TODO */ } 125381418a27SmrgPRE_SYSCALL(compat_43_osethostid)(long long hostid_) { /* TODO */ } 125481418a27SmrgPOST_SYSCALL(compat_43_osethostid)(long long res, long long hostid_) { 125581418a27Smrg /* TODO */ 125681418a27Smrg} 125781418a27SmrgPRE_SYSCALL(compat_43_ogetrlimit)(long long which_, void *rlp_) { /* TODO */ } 125881418a27SmrgPOST_SYSCALL(compat_43_ogetrlimit) 125981418a27Smrg(long long res, long long which_, void *rlp_) { 126081418a27Smrg /* TODO */ 126181418a27Smrg} 126281418a27SmrgPRE_SYSCALL(compat_43_osetrlimit)(long long which_, void *rlp_) { /* TODO */ } 126381418a27SmrgPOST_SYSCALL(compat_43_osetrlimit) 126481418a27Smrg(long long res, long long which_, void *rlp_) { 126581418a27Smrg /* TODO */ 126681418a27Smrg} 126781418a27SmrgPRE_SYSCALL(compat_43_okillpg)(long long pgid_, long long signum_) { 126881418a27Smrg /* TODO */ 126981418a27Smrg} 127081418a27SmrgPOST_SYSCALL(compat_43_okillpg) 127181418a27Smrg(long long res, long long pgid_, long long signum_) { 127281418a27Smrg /* TODO */ 127381418a27Smrg} 127481418a27SmrgPRE_SYSCALL(setsid)(void) { /* Nothing to do */ } 127581418a27SmrgPOST_SYSCALL(setsid)(long long res) { /* Nothing to do */ } 127681418a27SmrgPRE_SYSCALL(compat_50_quotactl) 127781418a27Smrg(void *path_, long long cmd_, long long uid_, void *arg_) { 127881418a27Smrg /* TODO */ 127981418a27Smrg} 128081418a27SmrgPOST_SYSCALL(compat_50_quotactl) 128181418a27Smrg(long long res, void *path_, long long cmd_, long long uid_, void *arg_) { 128281418a27Smrg /* TODO */ 128381418a27Smrg} 128481418a27SmrgPRE_SYSCALL(compat_43_oquota)(void) { /* TODO */ } 128581418a27SmrgPOST_SYSCALL(compat_43_oquota)(long long res) { /* TODO */ } 128681418a27SmrgPRE_SYSCALL(compat_43_ogetsockname)(long long fdec_, void *asa_, void *alen_) { 128781418a27Smrg /* TODO */ 128881418a27Smrg} 128981418a27SmrgPOST_SYSCALL(compat_43_ogetsockname) 129081418a27Smrg(long long res, long long fdec_, void *asa_, void *alen_) { 129181418a27Smrg /* TODO */ 129281418a27Smrg} 129381418a27Smrg/* syscall 151 has been skipped */ 129481418a27Smrg/* syscall 152 has been skipped */ 129581418a27Smrg/* syscall 153 has been skipped */ 129681418a27Smrg/* syscall 154 has been skipped */ 129781418a27SmrgPRE_SYSCALL(nfssvc)(long long flag_, void *argp_) { /* Nothing to do */ } 129881418a27SmrgPOST_SYSCALL(nfssvc)(long long res, long long flag_, void *argp_) { 129981418a27Smrg /* Nothing to do */ 130081418a27Smrg} 130181418a27SmrgPRE_SYSCALL(compat_43_ogetdirentries) 130281418a27Smrg(long long fd_, void *buf_, long long count_, void *basep_) { 130381418a27Smrg /* TODO */ 130481418a27Smrg} 130581418a27SmrgPOST_SYSCALL(compat_43_ogetdirentries) 130681418a27Smrg(long long res, long long fd_, void *buf_, long long count_, void *basep_) { 130781418a27Smrg /* TODO */ 130881418a27Smrg} 130981418a27SmrgPRE_SYSCALL(compat_20_statfs)(void *path_, void *buf_) { /* TODO */ } 131081418a27SmrgPOST_SYSCALL(compat_20_statfs)(long long res, void *path_, void *buf_) { 131181418a27Smrg /* TODO */ 131281418a27Smrg} 131381418a27SmrgPRE_SYSCALL(compat_20_fstatfs)(long long fd_, void *buf_) { /* TODO */ } 131481418a27SmrgPOST_SYSCALL(compat_20_fstatfs)(long long res, long long fd_, void *buf_) { 131581418a27Smrg /* TODO */ 131681418a27Smrg} 131781418a27Smrg/* syscall 159 has been skipped */ 131881418a27Smrg/* syscall 160 has been skipped */ 131981418a27SmrgPRE_SYSCALL(compat_30_getfh)(void *fname_, void *fhp_) { /* TODO */ } 132081418a27SmrgPOST_SYSCALL(compat_30_getfh)(long long res, void *fname_, void *fhp_) { 132181418a27Smrg /* TODO */ 132281418a27Smrg} 132381418a27SmrgPRE_SYSCALL(compat_09_ogetdomainname)(void *domainname_, long long len_) { 132481418a27Smrg /* TODO */ 132581418a27Smrg} 132681418a27SmrgPOST_SYSCALL(compat_09_ogetdomainname) 132781418a27Smrg(long long res, void *domainname_, long long len_) { 132881418a27Smrg /* TODO */ 132981418a27Smrg} 133081418a27SmrgPRE_SYSCALL(compat_09_osetdomainname)(void *domainname_, long long len_) { 133181418a27Smrg /* TODO */ 133281418a27Smrg} 133381418a27SmrgPOST_SYSCALL(compat_09_osetdomainname) 133481418a27Smrg(long long res, void *domainname_, long long len_) { 133581418a27Smrg /* TODO */ 133681418a27Smrg} 133781418a27SmrgPRE_SYSCALL(compat_09_ouname)(void *name_) { /* TODO */ } 133881418a27SmrgPOST_SYSCALL(compat_09_ouname)(long long res, void *name_) { /* TODO */ } 133981418a27SmrgPRE_SYSCALL(sysarch)(long long op_, void *parms_) { /* TODO */ } 134081418a27SmrgPOST_SYSCALL(sysarch)(long long res, long long op_, void *parms_) { /* TODO */ } 13417bb5462dSkamilPRE_SYSCALL(__futex) 13427bb5462dSkamil(void *uaddr_, long long op_, long long val_, void *timeout_, void *uaddr2_, 13437bb5462dSkamil long long val2_, long long val3_) { 13447bb5462dSkamil /* TODO */ 13457bb5462dSkamil} 13467bb5462dSkamilPOST_SYSCALL(__futex) 13477bb5462dSkamil(long long res, void *uaddr_, long long op_, long long val_, void *timeout_, 13487bb5462dSkamil void *uaddr2_, long long val2_, long long val3_) { 13497bb5462dSkamil /* TODO */ 13507bb5462dSkamil} 13517bb5462dSkamilPRE_SYSCALL(__futex_set_robust_list)(void *head_, long long len_) { /* TODO */ } 13527bb5462dSkamilPOST_SYSCALL(__futex_set_robust_list) 13537bb5462dSkamil(long long res, void *head_, long long len_) { 13547bb5462dSkamil /* TODO */ 13557bb5462dSkamil} 13567bb5462dSkamilPRE_SYSCALL(__futex_get_robust_list) 13577bb5462dSkamil(long long lwpid_, void **headp_, void *lenp_) { 13587bb5462dSkamil /* TODO */ 13597bb5462dSkamil} 13607bb5462dSkamilPOST_SYSCALL(__futex_get_robust_list) 13617bb5462dSkamil(long long res, long long lwpid_, void **headp_, void *lenp_) { 13627bb5462dSkamil /* TODO */ 13637bb5462dSkamil} 136481418a27Smrg#if !defined(_LP64) 136581418a27SmrgPRE_SYSCALL(compat_10_osemsys) 136681418a27Smrg(long long which_, long long a2_, long long a3_, long long a4_, long long a5_) { 136781418a27Smrg /* TODO */ 136881418a27Smrg} 136981418a27SmrgPOST_SYSCALL(compat_10_osemsys) 137081418a27Smrg(long long res, long long which_, long long a2_, long long a3_, long long a4_, 137181418a27Smrg long long a5_) { 137281418a27Smrg /* TODO */ 137381418a27Smrg} 137481418a27Smrg#else 137581418a27Smrg/* syscall 169 has been skipped */ 137681418a27Smrg#endif 137781418a27Smrg#if !defined(_LP64) 137881418a27SmrgPRE_SYSCALL(compat_10_omsgsys) 137981418a27Smrg(long long which_, long long a2_, long long a3_, long long a4_, long long a5_, 138081418a27Smrg long long a6_) { 138181418a27Smrg /* TODO */ 138281418a27Smrg} 138381418a27SmrgPOST_SYSCALL(compat_10_omsgsys) 138481418a27Smrg(long long res, long long which_, long long a2_, long long a3_, long long a4_, 138581418a27Smrg long long a5_, long long a6_) { 138681418a27Smrg /* TODO */ 138781418a27Smrg} 138881418a27Smrg#else 138981418a27Smrg/* syscall 170 has been skipped */ 139081418a27Smrg#endif 139181418a27Smrg#if !defined(_LP64) 139281418a27SmrgPRE_SYSCALL(compat_10_oshmsys) 139381418a27Smrg(long long which_, long long a2_, long long a3_, long long a4_) { 139481418a27Smrg /* TODO */ 139581418a27Smrg} 139681418a27SmrgPOST_SYSCALL(compat_10_oshmsys) 139781418a27Smrg(long long res, long long which_, long long a2_, long long a3_, long long a4_) { 139881418a27Smrg /* TODO */ 139981418a27Smrg} 140081418a27Smrg#else 140181418a27Smrg/* syscall 171 has been skipped */ 140281418a27Smrg#endif 140381418a27Smrg/* syscall 172 has been skipped */ 140481418a27SmrgPRE_SYSCALL(pread) 140581418a27Smrg(long long fd_, void *buf_, long long nbyte_, long long PAD_, 140681418a27Smrg long long offset_) { 140781418a27Smrg if (buf_) { 140881418a27Smrg PRE_WRITE(buf_, nbyte_); 140981418a27Smrg } 141081418a27Smrg} 141181418a27SmrgPOST_SYSCALL(pread) 141281418a27Smrg(long long res, long long fd_, void *buf_, long long nbyte_, long long PAD_, 141381418a27Smrg long long offset_) { 141481418a27Smrg if (res > 0) { 141581418a27Smrg POST_WRITE(buf_, res); 141681418a27Smrg } 141781418a27Smrg} 141881418a27SmrgPRE_SYSCALL(pwrite) 141981418a27Smrg(long long fd_, void *buf_, long long nbyte_, long long PAD_, 142081418a27Smrg long long offset_) { 142181418a27Smrg if (buf_) { 142281418a27Smrg PRE_READ(buf_, nbyte_); 142381418a27Smrg } 142481418a27Smrg} 142581418a27SmrgPOST_SYSCALL(pwrite) 142681418a27Smrg(long long res, long long fd_, void *buf_, long long nbyte_, long long PAD_, 142781418a27Smrg long long offset_) { 142881418a27Smrg if (res > 0) { 142981418a27Smrg POST_READ(buf_, res); 143081418a27Smrg } 143181418a27Smrg} 143281418a27SmrgPRE_SYSCALL(compat_30_ntp_gettime)(void *ntvp_) { /* TODO */ } 143381418a27SmrgPOST_SYSCALL(compat_30_ntp_gettime)(long long res, void *ntvp_) { /* TODO */ } 143481418a27Smrg#if defined(NTP) || !defined(_KERNEL_OPT) 143581418a27SmrgPRE_SYSCALL(ntp_adjtime)(void *tp_) { /* Nothing to do */ } 143681418a27SmrgPOST_SYSCALL(ntp_adjtime)(long long res, void *tp_) { /* Nothing to do */ } 143781418a27Smrg#else 143881418a27Smrg/* syscall 176 has been skipped */ 143981418a27Smrg#endif 144081418a27Smrg/* syscall 177 has been skipped */ 144181418a27Smrg/* syscall 178 has been skipped */ 144281418a27Smrg/* syscall 179 has been skipped */ 144381418a27Smrg/* syscall 180 has been skipped */ 144481418a27SmrgPRE_SYSCALL(setgid)(long long gid_) { /* Nothing to do */ } 144581418a27SmrgPOST_SYSCALL(setgid)(long long res, long long gid_) { /* Nothing to do */ } 144681418a27SmrgPRE_SYSCALL(setegid)(long long egid_) { /* Nothing to do */ } 144781418a27SmrgPOST_SYSCALL(setegid)(long long res, long long egid_) { /* Nothing to do */ } 144881418a27SmrgPRE_SYSCALL(seteuid)(long long euid_) { /* Nothing to do */ } 144981418a27SmrgPOST_SYSCALL(seteuid)(long long res, long long euid_) { /* Nothing to do */ } 145081418a27SmrgPRE_SYSCALL(lfs_bmapv)(void *fsidp_, void *blkiov_, long long blkcnt_) { 145181418a27Smrg /* TODO */ 145281418a27Smrg} 145381418a27SmrgPOST_SYSCALL(lfs_bmapv) 145481418a27Smrg(long long res, void *fsidp_, void *blkiov_, long long blkcnt_) { 145581418a27Smrg /* TODO */ 145681418a27Smrg} 145781418a27SmrgPRE_SYSCALL(lfs_markv)(void *fsidp_, void *blkiov_, long long blkcnt_) { 145881418a27Smrg /* TODO */ 145981418a27Smrg} 146081418a27SmrgPOST_SYSCALL(lfs_markv) 146181418a27Smrg(long long res, void *fsidp_, void *blkiov_, long long blkcnt_) { 146281418a27Smrg /* TODO */ 146381418a27Smrg} 146481418a27SmrgPRE_SYSCALL(lfs_segclean)(void *fsidp_, long long segment_) { /* TODO */ } 146581418a27SmrgPOST_SYSCALL(lfs_segclean)(long long res, void *fsidp_, long long segment_) { 146681418a27Smrg /* TODO */ 146781418a27Smrg} 146881418a27SmrgPRE_SYSCALL(compat_50_lfs_segwait)(void *fsidp_, void *tv_) { /* TODO */ } 146981418a27SmrgPOST_SYSCALL(compat_50_lfs_segwait)(long long res, void *fsidp_, void *tv_) { 147081418a27Smrg /* TODO */ 147181418a27Smrg} 147281418a27SmrgPRE_SYSCALL(compat_12_stat12)(void *path_, void *ub_) { /* TODO */ } 147381418a27SmrgPOST_SYSCALL(compat_12_stat12)(long long res, void *path_, void *ub_) { 147481418a27Smrg /* TODO */ 147581418a27Smrg} 147681418a27SmrgPRE_SYSCALL(compat_12_fstat12)(long long fd_, void *sb_) { /* TODO */ } 147781418a27SmrgPOST_SYSCALL(compat_12_fstat12)(long long res, long long fd_, void *sb_) { 147881418a27Smrg /* TODO */ 147981418a27Smrg} 148081418a27SmrgPRE_SYSCALL(compat_12_lstat12)(void *path_, void *ub_) { /* TODO */ } 148181418a27SmrgPOST_SYSCALL(compat_12_lstat12)(long long res, void *path_, void *ub_) { 148281418a27Smrg /* TODO */ 148381418a27Smrg} 148481418a27SmrgPRE_SYSCALL(pathconf)(void *path_, long long name_) { 148581418a27Smrg const char *path = (const char *)path_; 148681418a27Smrg if (path) { 148781418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 148881418a27Smrg } 148981418a27Smrg} 149081418a27SmrgPOST_SYSCALL(pathconf)(long long res, void *path_, long long name_) { 149181418a27Smrg if (res != -1) { 149281418a27Smrg const char *path = (const char *)path_; 149381418a27Smrg if (path) { 149481418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 149581418a27Smrg } 149681418a27Smrg } 149781418a27Smrg} 149881418a27SmrgPRE_SYSCALL(fpathconf)(long long fd_, long long name_) { /* Nothing to do */ } 149981418a27SmrgPOST_SYSCALL(fpathconf)(long long res, long long fd_, long long name_) { 150081418a27Smrg /* Nothing to do */ 150181418a27Smrg} 15027bb5462dSkamilPRE_SYSCALL(getsockopt2) 15037bb5462dSkamil(long long s_, long long level_, long long name_, void *val_, void *avalsize_) { 15047bb5462dSkamil /* TODO */ 15057bb5462dSkamil} 15067bb5462dSkamilPOST_SYSCALL(getsockopt2) 15077bb5462dSkamil(long long res, long long s_, long long level_, long long name_, void *val_, 15087bb5462dSkamil void *avalsize_) { 15097bb5462dSkamil /* TODO */ 15107bb5462dSkamil} 151181418a27SmrgPRE_SYSCALL(getrlimit)(long long which_, void *rlp_) { 151281418a27Smrg PRE_WRITE(rlp_, struct_rlimit_sz); 151381418a27Smrg} 151481418a27SmrgPOST_SYSCALL(getrlimit)(long long res, long long which_, void *rlp_) { 151581418a27Smrg if (res == 0) { 151681418a27Smrg POST_WRITE(rlp_, struct_rlimit_sz); 151781418a27Smrg } 151881418a27Smrg} 151981418a27SmrgPRE_SYSCALL(setrlimit)(long long which_, void *rlp_) { 152081418a27Smrg PRE_READ(rlp_, struct_rlimit_sz); 152181418a27Smrg} 152281418a27SmrgPOST_SYSCALL(setrlimit)(long long res, long long which_, void *rlp_) { 152381418a27Smrg if (res == 0) { 152481418a27Smrg POST_READ(rlp_, struct_rlimit_sz); 152581418a27Smrg } 152681418a27Smrg} 152781418a27SmrgPRE_SYSCALL(compat_12_getdirentries) 152881418a27Smrg(long long fd_, void *buf_, long long count_, void *basep_) { 152981418a27Smrg /* TODO */ 153081418a27Smrg} 153181418a27SmrgPOST_SYSCALL(compat_12_getdirentries) 153281418a27Smrg(long long res, long long fd_, void *buf_, long long count_, void *basep_) { 153381418a27Smrg /* TODO */ 153481418a27Smrg} 153581418a27SmrgPRE_SYSCALL(mmap) 153681418a27Smrg(void *addr_, long long len_, long long prot_, long long flags_, long long fd_, 153781418a27Smrg long long PAD_, long long pos_) { 153881418a27Smrg /* Nothing to do */ 153981418a27Smrg} 154081418a27SmrgPOST_SYSCALL(mmap) 154181418a27Smrg(long long res, void *addr_, long long len_, long long prot_, long long flags_, 154281418a27Smrg long long fd_, long long PAD_, long long pos_) { 154381418a27Smrg /* Nothing to do */ 154481418a27Smrg} 154581418a27SmrgPRE_SYSCALL(__syscall)(long long code_, long long args_[SYS_MAXSYSARGS]) { 154681418a27Smrg /* Nothing to do */ 154781418a27Smrg} 154881418a27SmrgPOST_SYSCALL(__syscall) 154981418a27Smrg(long long res, long long code_, long long args_[SYS_MAXSYSARGS]) { 155081418a27Smrg /* Nothing to do */ 155181418a27Smrg} 155281418a27SmrgPRE_SYSCALL(lseek) 155381418a27Smrg(long long fd_, long long PAD_, long long offset_, long long whence_) { 155481418a27Smrg /* Nothing to do */ 155581418a27Smrg} 155681418a27SmrgPOST_SYSCALL(lseek) 155781418a27Smrg(long long res, long long fd_, long long PAD_, long long offset_, 155881418a27Smrg long long whence_) { 155981418a27Smrg /* Nothing to do */ 156081418a27Smrg} 156181418a27SmrgPRE_SYSCALL(truncate)(void *path_, long long PAD_, long long length_) { 156281418a27Smrg const char *path = (const char *)path_; 156381418a27Smrg if (path) { 156481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 156581418a27Smrg } 156681418a27Smrg} 156781418a27SmrgPOST_SYSCALL(truncate) 156881418a27Smrg(long long res, void *path_, long long PAD_, long long length_) { 156981418a27Smrg if (res == 0) { 157081418a27Smrg const char *path = (const char *)path_; 157181418a27Smrg if (path) { 157281418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 157381418a27Smrg } 157481418a27Smrg } 157581418a27Smrg} 157681418a27SmrgPRE_SYSCALL(ftruncate)(long long fd_, long long PAD_, long long length_) { 157781418a27Smrg /* Nothing to do */ 157881418a27Smrg} 157981418a27SmrgPOST_SYSCALL(ftruncate) 158081418a27Smrg(long long res, long long fd_, long long PAD_, long long length_) { 158181418a27Smrg /* Nothing to do */ 158281418a27Smrg} 158381418a27SmrgPRE_SYSCALL(__sysctl) 158481418a27Smrg(void *name_, long long namelen_, void *oldv_, void *oldlenp_, void *newv_, 158581418a27Smrg long long newlen_) { 158681418a27Smrg const int *name = (const int *)name_; 158781418a27Smrg if (name) { 158881418a27Smrg PRE_READ(name, namelen_ * sizeof(*name)); 158981418a27Smrg } 159081418a27Smrg if (newv_) { 159181418a27Smrg PRE_READ(name, newlen_); 159281418a27Smrg } 159381418a27Smrg} 159481418a27SmrgPOST_SYSCALL(__sysctl) 159581418a27Smrg(long long res, void *name_, long long namelen_, void *oldv_, void *oldlenp_, 159681418a27Smrg void *newv_, long long newlen_) { 159781418a27Smrg if (res == 0) { 159881418a27Smrg const int *name = (const int *)name_; 159981418a27Smrg if (name) { 160081418a27Smrg POST_READ(name, namelen_ * sizeof(*name)); 160181418a27Smrg } 160281418a27Smrg if (newv_) { 160381418a27Smrg POST_READ(name, newlen_); 160481418a27Smrg } 160581418a27Smrg } 160681418a27Smrg} 160781418a27SmrgPRE_SYSCALL(mlock)(void *addr_, long long len_) { /* Nothing to do */ } 160881418a27SmrgPOST_SYSCALL(mlock)(long long res, void *addr_, long long len_) { 160981418a27Smrg /* Nothing to do */ 161081418a27Smrg} 161181418a27SmrgPRE_SYSCALL(munlock)(void *addr_, long long len_) { /* Nothing to do */ } 161281418a27SmrgPOST_SYSCALL(munlock)(long long res, void *addr_, long long len_) { 161381418a27Smrg /* Nothing to do */ 161481418a27Smrg} 161581418a27SmrgPRE_SYSCALL(undelete)(void *path_) { 161681418a27Smrg const char *path = (const char *)path_; 161781418a27Smrg if (path) { 161881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 161981418a27Smrg } 162081418a27Smrg} 162181418a27SmrgPOST_SYSCALL(undelete)(long long res, void *path_) { 162281418a27Smrg if (res == 0) { 162381418a27Smrg const char *path = (const char *)path_; 162481418a27Smrg if (path) { 162581418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 162681418a27Smrg } 162781418a27Smrg } 162881418a27Smrg} 162981418a27SmrgPRE_SYSCALL(compat_50_futimes)(long long fd_, void *tptr_) { /* TODO */ } 163081418a27SmrgPOST_SYSCALL(compat_50_futimes)(long long res, long long fd_, void *tptr_) { 163181418a27Smrg /* TODO */ 163281418a27Smrg} 163381418a27SmrgPRE_SYSCALL(getpgid)(long long pid_) { /* Nothing to do */ } 163481418a27SmrgPOST_SYSCALL(getpgid)(long long res, long long pid_) { /* Nothing to do */ } 163581418a27SmrgPRE_SYSCALL(reboot)(long long opt_, void *bootstr_) { 163681418a27Smrg const char *bootstr = (const char *)bootstr_; 163781418a27Smrg if (bootstr) { 163881418a27Smrg PRE_READ(bootstr, __sanitizer::internal_strlen(bootstr) + 1); 163981418a27Smrg } 164081418a27Smrg} 164181418a27SmrgPOST_SYSCALL(reboot)(long long res, long long opt_, void *bootstr_) { 164281418a27Smrg /* This call should never return */ 164381418a27Smrg const char *bootstr = (const char *)bootstr_; 164481418a27Smrg if (bootstr) { 164581418a27Smrg POST_READ(bootstr, __sanitizer::internal_strlen(bootstr) + 1); 164681418a27Smrg } 164781418a27Smrg} 164881418a27SmrgPRE_SYSCALL(poll)(void *fds_, long long nfds_, long long timeout_) { 164981418a27Smrg /* Nothing to do */ 165081418a27Smrg} 165181418a27SmrgPOST_SYSCALL(poll) 165281418a27Smrg(long long res, void *fds_, long long nfds_, long long timeout_) { 165381418a27Smrg /* Nothing to do */ 165481418a27Smrg} 165581418a27SmrgPRE_SYSCALL(afssys) 165681418a27Smrg(long long id_, long long a1_, long long a2_, long long a3_, long long a4_, 165781418a27Smrg long long a5_, long long a6_) { 165881418a27Smrg /* TODO */ 165981418a27Smrg} 166081418a27SmrgPOST_SYSCALL(afssys) 166181418a27Smrg(long long res, long long id_, long long a1_, long long a2_, long long a3_, 166281418a27Smrg long long a4_, long long a5_, long long a6_) { 166381418a27Smrg /* TODO */ 166481418a27Smrg} 166581418a27Smrg/* syscall 211 has been skipped */ 166681418a27Smrg/* syscall 212 has been skipped */ 166781418a27Smrg/* syscall 213 has been skipped */ 166881418a27Smrg/* syscall 214 has been skipped */ 166981418a27Smrg/* syscall 215 has been skipped */ 167081418a27Smrg/* syscall 216 has been skipped */ 167181418a27Smrg/* syscall 217 has been skipped */ 167281418a27Smrg/* syscall 218 has been skipped */ 167381418a27Smrg/* syscall 219 has been skipped */ 167481418a27SmrgPRE_SYSCALL(compat_14___semctl) 167581418a27Smrg(long long semid_, long long semnum_, long long cmd_, void *arg_) { 167681418a27Smrg /* TODO */ 167781418a27Smrg} 167881418a27SmrgPOST_SYSCALL(compat_14___semctl) 167981418a27Smrg(long long res, long long semid_, long long semnum_, long long cmd_, 168081418a27Smrg void *arg_) { 168181418a27Smrg /* TODO */ 168281418a27Smrg} 168381418a27SmrgPRE_SYSCALL(semget)(long long key_, long long nsems_, long long semflg_) { 168481418a27Smrg /* Nothing to do */ 168581418a27Smrg} 168681418a27SmrgPOST_SYSCALL(semget) 168781418a27Smrg(long long res, long long key_, long long nsems_, long long semflg_) { 168881418a27Smrg /* Nothing to do */ 168981418a27Smrg} 169081418a27SmrgPRE_SYSCALL(semop)(long long semid_, void *sops_, long long nsops_) { 169181418a27Smrg if (sops_) { 169281418a27Smrg PRE_READ(sops_, nsops_ * struct_sembuf_sz); 169381418a27Smrg } 169481418a27Smrg} 169581418a27SmrgPOST_SYSCALL(semop) 169681418a27Smrg(long long res, long long semid_, void *sops_, long long nsops_) { 169781418a27Smrg if (res == 0) { 169881418a27Smrg if (sops_) { 169981418a27Smrg POST_READ(sops_, nsops_ * struct_sembuf_sz); 170081418a27Smrg } 170181418a27Smrg } 170281418a27Smrg} 170381418a27SmrgPRE_SYSCALL(semconfig)(long long flag_) { /* Nothing to do */ } 170481418a27SmrgPOST_SYSCALL(semconfig)(long long res, long long flag_) { /* Nothing to do */ } 170581418a27SmrgPRE_SYSCALL(compat_14_msgctl)(long long msqid_, long long cmd_, void *buf_) { 170681418a27Smrg /* TODO */ 170781418a27Smrg} 170881418a27SmrgPOST_SYSCALL(compat_14_msgctl) 170981418a27Smrg(long long res, long long msqid_, long long cmd_, void *buf_) { 171081418a27Smrg /* TODO */ 171181418a27Smrg} 171281418a27SmrgPRE_SYSCALL(msgget)(long long key_, long long msgflg_) { /* Nothing to do */ } 171381418a27SmrgPOST_SYSCALL(msgget)(long long res, long long key_, long long msgflg_) { 171481418a27Smrg /* Nothing to do */ 171581418a27Smrg} 171681418a27SmrgPRE_SYSCALL(msgsnd) 171781418a27Smrg(long long msqid_, void *msgp_, long long msgsz_, long long msgflg_) { 171881418a27Smrg if (msgp_) { 171981418a27Smrg PRE_READ(msgp_, msgsz_); 172081418a27Smrg } 172181418a27Smrg} 172281418a27SmrgPOST_SYSCALL(msgsnd) 172381418a27Smrg(long long res, long long msqid_, void *msgp_, long long msgsz_, 172481418a27Smrg long long msgflg_) { 172581418a27Smrg if (res == 0) { 172681418a27Smrg if (msgp_) { 172781418a27Smrg POST_READ(msgp_, msgsz_); 172881418a27Smrg } 172981418a27Smrg } 173081418a27Smrg} 173181418a27SmrgPRE_SYSCALL(msgrcv) 173281418a27Smrg(long long msqid_, void *msgp_, long long msgsz_, long long msgtyp_, 173381418a27Smrg long long msgflg_) { 173481418a27Smrg /* Nothing to do */ 173581418a27Smrg} 173681418a27SmrgPOST_SYSCALL(msgrcv) 173781418a27Smrg(long long res, long long msqid_, void *msgp_, long long msgsz_, 173881418a27Smrg long long msgtyp_, long long msgflg_) { 173981418a27Smrg /* Nothing to do */ 174081418a27Smrg} 174181418a27SmrgPRE_SYSCALL(shmat)(long long shmid_, void *shmaddr_, long long shmflg_) { 174281418a27Smrg /* Nothing to do */ 174381418a27Smrg} 174481418a27SmrgPOST_SYSCALL(shmat) 174581418a27Smrg(long long res, long long shmid_, void *shmaddr_, long long shmflg_) { 174681418a27Smrg /* Nothing to do */ 174781418a27Smrg} 174881418a27SmrgPRE_SYSCALL(compat_14_shmctl)(long long shmid_, long long cmd_, void *buf_) { 174981418a27Smrg /* TODO */ 175081418a27Smrg} 175181418a27SmrgPOST_SYSCALL(compat_14_shmctl) 175281418a27Smrg(long long res, long long shmid_, long long cmd_, void *buf_) { 175381418a27Smrg /* TODO */ 175481418a27Smrg} 175581418a27SmrgPRE_SYSCALL(shmdt)(void *shmaddr_) { /* Nothing to do */ } 175681418a27SmrgPOST_SYSCALL(shmdt)(long long res, void *shmaddr_) { /* Nothing to do */ } 175781418a27SmrgPRE_SYSCALL(shmget)(long long key_, long long size_, long long shmflg_) { 175881418a27Smrg /* Nothing to do */ 175981418a27Smrg} 176081418a27SmrgPOST_SYSCALL(shmget) 176181418a27Smrg(long long res, long long key_, long long size_, long long shmflg_) { 176281418a27Smrg /* Nothing to do */ 176381418a27Smrg} 176481418a27SmrgPRE_SYSCALL(compat_50_clock_gettime)(long long clock_id_, void *tp_) { 176581418a27Smrg /* TODO */ 176681418a27Smrg} 176781418a27SmrgPOST_SYSCALL(compat_50_clock_gettime) 176881418a27Smrg(long long res, long long clock_id_, void *tp_) { 176981418a27Smrg /* TODO */ 177081418a27Smrg} 177181418a27SmrgPRE_SYSCALL(compat_50_clock_settime)(long long clock_id_, void *tp_) { 177281418a27Smrg /* TODO */ 177381418a27Smrg} 177481418a27SmrgPOST_SYSCALL(compat_50_clock_settime) 177581418a27Smrg(long long res, long long clock_id_, void *tp_) { 177681418a27Smrg /* TODO */ 177781418a27Smrg} 177881418a27SmrgPRE_SYSCALL(compat_50_clock_getres)(long long clock_id_, void *tp_) { 177981418a27Smrg /* TODO */ 178081418a27Smrg} 178181418a27SmrgPOST_SYSCALL(compat_50_clock_getres) 178281418a27Smrg(long long res, long long clock_id_, void *tp_) { 178381418a27Smrg /* TODO */ 178481418a27Smrg} 178581418a27SmrgPRE_SYSCALL(timer_create)(long long clock_id_, void *evp_, void *timerid_) { 178681418a27Smrg /* Nothing to do */ 178781418a27Smrg} 178881418a27SmrgPOST_SYSCALL(timer_create) 178981418a27Smrg(long long res, long long clock_id_, void *evp_, void *timerid_) { 179081418a27Smrg /* Nothing to do */ 179181418a27Smrg} 179281418a27SmrgPRE_SYSCALL(timer_delete)(long long timerid_) { /* Nothing to do */ } 179381418a27SmrgPOST_SYSCALL(timer_delete)(long long res, long long timerid_) { 179481418a27Smrg /* Nothing to do */ 179581418a27Smrg} 179681418a27SmrgPRE_SYSCALL(compat_50_timer_settime) 179781418a27Smrg(long long timerid_, long long flags_, void *value_, void *ovalue_) { 179881418a27Smrg /* TODO */ 179981418a27Smrg} 180081418a27SmrgPOST_SYSCALL(compat_50_timer_settime) 180181418a27Smrg(long long res, long long timerid_, long long flags_, void *value_, 180281418a27Smrg void *ovalue_) { 180381418a27Smrg /* TODO */ 180481418a27Smrg} 180581418a27SmrgPRE_SYSCALL(compat_50_timer_gettime)(long long timerid_, void *value_) { 180681418a27Smrg /* TODO */ 180781418a27Smrg} 180881418a27SmrgPOST_SYSCALL(compat_50_timer_gettime) 180981418a27Smrg(long long res, long long timerid_, void *value_) { 181081418a27Smrg /* TODO */ 181181418a27Smrg} 181281418a27SmrgPRE_SYSCALL(timer_getoverrun)(long long timerid_) { /* Nothing to do */ } 181381418a27SmrgPOST_SYSCALL(timer_getoverrun)(long long res, long long timerid_) { 181481418a27Smrg /* Nothing to do */ 181581418a27Smrg} 181681418a27SmrgPRE_SYSCALL(compat_50_nanosleep)(void *rqtp_, void *rmtp_) { /* TODO */ } 181781418a27SmrgPOST_SYSCALL(compat_50_nanosleep)(long long res, void *rqtp_, void *rmtp_) { 181881418a27Smrg /* TODO */ 181981418a27Smrg} 182081418a27SmrgPRE_SYSCALL(fdatasync)(long long fd_) { /* Nothing to do */ } 182181418a27SmrgPOST_SYSCALL(fdatasync)(long long res, long long fd_) { /* Nothing to do */ } 182281418a27SmrgPRE_SYSCALL(mlockall)(long long flags_) { /* Nothing to do */ } 182381418a27SmrgPOST_SYSCALL(mlockall)(long long res, long long flags_) { /* Nothing to do */ } 182481418a27SmrgPRE_SYSCALL(munlockall)(void) { /* Nothing to do */ } 182581418a27SmrgPOST_SYSCALL(munlockall)(long long res) { /* Nothing to do */ } 182681418a27SmrgPRE_SYSCALL(compat_50___sigtimedwait)(void *set_, void *info_, void *timeout_) { 182781418a27Smrg /* TODO */ 182881418a27Smrg} 182981418a27SmrgPOST_SYSCALL(compat_50___sigtimedwait) 183081418a27Smrg(long long res, void *set_, void *info_, void *timeout_) { 183181418a27Smrg /* TODO */ 183281418a27Smrg} 183381418a27SmrgPRE_SYSCALL(sigqueueinfo)(long long pid_, void *info_) { 183481418a27Smrg if (info_) { 183581418a27Smrg PRE_READ(info_, siginfo_t_sz); 183681418a27Smrg } 183781418a27Smrg} 183881418a27SmrgPOST_SYSCALL(sigqueueinfo)(long long res, long long pid_, void *info_) {} 183981418a27SmrgPRE_SYSCALL(modctl)(long long cmd_, void *arg_) { /* TODO */ } 184081418a27SmrgPOST_SYSCALL(modctl)(long long res, long long cmd_, void *arg_) { /* TODO */ } 184181418a27SmrgPRE_SYSCALL(_ksem_init)(long long value_, void *idp_) { /* Nothing to do */ } 184281418a27SmrgPOST_SYSCALL(_ksem_init)(long long res, long long value_, void *idp_) { 184381418a27Smrg /* Nothing to do */ 184481418a27Smrg} 184581418a27SmrgPRE_SYSCALL(_ksem_open) 184681418a27Smrg(void *name_, long long oflag_, long long mode_, long long value_, void *idp_) { 184781418a27Smrg const char *name = (const char *)name_; 184881418a27Smrg if (name) { 184981418a27Smrg PRE_READ(name, __sanitizer::internal_strlen(name) + 1); 185081418a27Smrg } 185181418a27Smrg} 185281418a27SmrgPOST_SYSCALL(_ksem_open) 185381418a27Smrg(long long res, void *name_, long long oflag_, long long mode_, 185481418a27Smrg long long value_, void *idp_) { 185581418a27Smrg const char *name = (const char *)name_; 185681418a27Smrg if (name) { 185781418a27Smrg POST_READ(name, __sanitizer::internal_strlen(name) + 1); 185881418a27Smrg } 185981418a27Smrg} 186081418a27SmrgPRE_SYSCALL(_ksem_unlink)(void *name_) { 186181418a27Smrg const char *name = (const char *)name_; 186281418a27Smrg if (name) { 186381418a27Smrg PRE_READ(name, __sanitizer::internal_strlen(name) + 1); 186481418a27Smrg } 186581418a27Smrg} 186681418a27SmrgPOST_SYSCALL(_ksem_unlink)(long long res, void *name_) { 186781418a27Smrg const char *name = (const char *)name_; 186881418a27Smrg if (name) { 186981418a27Smrg POST_READ(name, __sanitizer::internal_strlen(name) + 1); 187081418a27Smrg } 187181418a27Smrg} 187281418a27SmrgPRE_SYSCALL(_ksem_close)(long long id_) { /* Nothing to do */ } 187381418a27SmrgPOST_SYSCALL(_ksem_close)(long long res, long long id_) { /* Nothing to do */ } 187481418a27SmrgPRE_SYSCALL(_ksem_post)(long long id_) { /* Nothing to do */ } 187581418a27SmrgPOST_SYSCALL(_ksem_post)(long long res, long long id_) { /* Nothing to do */ } 187681418a27SmrgPRE_SYSCALL(_ksem_wait)(long long id_) { /* Nothing to do */ } 187781418a27SmrgPOST_SYSCALL(_ksem_wait)(long long res, long long id_) { /* Nothing to do */ } 187881418a27SmrgPRE_SYSCALL(_ksem_trywait)(long long id_) { /* Nothing to do */ } 187981418a27SmrgPOST_SYSCALL(_ksem_trywait)(long long res, long long id_) { 188081418a27Smrg /* Nothing to do */ 188181418a27Smrg} 188281418a27SmrgPRE_SYSCALL(_ksem_getvalue)(long long id_, void *value_) { /* Nothing to do */ } 188381418a27SmrgPOST_SYSCALL(_ksem_getvalue)(long long res, long long id_, void *value_) { 188481418a27Smrg /* Nothing to do */ 188581418a27Smrg} 188681418a27SmrgPRE_SYSCALL(_ksem_destroy)(long long id_) { /* Nothing to do */ } 188781418a27SmrgPOST_SYSCALL(_ksem_destroy)(long long res, long long id_) { 188881418a27Smrg /* Nothing to do */ 188981418a27Smrg} 189081418a27SmrgPRE_SYSCALL(_ksem_timedwait)(long long id_, void *abstime_) { 189181418a27Smrg if (abstime_) { 189281418a27Smrg PRE_READ(abstime_, struct_timespec_sz); 189381418a27Smrg } 189481418a27Smrg} 189581418a27SmrgPOST_SYSCALL(_ksem_timedwait)(long long res, long long id_, void *abstime_) {} 189681418a27SmrgPRE_SYSCALL(mq_open) 189781418a27Smrg(void *name_, long long oflag_, long long mode_, void *attr_) { 189881418a27Smrg const char *name = (const char *)name_; 189981418a27Smrg if (name) { 190081418a27Smrg PRE_READ(name, __sanitizer::internal_strlen(name) + 1); 190181418a27Smrg } 190281418a27Smrg} 190381418a27SmrgPOST_SYSCALL(mq_open) 190481418a27Smrg(long long res, void *name_, long long oflag_, long long mode_, void *attr_) { 190581418a27Smrg const char *name = (const char *)name_; 190681418a27Smrg if (name) { 190781418a27Smrg POST_READ(name, __sanitizer::internal_strlen(name) + 1); 190881418a27Smrg } 190981418a27Smrg} 191081418a27SmrgPRE_SYSCALL(mq_close)(long long mqdes_) { /* Nothing to do */ } 191181418a27SmrgPOST_SYSCALL(mq_close)(long long res, long long mqdes_) { /* Nothing to do */ } 191281418a27SmrgPRE_SYSCALL(mq_unlink)(void *name_) { 191381418a27Smrg const char *name = (const char *)name_; 191481418a27Smrg if (name) { 191581418a27Smrg PRE_READ(name, __sanitizer::internal_strlen(name) + 1); 191681418a27Smrg } 191781418a27Smrg} 191881418a27SmrgPOST_SYSCALL(mq_unlink)(long long res, void *name_) { 191981418a27Smrg const char *name = (const char *)name_; 192081418a27Smrg if (name) { 192181418a27Smrg POST_READ(name, __sanitizer::internal_strlen(name) + 1); 192281418a27Smrg } 192381418a27Smrg} 192481418a27SmrgPRE_SYSCALL(mq_getattr)(long long mqdes_, void *mqstat_) { /* Nothing to do */ } 192581418a27SmrgPOST_SYSCALL(mq_getattr)(long long res, long long mqdes_, void *mqstat_) { 192681418a27Smrg /* Nothing to do */ 192781418a27Smrg} 192881418a27SmrgPRE_SYSCALL(mq_setattr)(long long mqdes_, void *mqstat_, void *omqstat_) { 192981418a27Smrg if (mqstat_) { 193081418a27Smrg PRE_READ(mqstat_, struct_mq_attr_sz); 193181418a27Smrg } 193281418a27Smrg} 193381418a27SmrgPOST_SYSCALL(mq_setattr) 193481418a27Smrg(long long res, long long mqdes_, void *mqstat_, void *omqstat_) {} 193581418a27SmrgPRE_SYSCALL(mq_notify)(long long mqdes_, void *notification_) { 193681418a27Smrg if (notification_) { 193781418a27Smrg PRE_READ(notification_, struct_sigevent_sz); 193881418a27Smrg } 193981418a27Smrg} 194081418a27SmrgPOST_SYSCALL(mq_notify)(long long res, long long mqdes_, void *notification_) {} 194181418a27SmrgPRE_SYSCALL(mq_send) 194281418a27Smrg(long long mqdes_, void *msg_ptr_, long long msg_len_, long long msg_prio_) { 194381418a27Smrg if (msg_ptr_) { 194481418a27Smrg PRE_READ(msg_ptr_, msg_len_); 194581418a27Smrg } 194681418a27Smrg} 194781418a27SmrgPOST_SYSCALL(mq_send) 194881418a27Smrg(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_, 194981418a27Smrg long long msg_prio_) {} 195081418a27SmrgPRE_SYSCALL(mq_receive) 195181418a27Smrg(long long mqdes_, void *msg_ptr_, long long msg_len_, void *msg_prio_) { 195281418a27Smrg /* Nothing to do */ 195381418a27Smrg} 195481418a27SmrgPOST_SYSCALL(mq_receive) 195581418a27Smrg(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_, 195681418a27Smrg void *msg_prio_) { 195781418a27Smrg /* Nothing to do */ 195881418a27Smrg} 195981418a27SmrgPRE_SYSCALL(compat_50_mq_timedsend) 196081418a27Smrg(long long mqdes_, void *msg_ptr_, long long msg_len_, long long msg_prio_, 196181418a27Smrg void *abs_timeout_) { 196281418a27Smrg /* TODO */ 196381418a27Smrg} 196481418a27SmrgPOST_SYSCALL(compat_50_mq_timedsend) 196581418a27Smrg(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_, 196681418a27Smrg long long msg_prio_, void *abs_timeout_) { 196781418a27Smrg /* TODO */ 196881418a27Smrg} 196981418a27SmrgPRE_SYSCALL(compat_50_mq_timedreceive) 197081418a27Smrg(long long mqdes_, void *msg_ptr_, long long msg_len_, void *msg_prio_, 197181418a27Smrg void *abs_timeout_) { 197281418a27Smrg /* TODO */ 197381418a27Smrg} 197481418a27SmrgPOST_SYSCALL(compat_50_mq_timedreceive) 197581418a27Smrg(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_, 197681418a27Smrg void *msg_prio_, void *abs_timeout_) { 197781418a27Smrg /* TODO */ 197881418a27Smrg} 197981418a27Smrg/* syscall 267 has been skipped */ 198081418a27Smrg/* syscall 268 has been skipped */ 198181418a27Smrg/* syscall 269 has been skipped */ 198281418a27SmrgPRE_SYSCALL(__posix_rename)(void *from_, void *to_) { 198381418a27Smrg const char *from = (const char *)from_; 198481418a27Smrg const char *to = (const char *)to_; 198581418a27Smrg if (from_) { 198681418a27Smrg PRE_READ(from, __sanitizer::internal_strlen(from) + 1); 198781418a27Smrg } 198881418a27Smrg if (to) { 198981418a27Smrg PRE_READ(to, __sanitizer::internal_strlen(to) + 1); 199081418a27Smrg } 199181418a27Smrg} 199281418a27SmrgPOST_SYSCALL(__posix_rename)(long long res, void *from_, void *to_) { 199381418a27Smrg const char *from = (const char *)from_; 199481418a27Smrg const char *to = (const char *)to_; 199581418a27Smrg if (from) { 199681418a27Smrg POST_READ(from, __sanitizer::internal_strlen(from) + 1); 199781418a27Smrg } 199881418a27Smrg if (to) { 199981418a27Smrg POST_READ(to, __sanitizer::internal_strlen(to) + 1); 200081418a27Smrg } 200181418a27Smrg} 200281418a27SmrgPRE_SYSCALL(swapctl)(long long cmd_, void *arg_, long long misc_) { /* TODO */ } 200381418a27SmrgPOST_SYSCALL(swapctl) 200481418a27Smrg(long long res, long long cmd_, void *arg_, long long misc_) { 200581418a27Smrg /* TODO */ 200681418a27Smrg} 200781418a27SmrgPRE_SYSCALL(compat_30_getdents)(long long fd_, void *buf_, long long count_) { 200881418a27Smrg /* TODO */ 200981418a27Smrg} 201081418a27SmrgPOST_SYSCALL(compat_30_getdents) 201181418a27Smrg(long long res, long long fd_, void *buf_, long long count_) { 201281418a27Smrg /* TODO */ 201381418a27Smrg} 201481418a27SmrgPRE_SYSCALL(minherit)(void *addr_, long long len_, long long inherit_) { 201581418a27Smrg /* Nothing to do */ 201681418a27Smrg} 201781418a27SmrgPOST_SYSCALL(minherit) 201881418a27Smrg(long long res, void *addr_, long long len_, long long inherit_) { 201981418a27Smrg /* Nothing to do */ 202081418a27Smrg} 202181418a27SmrgPRE_SYSCALL(lchmod)(void *path_, long long mode_) { 202281418a27Smrg const char *path = (const char *)path_; 202381418a27Smrg if (path) { 202481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 202581418a27Smrg } 202681418a27Smrg} 202781418a27SmrgPOST_SYSCALL(lchmod)(long long res, void *path_, long long mode_) { 202881418a27Smrg const char *path = (const char *)path_; 202981418a27Smrg if (path) { 203081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 203181418a27Smrg } 203281418a27Smrg} 203381418a27SmrgPRE_SYSCALL(lchown)(void *path_, long long uid_, long long gid_) { 203481418a27Smrg const char *path = (const char *)path_; 203581418a27Smrg if (path) { 203681418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 203781418a27Smrg } 203881418a27Smrg} 203981418a27SmrgPOST_SYSCALL(lchown) 204081418a27Smrg(long long res, void *path_, long long uid_, long long gid_) { 204181418a27Smrg const char *path = (const char *)path_; 204281418a27Smrg if (path) { 204381418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 204481418a27Smrg } 204581418a27Smrg} 204681418a27SmrgPRE_SYSCALL(compat_50_lutimes)(void *path_, void *tptr_) { /* TODO */ } 204781418a27SmrgPOST_SYSCALL(compat_50_lutimes)(long long res, void *path_, void *tptr_) { 204881418a27Smrg /* TODO */ 204981418a27Smrg} 205081418a27SmrgPRE_SYSCALL(__msync13)(void *addr_, long long len_, long long flags_) { 205181418a27Smrg /* Nothing to do */ 205281418a27Smrg} 205381418a27SmrgPOST_SYSCALL(__msync13) 205481418a27Smrg(long long res, void *addr_, long long len_, long long flags_) { 205581418a27Smrg /* Nothing to do */ 205681418a27Smrg} 205781418a27SmrgPRE_SYSCALL(compat_30___stat13)(void *path_, void *ub_) { /* TODO */ } 205881418a27SmrgPOST_SYSCALL(compat_30___stat13)(long long res, void *path_, void *ub_) { 205981418a27Smrg /* TODO */ 206081418a27Smrg} 206181418a27SmrgPRE_SYSCALL(compat_30___fstat13)(long long fd_, void *sb_) { /* TODO */ } 206281418a27SmrgPOST_SYSCALL(compat_30___fstat13)(long long res, long long fd_, void *sb_) { 206381418a27Smrg /* TODO */ 206481418a27Smrg} 206581418a27SmrgPRE_SYSCALL(compat_30___lstat13)(void *path_, void *ub_) { /* TODO */ } 206681418a27SmrgPOST_SYSCALL(compat_30___lstat13)(long long res, void *path_, void *ub_) { 206781418a27Smrg /* TODO */ 206881418a27Smrg} 206981418a27SmrgPRE_SYSCALL(__sigaltstack14)(void *nss_, void *oss_) { 207081418a27Smrg if (nss_) { 207181418a27Smrg PRE_READ(nss_, struct_sigaltstack_sz); 207281418a27Smrg } 207381418a27Smrg if (oss_) { 207481418a27Smrg PRE_READ(oss_, struct_sigaltstack_sz); 207581418a27Smrg } 207681418a27Smrg} 207781418a27SmrgPOST_SYSCALL(__sigaltstack14)(long long res, void *nss_, void *oss_) {} 207881418a27SmrgPRE_SYSCALL(__vfork14)(void) { /* Nothing to do */ } 207981418a27SmrgPOST_SYSCALL(__vfork14)(long long res) { /* Nothing to do */ } 208081418a27SmrgPRE_SYSCALL(__posix_chown)(void *path_, long long uid_, long long gid_) { 208181418a27Smrg const char *path = (const char *)path_; 208281418a27Smrg if (path) { 208381418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 208481418a27Smrg } 208581418a27Smrg} 208681418a27SmrgPOST_SYSCALL(__posix_chown) 208781418a27Smrg(long long res, void *path_, long long uid_, long long gid_) { 208881418a27Smrg const char *path = (const char *)path_; 208981418a27Smrg if (path) { 209081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 209181418a27Smrg } 209281418a27Smrg} 209381418a27SmrgPRE_SYSCALL(__posix_fchown)(long long fd_, long long uid_, long long gid_) { 209481418a27Smrg /* Nothing to do */ 209581418a27Smrg} 209681418a27SmrgPOST_SYSCALL(__posix_fchown) 209781418a27Smrg(long long res, long long fd_, long long uid_, long long gid_) { 209881418a27Smrg /* Nothing to do */ 209981418a27Smrg} 210081418a27SmrgPRE_SYSCALL(__posix_lchown)(void *path_, long long uid_, long long gid_) { 210181418a27Smrg const char *path = (const char *)path_; 210281418a27Smrg if (path) { 210381418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 210481418a27Smrg } 210581418a27Smrg} 210681418a27SmrgPOST_SYSCALL(__posix_lchown) 210781418a27Smrg(long long res, void *path_, long long uid_, long long gid_) { 210881418a27Smrg const char *path = (const char *)path_; 210981418a27Smrg if (path) { 211081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 211181418a27Smrg } 211281418a27Smrg} 211381418a27SmrgPRE_SYSCALL(getsid)(long long pid_) { /* Nothing to do */ } 211481418a27SmrgPOST_SYSCALL(getsid)(long long res, long long pid_) { /* Nothing to do */ } 211581418a27SmrgPRE_SYSCALL(__clone)(long long flags_, void *stack_) { /* Nothing to do */ } 211681418a27SmrgPOST_SYSCALL(__clone)(long long res, long long flags_, void *stack_) { 211781418a27Smrg /* Nothing to do */ 211881418a27Smrg} 211981418a27SmrgPRE_SYSCALL(fktrace) 212081418a27Smrg(long long fd_, long long ops_, long long facs_, long long pid_) { 212181418a27Smrg /* Nothing to do */ 212281418a27Smrg} 212381418a27SmrgPOST_SYSCALL(fktrace) 212481418a27Smrg(long long res, long long fd_, long long ops_, long long facs_, 212581418a27Smrg long long pid_) { 212681418a27Smrg /* Nothing to do */ 212781418a27Smrg} 212881418a27SmrgPRE_SYSCALL(preadv) 212981418a27Smrg(long long fd_, void *iovp_, long long iovcnt_, long long PAD_, 213081418a27Smrg long long offset_) { 213181418a27Smrg /* Nothing to do */ 213281418a27Smrg} 213381418a27SmrgPOST_SYSCALL(preadv) 213481418a27Smrg(long long res, long long fd_, void *iovp_, long long iovcnt_, long long PAD_, 213581418a27Smrg long long offset_) { 213681418a27Smrg /* Nothing to do */ 213781418a27Smrg} 213881418a27SmrgPRE_SYSCALL(pwritev) 213981418a27Smrg(long long fd_, void *iovp_, long long iovcnt_, long long PAD_, 214081418a27Smrg long long offset_) { 214181418a27Smrg /* Nothing to do */ 214281418a27Smrg} 214381418a27SmrgPOST_SYSCALL(pwritev) 214481418a27Smrg(long long res, long long fd_, void *iovp_, long long iovcnt_, long long PAD_, 214581418a27Smrg long long offset_) { 214681418a27Smrg /* Nothing to do */ 214781418a27Smrg} 214881418a27SmrgPRE_SYSCALL(compat_16___sigaction14) 214981418a27Smrg(long long signum_, void *nsa_, void *osa_) { 215081418a27Smrg /* TODO */ 215181418a27Smrg} 215281418a27SmrgPOST_SYSCALL(compat_16___sigaction14) 215381418a27Smrg(long long res, long long signum_, void *nsa_, void *osa_) { 215481418a27Smrg /* TODO */ 215581418a27Smrg} 215681418a27SmrgPRE_SYSCALL(__sigpending14)(void *set_) { /* Nothing to do */ } 215781418a27SmrgPOST_SYSCALL(__sigpending14)(long long res, void *set_) { /* Nothing to do */ } 215881418a27SmrgPRE_SYSCALL(__sigprocmask14)(long long how_, void *set_, void *oset_) { 215981418a27Smrg /* Nothing to do */ 216081418a27Smrg} 216181418a27SmrgPOST_SYSCALL(__sigprocmask14) 216281418a27Smrg(long long res, long long how_, void *set_, void *oset_) { 216381418a27Smrg /* Nothing to do */ 216481418a27Smrg} 216581418a27SmrgPRE_SYSCALL(__sigsuspend14)(void *set_) { 216681418a27Smrg if (set_) { 216781418a27Smrg PRE_READ(set_, sizeof(__sanitizer_sigset_t)); 216881418a27Smrg } 216981418a27Smrg} 217081418a27SmrgPOST_SYSCALL(__sigsuspend14)(long long res, void *set_) { 217181418a27Smrg if (set_) { 217281418a27Smrg PRE_READ(set_, sizeof(__sanitizer_sigset_t)); 217381418a27Smrg } 217481418a27Smrg} 217581418a27SmrgPRE_SYSCALL(compat_16___sigreturn14)(void *sigcntxp_) { /* TODO */ } 217681418a27SmrgPOST_SYSCALL(compat_16___sigreturn14)(long long res, void *sigcntxp_) { 217781418a27Smrg /* TODO */ 217881418a27Smrg} 217981418a27SmrgPRE_SYSCALL(__getcwd)(void *bufp_, long long length_) { /* Nothing to do */ } 218081418a27SmrgPOST_SYSCALL(__getcwd)(long long res, void *bufp_, long long length_) { 218181418a27Smrg /* Nothing to do */ 218281418a27Smrg} 218381418a27SmrgPRE_SYSCALL(fchroot)(long long fd_) { /* Nothing to do */ } 218481418a27SmrgPOST_SYSCALL(fchroot)(long long res, long long fd_) { /* Nothing to do */ } 218581418a27SmrgPRE_SYSCALL(compat_30_fhopen)(void *fhp_, long long flags_) { /* TODO */ } 218681418a27SmrgPOST_SYSCALL(compat_30_fhopen)(long long res, void *fhp_, long long flags_) { 218781418a27Smrg /* TODO */ 218881418a27Smrg} 218981418a27SmrgPRE_SYSCALL(compat_30_fhstat)(void *fhp_, void *sb_) { /* TODO */ } 219081418a27SmrgPOST_SYSCALL(compat_30_fhstat)(long long res, void *fhp_, void *sb_) { 219181418a27Smrg /* TODO */ 219281418a27Smrg} 219381418a27SmrgPRE_SYSCALL(compat_20_fhstatfs)(void *fhp_, void *buf_) { /* TODO */ } 219481418a27SmrgPOST_SYSCALL(compat_20_fhstatfs)(long long res, void *fhp_, void *buf_) { 219581418a27Smrg /* TODO */ 219681418a27Smrg} 219781418a27SmrgPRE_SYSCALL(compat_50_____semctl13) 219881418a27Smrg(long long semid_, long long semnum_, long long cmd_, void *arg_) { 219981418a27Smrg /* TODO */ 220081418a27Smrg} 220181418a27SmrgPOST_SYSCALL(compat_50_____semctl13) 220281418a27Smrg(long long res, long long semid_, long long semnum_, long long cmd_, 220381418a27Smrg void *arg_) { 220481418a27Smrg /* TODO */ 220581418a27Smrg} 220681418a27SmrgPRE_SYSCALL(compat_50___msgctl13) 220781418a27Smrg(long long msqid_, long long cmd_, void *buf_) { 220881418a27Smrg /* TODO */ 220981418a27Smrg} 221081418a27SmrgPOST_SYSCALL(compat_50___msgctl13) 221181418a27Smrg(long long res, long long msqid_, long long cmd_, void *buf_) { 221281418a27Smrg /* TODO */ 221381418a27Smrg} 221481418a27SmrgPRE_SYSCALL(compat_50___shmctl13) 221581418a27Smrg(long long shmid_, long long cmd_, void *buf_) { 221681418a27Smrg /* TODO */ 221781418a27Smrg} 221881418a27SmrgPOST_SYSCALL(compat_50___shmctl13) 221981418a27Smrg(long long res, long long shmid_, long long cmd_, void *buf_) { 222081418a27Smrg /* TODO */ 222181418a27Smrg} 222281418a27SmrgPRE_SYSCALL(lchflags)(void *path_, long long flags_) { 222381418a27Smrg const char *path = (const char *)path_; 222481418a27Smrg if (path) { 222581418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 222681418a27Smrg } 222781418a27Smrg} 222881418a27SmrgPOST_SYSCALL(lchflags)(long long res, void *path_, long long flags_) { 222981418a27Smrg const char *path = (const char *)path_; 223081418a27Smrg if (path) { 223181418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 223281418a27Smrg } 223381418a27Smrg} 223481418a27SmrgPRE_SYSCALL(issetugid)(void) { /* Nothing to do */ } 223581418a27SmrgPOST_SYSCALL(issetugid)(long long res) { /* Nothing to do */ } 223681418a27SmrgPRE_SYSCALL(utrace)(void *label_, void *addr_, long long len_) { 223781418a27Smrg const char *label = (const char *)label_; 223881418a27Smrg if (label) { 223981418a27Smrg PRE_READ(label, __sanitizer::internal_strlen(label) + 1); 224081418a27Smrg } 224181418a27Smrg if (addr_) { 224281418a27Smrg PRE_READ(addr_, len_); 224381418a27Smrg } 224481418a27Smrg} 224581418a27SmrgPOST_SYSCALL(utrace)(long long res, void *label_, void *addr_, long long len_) { 224681418a27Smrg const char *label = (const char *)label_; 224781418a27Smrg if (label) { 224881418a27Smrg POST_READ(label, __sanitizer::internal_strlen(label) + 1); 224981418a27Smrg } 225081418a27Smrg if (addr_) { 225181418a27Smrg POST_READ(addr_, len_); 225281418a27Smrg } 225381418a27Smrg} 225481418a27SmrgPRE_SYSCALL(getcontext)(void *ucp_) { /* Nothing to do */ } 225581418a27SmrgPOST_SYSCALL(getcontext)(long long res, void *ucp_) { /* Nothing to do */ } 225681418a27SmrgPRE_SYSCALL(setcontext)(void *ucp_) { 225781418a27Smrg if (ucp_) { 225881418a27Smrg PRE_READ(ucp_, ucontext_t_sz); 225981418a27Smrg } 226081418a27Smrg} 226181418a27SmrgPOST_SYSCALL(setcontext)(long long res, void *ucp_) {} 226281418a27SmrgPRE_SYSCALL(_lwp_create)(void *ucp_, long long flags_, void *new_lwp_) { 226381418a27Smrg if (ucp_) { 226481418a27Smrg PRE_READ(ucp_, ucontext_t_sz); 226581418a27Smrg } 226681418a27Smrg} 226781418a27SmrgPOST_SYSCALL(_lwp_create) 226881418a27Smrg(long long res, void *ucp_, long long flags_, void *new_lwp_) {} 226981418a27SmrgPRE_SYSCALL(_lwp_exit)(void) { /* Nothing to do */ } 227081418a27SmrgPOST_SYSCALL(_lwp_exit)(long long res) { /* Nothing to do */ } 227181418a27SmrgPRE_SYSCALL(_lwp_self)(void) { /* Nothing to do */ } 227281418a27SmrgPOST_SYSCALL(_lwp_self)(long long res) { /* Nothing to do */ } 227381418a27SmrgPRE_SYSCALL(_lwp_wait)(long long wait_for_, void *departed_) { 227481418a27Smrg /* Nothing to do */ 227581418a27Smrg} 227681418a27SmrgPOST_SYSCALL(_lwp_wait)(long long res, long long wait_for_, void *departed_) { 227781418a27Smrg /* Nothing to do */ 227881418a27Smrg} 227981418a27SmrgPRE_SYSCALL(_lwp_suspend)(long long target_) { /* Nothing to do */ } 228081418a27SmrgPOST_SYSCALL(_lwp_suspend)(long long res, long long target_) { 228181418a27Smrg /* Nothing to do */ 228281418a27Smrg} 228381418a27SmrgPRE_SYSCALL(_lwp_continue)(long long target_) { /* Nothing to do */ } 228481418a27SmrgPOST_SYSCALL(_lwp_continue)(long long res, long long target_) { 228581418a27Smrg /* Nothing to do */ 228681418a27Smrg} 228781418a27SmrgPRE_SYSCALL(_lwp_wakeup)(long long target_) { /* Nothing to do */ } 228881418a27SmrgPOST_SYSCALL(_lwp_wakeup)(long long res, long long target_) { 228981418a27Smrg /* Nothing to do */ 229081418a27Smrg} 229181418a27SmrgPRE_SYSCALL(_lwp_getprivate)(void) { /* Nothing to do */ } 229281418a27SmrgPOST_SYSCALL(_lwp_getprivate)(long long res) { /* Nothing to do */ } 229381418a27SmrgPRE_SYSCALL(_lwp_setprivate)(void *ptr_) { /* Nothing to do */ } 229481418a27SmrgPOST_SYSCALL(_lwp_setprivate)(long long res, void *ptr_) { /* Nothing to do */ } 229581418a27SmrgPRE_SYSCALL(_lwp_kill)(long long target_, long long signo_) { 229681418a27Smrg /* Nothing to do */ 229781418a27Smrg} 229881418a27SmrgPOST_SYSCALL(_lwp_kill)(long long res, long long target_, long long signo_) { 229981418a27Smrg /* Nothing to do */ 230081418a27Smrg} 230181418a27SmrgPRE_SYSCALL(_lwp_detach)(long long target_) { /* Nothing to do */ } 230281418a27SmrgPOST_SYSCALL(_lwp_detach)(long long res, long long target_) { 230381418a27Smrg /* Nothing to do */ 230481418a27Smrg} 230581418a27SmrgPRE_SYSCALL(compat_50__lwp_park) 230681418a27Smrg(void *ts_, long long unpark_, void *hint_, void *unparkhint_) { 230781418a27Smrg /* TODO */ 230881418a27Smrg} 230981418a27SmrgPOST_SYSCALL(compat_50__lwp_park) 231081418a27Smrg(long long res, void *ts_, long long unpark_, void *hint_, void *unparkhint_) { 231181418a27Smrg /* TODO */ 231281418a27Smrg} 231381418a27SmrgPRE_SYSCALL(_lwp_unpark)(long long target_, void *hint_) { /* Nothing to do */ } 231481418a27SmrgPOST_SYSCALL(_lwp_unpark)(long long res, long long target_, void *hint_) { 231581418a27Smrg /* Nothing to do */ 231681418a27Smrg} 231781418a27SmrgPRE_SYSCALL(_lwp_unpark_all)(void *targets_, long long ntargets_, void *hint_) { 231881418a27Smrg if (targets_) { 231981418a27Smrg PRE_READ(targets_, ntargets_ * sizeof(__sanitizer_lwpid_t)); 232081418a27Smrg } 232181418a27Smrg} 232281418a27SmrgPOST_SYSCALL(_lwp_unpark_all) 232381418a27Smrg(long long res, void *targets_, long long ntargets_, void *hint_) {} 232481418a27SmrgPRE_SYSCALL(_lwp_setname)(long long target_, void *name_) { 232581418a27Smrg const char *name = (const char *)name_; 232681418a27Smrg if (name) { 232781418a27Smrg PRE_READ(name, __sanitizer::internal_strlen(name) + 1); 232881418a27Smrg } 232981418a27Smrg} 233081418a27SmrgPOST_SYSCALL(_lwp_setname)(long long res, long long target_, void *name_) { 233181418a27Smrg const char *name = (const char *)name_; 233281418a27Smrg if (name) { 233381418a27Smrg POST_READ(name, __sanitizer::internal_strlen(name) + 1); 233481418a27Smrg } 233581418a27Smrg} 233681418a27SmrgPRE_SYSCALL(_lwp_getname)(long long target_, void *name_, long long len_) { 233781418a27Smrg /* Nothing to do */ 233881418a27Smrg} 233981418a27SmrgPOST_SYSCALL(_lwp_getname) 234081418a27Smrg(long long res, long long target_, void *name_, long long len_) { 234181418a27Smrg /* Nothing to do */ 234281418a27Smrg} 234381418a27SmrgPRE_SYSCALL(_lwp_ctl)(long long features_, void **address_) { 234481418a27Smrg /* Nothing to do */ 234581418a27Smrg} 234681418a27SmrgPOST_SYSCALL(_lwp_ctl)(long long res, long long features_, void **address_) { 234781418a27Smrg /* Nothing to do */ 234881418a27Smrg} 234981418a27Smrg/* syscall 326 has been skipped */ 235081418a27Smrg/* syscall 327 has been skipped */ 235181418a27Smrg/* syscall 328 has been skipped */ 235281418a27Smrg/* syscall 329 has been skipped */ 235381418a27SmrgPRE_SYSCALL(compat_60_sa_register) 235481418a27Smrg(void *newv_, void **oldv_, long long flags_, long long stackinfo_offset_) { 235581418a27Smrg /* TODO */ 235681418a27Smrg} 235781418a27SmrgPOST_SYSCALL(compat_60_sa_register) 235881418a27Smrg(long long res, void *newv_, void **oldv_, long long flags_, 235981418a27Smrg long long stackinfo_offset_) { 236081418a27Smrg /* TODO */ 236181418a27Smrg} 236281418a27SmrgPRE_SYSCALL(compat_60_sa_stacks)(long long num_, void *stacks_) { /* TODO */ } 236381418a27SmrgPOST_SYSCALL(compat_60_sa_stacks) 236481418a27Smrg(long long res, long long num_, void *stacks_) { 236581418a27Smrg /* TODO */ 236681418a27Smrg} 236781418a27SmrgPRE_SYSCALL(compat_60_sa_enable)(void) { /* TODO */ } 236881418a27SmrgPOST_SYSCALL(compat_60_sa_enable)(long long res) { /* TODO */ } 236981418a27SmrgPRE_SYSCALL(compat_60_sa_setconcurrency)(long long concurrency_) { /* TODO */ } 237081418a27SmrgPOST_SYSCALL(compat_60_sa_setconcurrency) 237181418a27Smrg(long long res, long long concurrency_) { 237281418a27Smrg /* TODO */ 237381418a27Smrg} 237481418a27SmrgPRE_SYSCALL(compat_60_sa_yield)(void) { /* TODO */ } 237581418a27SmrgPOST_SYSCALL(compat_60_sa_yield)(long long res) { /* TODO */ } 237681418a27SmrgPRE_SYSCALL(compat_60_sa_preempt)(long long sa_id_) { /* TODO */ } 237781418a27SmrgPOST_SYSCALL(compat_60_sa_preempt)(long long res, long long sa_id_) { 237881418a27Smrg /* TODO */ 237981418a27Smrg} 238081418a27Smrg/* syscall 336 has been skipped */ 238181418a27Smrg/* syscall 337 has been skipped */ 238281418a27Smrg/* syscall 338 has been skipped */ 238381418a27Smrg/* syscall 339 has been skipped */ 238481418a27SmrgPRE_SYSCALL(__sigaction_sigtramp) 238581418a27Smrg(long long signum_, void *nsa_, void *osa_, void *tramp_, long long vers_) { 238681418a27Smrg if (nsa_) { 238781418a27Smrg PRE_READ(nsa_, sizeof(__sanitizer_sigaction)); 238881418a27Smrg } 238981418a27Smrg} 239081418a27SmrgPOST_SYSCALL(__sigaction_sigtramp) 239181418a27Smrg(long long res, long long signum_, void *nsa_, void *osa_, void *tramp_, 239281418a27Smrg long long vers_) { 239381418a27Smrg if (nsa_) { 239481418a27Smrg PRE_READ(nsa_, sizeof(__sanitizer_sigaction)); 239581418a27Smrg } 239681418a27Smrg} 23977bb5462dSkamil/* syscall 341 has been skipped */ 23987bb5462dSkamil/* syscall 342 has been skipped */ 239981418a27SmrgPRE_SYSCALL(rasctl)(void *addr_, long long len_, long long op_) { 240081418a27Smrg /* Nothing to do */ 240181418a27Smrg} 240281418a27SmrgPOST_SYSCALL(rasctl) 240381418a27Smrg(long long res, void *addr_, long long len_, long long op_) { 240481418a27Smrg /* Nothing to do */ 240581418a27Smrg} 240681418a27SmrgPRE_SYSCALL(kqueue)(void) { /* Nothing to do */ } 240781418a27SmrgPOST_SYSCALL(kqueue)(long long res) { /* Nothing to do */ } 240881418a27SmrgPRE_SYSCALL(compat_50_kevent) 240981418a27Smrg(long long fd_, void *changelist_, long long nchanges_, void *eventlist_, 241081418a27Smrg long long nevents_, void *timeout_) { 241181418a27Smrg /* TODO */ 241281418a27Smrg} 241381418a27SmrgPOST_SYSCALL(compat_50_kevent) 241481418a27Smrg(long long res, long long fd_, void *changelist_, long long nchanges_, 241581418a27Smrg void *eventlist_, long long nevents_, void *timeout_) { 241681418a27Smrg /* TODO */ 241781418a27Smrg} 241881418a27SmrgPRE_SYSCALL(_sched_setparam) 241981418a27Smrg(long long pid_, long long lid_, long long policy_, void *params_) { 242081418a27Smrg if (params_) { 242181418a27Smrg PRE_READ(params_, struct_sched_param_sz); 242281418a27Smrg } 242381418a27Smrg} 242481418a27SmrgPOST_SYSCALL(_sched_setparam) 242581418a27Smrg(long long res, long long pid_, long long lid_, long long policy_, 242681418a27Smrg void *params_) { 242781418a27Smrg if (params_) { 242881418a27Smrg PRE_READ(params_, struct_sched_param_sz); 242981418a27Smrg } 243081418a27Smrg} 243181418a27SmrgPRE_SYSCALL(_sched_getparam) 243281418a27Smrg(long long pid_, long long lid_, void *policy_, void *params_) { 243381418a27Smrg /* Nothing to do */ 243481418a27Smrg} 243581418a27SmrgPOST_SYSCALL(_sched_getparam) 243681418a27Smrg(long long res, long long pid_, long long lid_, void *policy_, void *params_) { 243781418a27Smrg /* Nothing to do */ 243881418a27Smrg} 243981418a27SmrgPRE_SYSCALL(_sched_setaffinity) 244081418a27Smrg(long long pid_, long long lid_, long long size_, void *cpuset_) { 244181418a27Smrg if (cpuset_) { 244281418a27Smrg PRE_READ(cpuset_, size_); 244381418a27Smrg } 244481418a27Smrg} 244581418a27SmrgPOST_SYSCALL(_sched_setaffinity) 244681418a27Smrg(long long res, long long pid_, long long lid_, long long size_, 244781418a27Smrg void *cpuset_) { 244881418a27Smrg if (cpuset_) { 244981418a27Smrg PRE_READ(cpuset_, size_); 245081418a27Smrg } 245181418a27Smrg} 245281418a27SmrgPRE_SYSCALL(_sched_getaffinity) 245381418a27Smrg(long long pid_, long long lid_, long long size_, void *cpuset_) { 245481418a27Smrg /* Nothing to do */ 245581418a27Smrg} 245681418a27SmrgPOST_SYSCALL(_sched_getaffinity) 245781418a27Smrg(long long res, long long pid_, long long lid_, long long size_, 245881418a27Smrg void *cpuset_) { 245981418a27Smrg /* Nothing to do */ 246081418a27Smrg} 246181418a27SmrgPRE_SYSCALL(sched_yield)(void) { /* Nothing to do */ } 246281418a27SmrgPOST_SYSCALL(sched_yield)(long long res) { /* Nothing to do */ } 246381418a27SmrgPRE_SYSCALL(_sched_protect)(long long priority_) { /* Nothing to do */ } 246481418a27SmrgPOST_SYSCALL(_sched_protect)(long long res, long long priority_) { 246581418a27Smrg /* Nothing to do */ 246681418a27Smrg} 246781418a27Smrg/* syscall 352 has been skipped */ 246881418a27Smrg/* syscall 353 has been skipped */ 246981418a27SmrgPRE_SYSCALL(fsync_range) 247081418a27Smrg(long long fd_, long long flags_, long long start_, long long length_) { 247181418a27Smrg /* Nothing to do */ 247281418a27Smrg} 247381418a27SmrgPOST_SYSCALL(fsync_range) 247481418a27Smrg(long long res, long long fd_, long long flags_, long long start_, 247581418a27Smrg long long length_) { 247681418a27Smrg /* Nothing to do */ 247781418a27Smrg} 247881418a27SmrgPRE_SYSCALL(uuidgen)(void *store_, long long count_) { /* Nothing to do */ } 247981418a27SmrgPOST_SYSCALL(uuidgen)(long long res, void *store_, long long count_) { 248081418a27Smrg /* Nothing to do */ 248181418a27Smrg} 24827bb5462dSkamilPRE_SYSCALL(compat_90_getvfsstat) 24837bb5462dSkamil(void *buf_, long long bufsize_, long long flags_) { 248481418a27Smrg /* Nothing to do */ 248581418a27Smrg} 24867bb5462dSkamilPOST_SYSCALL(compat_90_getvfsstat) 248781418a27Smrg(long long res, void *buf_, long long bufsize_, long long flags_) { 248881418a27Smrg /* Nothing to do */ 248981418a27Smrg} 24907bb5462dSkamilPRE_SYSCALL(compat_90_statvfs1)(void *path_, void *buf_, long long flags_) { 249181418a27Smrg const char *path = (const char *)path_; 249281418a27Smrg if (path) { 249381418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 249481418a27Smrg } 249581418a27Smrg} 24967bb5462dSkamilPOST_SYSCALL(compat_90_statvfs1) 249781418a27Smrg(long long res, void *path_, void *buf_, long long flags_) { 249881418a27Smrg const char *path = (const char *)path_; 249981418a27Smrg if (path) { 250081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 250181418a27Smrg } 250281418a27Smrg} 25037bb5462dSkamilPRE_SYSCALL(compat_90_fstatvfs1)(long long fd_, void *buf_, long long flags_) { 250481418a27Smrg /* Nothing to do */ 250581418a27Smrg} 25067bb5462dSkamilPOST_SYSCALL(compat_90_fstatvfs1) 250781418a27Smrg(long long res, long long fd_, void *buf_, long long flags_) { 250881418a27Smrg /* Nothing to do */ 250981418a27Smrg} 251081418a27SmrgPRE_SYSCALL(compat_30_fhstatvfs1)(void *fhp_, void *buf_, long long flags_) { 251181418a27Smrg /* TODO */ 251281418a27Smrg} 251381418a27SmrgPOST_SYSCALL(compat_30_fhstatvfs1) 251481418a27Smrg(long long res, void *fhp_, void *buf_, long long flags_) { 251581418a27Smrg /* TODO */ 251681418a27Smrg} 251781418a27SmrgPRE_SYSCALL(extattrctl) 251881418a27Smrg(void *path_, long long cmd_, void *filename_, long long attrnamespace_, 251981418a27Smrg void *attrname_) { 252081418a27Smrg const char *path = (const char *)path_; 252181418a27Smrg if (path) { 252281418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 252381418a27Smrg } 252481418a27Smrg} 252581418a27SmrgPOST_SYSCALL(extattrctl) 252681418a27Smrg(long long res, void *path_, long long cmd_, void *filename_, 252781418a27Smrg long long attrnamespace_, void *attrname_) { 252881418a27Smrg const char *path = (const char *)path_; 252981418a27Smrg if (path) { 253081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 253181418a27Smrg } 253281418a27Smrg} 253381418a27SmrgPRE_SYSCALL(extattr_set_file) 253481418a27Smrg(void *path_, long long attrnamespace_, void *attrname_, void *data_, 253581418a27Smrg long long nbytes_) { 253681418a27Smrg const char *path = (const char *)path_; 253781418a27Smrg if (path) { 253881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 253981418a27Smrg } 254081418a27Smrg} 254181418a27SmrgPOST_SYSCALL(extattr_set_file) 254281418a27Smrg(long long res, void *path_, long long attrnamespace_, void *attrname_, 254381418a27Smrg void *data_, long long nbytes_) { 254481418a27Smrg const char *path = (const char *)path_; 254581418a27Smrg if (path) { 254681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 254781418a27Smrg } 254881418a27Smrg} 254981418a27SmrgPRE_SYSCALL(extattr_get_file) 255081418a27Smrg(void *path_, long long attrnamespace_, void *attrname_, void *data_, 255181418a27Smrg long long nbytes_) { 255281418a27Smrg const char *path = (const char *)path_; 255381418a27Smrg if (path) { 255481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 255581418a27Smrg } 255681418a27Smrg} 255781418a27SmrgPOST_SYSCALL(extattr_get_file) 255881418a27Smrg(long long res, void *path_, long long attrnamespace_, void *attrname_, 255981418a27Smrg void *data_, long long nbytes_) { 256081418a27Smrg const char *path = (const char *)path_; 256181418a27Smrg if (path) { 256281418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 256381418a27Smrg } 256481418a27Smrg} 256581418a27SmrgPRE_SYSCALL(extattr_delete_file) 256681418a27Smrg(void *path_, long long attrnamespace_, void *attrname_) { 256781418a27Smrg const char *path = (const char *)path_; 256881418a27Smrg if (path) { 256981418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 257081418a27Smrg } 257181418a27Smrg} 257281418a27SmrgPOST_SYSCALL(extattr_delete_file) 257381418a27Smrg(long long res, void *path_, long long attrnamespace_, void *attrname_) { 257481418a27Smrg const char *path = (const char *)path_; 257581418a27Smrg if (path) { 257681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 257781418a27Smrg } 257881418a27Smrg} 257981418a27SmrgPRE_SYSCALL(extattr_set_fd) 258081418a27Smrg(long long fd_, long long attrnamespace_, void *attrname_, void *data_, 258181418a27Smrg long long nbytes_) { 258281418a27Smrg /* TODO */ 258381418a27Smrg} 258481418a27SmrgPOST_SYSCALL(extattr_set_fd) 258581418a27Smrg(long long res, long long fd_, long long attrnamespace_, void *attrname_, 258681418a27Smrg void *data_, long long nbytes_) { 258781418a27Smrg /* TODO */ 258881418a27Smrg} 258981418a27SmrgPRE_SYSCALL(extattr_get_fd) 259081418a27Smrg(long long fd_, long long attrnamespace_, void *attrname_, void *data_, 259181418a27Smrg long long nbytes_) { 259281418a27Smrg /* TODO */ 259381418a27Smrg} 259481418a27SmrgPOST_SYSCALL(extattr_get_fd) 259581418a27Smrg(long long res, long long fd_, long long attrnamespace_, void *attrname_, 259681418a27Smrg void *data_, long long nbytes_) { 259781418a27Smrg /* TODO */ 259881418a27Smrg} 259981418a27SmrgPRE_SYSCALL(extattr_delete_fd) 260081418a27Smrg(long long fd_, long long attrnamespace_, void *attrname_) { 260181418a27Smrg /* TODO */ 260281418a27Smrg} 260381418a27SmrgPOST_SYSCALL(extattr_delete_fd) 260481418a27Smrg(long long res, long long fd_, long long attrnamespace_, void *attrname_) { 260581418a27Smrg /* TODO */ 260681418a27Smrg} 260781418a27SmrgPRE_SYSCALL(extattr_set_link) 260881418a27Smrg(void *path_, long long attrnamespace_, void *attrname_, void *data_, 260981418a27Smrg long long nbytes_) { 261081418a27Smrg const char *path = (const char *)path_; 261181418a27Smrg if (path) { 261281418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 261381418a27Smrg } 261481418a27Smrg} 261581418a27SmrgPOST_SYSCALL(extattr_set_link) 261681418a27Smrg(long long res, void *path_, long long attrnamespace_, void *attrname_, 261781418a27Smrg void *data_, long long nbytes_) { 261881418a27Smrg const char *path = (const char *)path_; 261981418a27Smrg if (path) { 262081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 262181418a27Smrg } 262281418a27Smrg} 262381418a27SmrgPRE_SYSCALL(extattr_get_link) 262481418a27Smrg(void *path_, long long attrnamespace_, void *attrname_, void *data_, 262581418a27Smrg long long nbytes_) { 262681418a27Smrg const char *path = (const char *)path_; 262781418a27Smrg if (path) { 262881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 262981418a27Smrg } 263081418a27Smrg} 263181418a27SmrgPOST_SYSCALL(extattr_get_link) 263281418a27Smrg(long long res, void *path_, long long attrnamespace_, void *attrname_, 263381418a27Smrg void *data_, long long nbytes_) { 263481418a27Smrg const char *path = (const char *)path_; 263581418a27Smrg if (path) { 263681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 263781418a27Smrg } 263881418a27Smrg} 263981418a27SmrgPRE_SYSCALL(extattr_delete_link) 264081418a27Smrg(void *path_, long long attrnamespace_, void *attrname_) { 264181418a27Smrg const char *path = (const char *)path_; 264281418a27Smrg if (path) { 264381418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 264481418a27Smrg } 264581418a27Smrg} 264681418a27SmrgPOST_SYSCALL(extattr_delete_link) 264781418a27Smrg(long long res, void *path_, long long attrnamespace_, void *attrname_) { 264881418a27Smrg const char *path = (const char *)path_; 264981418a27Smrg if (path) { 265081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 265181418a27Smrg } 265281418a27Smrg} 265381418a27SmrgPRE_SYSCALL(extattr_list_fd) 265481418a27Smrg(long long fd_, long long attrnamespace_, void *data_, long long nbytes_) { 265581418a27Smrg /* TODO */ 265681418a27Smrg} 265781418a27SmrgPOST_SYSCALL(extattr_list_fd) 265881418a27Smrg(long long res, long long fd_, long long attrnamespace_, void *data_, 265981418a27Smrg long long nbytes_) { 266081418a27Smrg /* TODO */ 266181418a27Smrg} 266281418a27SmrgPRE_SYSCALL(extattr_list_file) 266381418a27Smrg(void *path_, long long attrnamespace_, void *data_, long long nbytes_) { 266481418a27Smrg const char *path = (const char *)path_; 266581418a27Smrg if (path) { 266681418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 266781418a27Smrg } 266881418a27Smrg} 266981418a27SmrgPOST_SYSCALL(extattr_list_file) 267081418a27Smrg(long long res, void *path_, long long attrnamespace_, void *data_, 267181418a27Smrg long long nbytes_) { 267281418a27Smrg const char *path = (const char *)path_; 267381418a27Smrg if (path) { 267481418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 267581418a27Smrg } 267681418a27Smrg} 267781418a27SmrgPRE_SYSCALL(extattr_list_link) 267881418a27Smrg(void *path_, long long attrnamespace_, void *data_, long long nbytes_) { 267981418a27Smrg const char *path = (const char *)path_; 268081418a27Smrg if (path) { 268181418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 268281418a27Smrg } 268381418a27Smrg} 268481418a27SmrgPOST_SYSCALL(extattr_list_link) 268581418a27Smrg(long long res, void *path_, long long attrnamespace_, void *data_, 268681418a27Smrg long long nbytes_) { 268781418a27Smrg const char *path = (const char *)path_; 268881418a27Smrg if (path) { 268981418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 269081418a27Smrg } 269181418a27Smrg} 269281418a27SmrgPRE_SYSCALL(compat_50_pselect) 269381418a27Smrg(long long nd_, void *in_, void *ou_, void *ex_, void *ts_, void *mask_) { 269481418a27Smrg /* TODO */ 269581418a27Smrg} 269681418a27SmrgPOST_SYSCALL(compat_50_pselect) 269781418a27Smrg(long long res, long long nd_, void *in_, void *ou_, void *ex_, void *ts_, 269881418a27Smrg void *mask_) { 269981418a27Smrg /* TODO */ 270081418a27Smrg} 270181418a27SmrgPRE_SYSCALL(compat_50_pollts) 270281418a27Smrg(void *fds_, long long nfds_, void *ts_, void *mask_) { 270381418a27Smrg /* TODO */ 270481418a27Smrg} 270581418a27SmrgPOST_SYSCALL(compat_50_pollts) 270681418a27Smrg(long long res, void *fds_, long long nfds_, void *ts_, void *mask_) { 270781418a27Smrg /* TODO */ 270881418a27Smrg} 270981418a27SmrgPRE_SYSCALL(setxattr) 271081418a27Smrg(void *path_, void *name_, void *value_, long long size_, long long flags_) { 271181418a27Smrg const char *path = (const char *)path_; 271281418a27Smrg if (path) { 271381418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 271481418a27Smrg } 271581418a27Smrg} 271681418a27SmrgPOST_SYSCALL(setxattr) 271781418a27Smrg(long long res, void *path_, void *name_, void *value_, long long size_, 271881418a27Smrg long long flags_) { 271981418a27Smrg const char *path = (const char *)path_; 272081418a27Smrg if (path) { 272181418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 272281418a27Smrg } 272381418a27Smrg} 272481418a27SmrgPRE_SYSCALL(lsetxattr) 272581418a27Smrg(void *path_, void *name_, void *value_, long long size_, long long flags_) { 272681418a27Smrg const char *path = (const char *)path_; 272781418a27Smrg if (path) { 272881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 272981418a27Smrg } 273081418a27Smrg} 273181418a27SmrgPOST_SYSCALL(lsetxattr) 273281418a27Smrg(long long res, void *path_, void *name_, void *value_, long long size_, 273381418a27Smrg long long flags_) { 273481418a27Smrg const char *path = (const char *)path_; 273581418a27Smrg if (path) { 273681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 273781418a27Smrg } 273881418a27Smrg} 273981418a27SmrgPRE_SYSCALL(fsetxattr) 274081418a27Smrg(long long fd_, void *name_, void *value_, long long size_, long long flags_) { 274181418a27Smrg /* Nothing to do */ 274281418a27Smrg} 274381418a27SmrgPOST_SYSCALL(fsetxattr) 274481418a27Smrg(long long res, long long fd_, void *name_, void *value_, long long size_, 274581418a27Smrg long long flags_) { 274681418a27Smrg /* Nothing to do */ 274781418a27Smrg} 274881418a27SmrgPRE_SYSCALL(getxattr)(void *path_, void *name_, void *value_, long long size_) { 274981418a27Smrg const char *path = (const char *)path_; 275081418a27Smrg if (path) { 275181418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 275281418a27Smrg } 275381418a27Smrg} 275481418a27SmrgPOST_SYSCALL(getxattr) 275581418a27Smrg(long long res, void *path_, void *name_, void *value_, long long size_) { 275681418a27Smrg const char *path = (const char *)path_; 275781418a27Smrg if (path) { 275881418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 275981418a27Smrg } 276081418a27Smrg} 276181418a27SmrgPRE_SYSCALL(lgetxattr) 276281418a27Smrg(void *path_, void *name_, void *value_, long long size_) { 276381418a27Smrg const char *path = (const char *)path_; 276481418a27Smrg if (path) { 276581418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 276681418a27Smrg } 276781418a27Smrg} 276881418a27SmrgPOST_SYSCALL(lgetxattr) 276981418a27Smrg(long long res, void *path_, void *name_, void *value_, long long size_) { 277081418a27Smrg const char *path = (const char *)path_; 277181418a27Smrg if (path) { 277281418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 277381418a27Smrg } 277481418a27Smrg} 277581418a27SmrgPRE_SYSCALL(fgetxattr) 277681418a27Smrg(long long fd_, void *name_, void *value_, long long size_) { 277781418a27Smrg /* Nothing to do */ 277881418a27Smrg} 277981418a27SmrgPOST_SYSCALL(fgetxattr) 278081418a27Smrg(long long res, long long fd_, void *name_, void *value_, long long size_) { 278181418a27Smrg /* Nothing to do */ 278281418a27Smrg} 278381418a27SmrgPRE_SYSCALL(listxattr)(void *path_, void *list_, long long size_) { 278481418a27Smrg const char *path = (const char *)path_; 278581418a27Smrg if (path) { 278681418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 278781418a27Smrg } 278881418a27Smrg} 278981418a27SmrgPOST_SYSCALL(listxattr) 279081418a27Smrg(long long res, void *path_, void *list_, long long size_) { 279181418a27Smrg const char *path = (const char *)path_; 279281418a27Smrg if (path) { 279381418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 279481418a27Smrg } 279581418a27Smrg} 279681418a27SmrgPRE_SYSCALL(llistxattr)(void *path_, void *list_, long long size_) { 279781418a27Smrg const char *path = (const char *)path_; 279881418a27Smrg if (path) { 279981418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 280081418a27Smrg } 280181418a27Smrg} 280281418a27SmrgPOST_SYSCALL(llistxattr) 280381418a27Smrg(long long res, void *path_, void *list_, long long size_) { 280481418a27Smrg const char *path = (const char *)path_; 280581418a27Smrg if (path) { 280681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 280781418a27Smrg } 280881418a27Smrg} 280981418a27SmrgPRE_SYSCALL(flistxattr)(long long fd_, void *list_, long long size_) { 281081418a27Smrg /* TODO */ 281181418a27Smrg} 281281418a27SmrgPOST_SYSCALL(flistxattr) 281381418a27Smrg(long long res, long long fd_, void *list_, long long size_) { 281481418a27Smrg /* TODO */ 281581418a27Smrg} 281681418a27SmrgPRE_SYSCALL(removexattr)(void *path_, void *name_) { 281781418a27Smrg const char *path = (const char *)path_; 281881418a27Smrg if (path) { 281981418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 282081418a27Smrg } 282181418a27Smrg} 282281418a27SmrgPOST_SYSCALL(removexattr)(long long res, void *path_, void *name_) { 282381418a27Smrg const char *path = (const char *)path_; 282481418a27Smrg if (path) { 282581418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 282681418a27Smrg } 282781418a27Smrg} 282881418a27SmrgPRE_SYSCALL(lremovexattr)(void *path_, void *name_) { 282981418a27Smrg const char *path = (const char *)path_; 283081418a27Smrg if (path) { 283181418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 283281418a27Smrg } 283381418a27Smrg} 283481418a27SmrgPOST_SYSCALL(lremovexattr)(long long res, void *path_, void *name_) { 283581418a27Smrg const char *path = (const char *)path_; 283681418a27Smrg if (path) { 283781418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 283881418a27Smrg } 283981418a27Smrg} 284081418a27SmrgPRE_SYSCALL(fremovexattr)(long long fd_, void *name_) { /* TODO */ } 284181418a27SmrgPOST_SYSCALL(fremovexattr)(long long res, long long fd_, void *name_) { 284281418a27Smrg /* TODO */ 284381418a27Smrg} 284481418a27SmrgPRE_SYSCALL(compat_50___stat30)(void *path_, void *ub_) { /* TODO */ } 284581418a27SmrgPOST_SYSCALL(compat_50___stat30)(long long res, void *path_, void *ub_) { 284681418a27Smrg /* TODO */ 284781418a27Smrg} 284881418a27SmrgPRE_SYSCALL(compat_50___fstat30)(long long fd_, void *sb_) { /* TODO */ } 284981418a27SmrgPOST_SYSCALL(compat_50___fstat30)(long long res, long long fd_, void *sb_) { 285081418a27Smrg /* TODO */ 285181418a27Smrg} 285281418a27SmrgPRE_SYSCALL(compat_50___lstat30)(void *path_, void *ub_) { /* TODO */ } 285381418a27SmrgPOST_SYSCALL(compat_50___lstat30)(long long res, void *path_, void *ub_) { 285481418a27Smrg /* TODO */ 285581418a27Smrg} 285681418a27SmrgPRE_SYSCALL(__getdents30)(long long fd_, void *buf_, long long count_) { 285781418a27Smrg /* Nothing to do */ 285881418a27Smrg} 285981418a27SmrgPOST_SYSCALL(__getdents30) 286081418a27Smrg(long long res, long long fd_, void *buf_, long long count_) { 286181418a27Smrg /* Nothing to do */ 286281418a27Smrg} 286381418a27SmrgPRE_SYSCALL(posix_fadvise)(long long) { /* Nothing to do */ } 286481418a27SmrgPOST_SYSCALL(posix_fadvise)(long long res, long long) { /* Nothing to do */ } 286581418a27SmrgPRE_SYSCALL(compat_30___fhstat30)(void *fhp_, void *sb_) { /* TODO */ } 286681418a27SmrgPOST_SYSCALL(compat_30___fhstat30)(long long res, void *fhp_, void *sb_) { 286781418a27Smrg /* TODO */ 286881418a27Smrg} 286981418a27SmrgPRE_SYSCALL(compat_50___ntp_gettime30)(void *ntvp_) { /* TODO */ } 287081418a27SmrgPOST_SYSCALL(compat_50___ntp_gettime30)(long long res, void *ntvp_) { 287181418a27Smrg /* TODO */ 287281418a27Smrg} 287381418a27SmrgPRE_SYSCALL(__socket30) 287481418a27Smrg(long long domain_, long long type_, long long protocol_) { 287581418a27Smrg /* Nothing to do */ 287681418a27Smrg} 287781418a27SmrgPOST_SYSCALL(__socket30) 287881418a27Smrg(long long res, long long domain_, long long type_, long long protocol_) { 287981418a27Smrg /* Nothing to do */ 288081418a27Smrg} 288181418a27SmrgPRE_SYSCALL(__getfh30)(void *fname_, void *fhp_, void *fh_size_) { 288281418a27Smrg const char *fname = (const char *)fname_; 288381418a27Smrg if (fname) { 288481418a27Smrg PRE_READ(fname, __sanitizer::internal_strlen(fname) + 1); 288581418a27Smrg } 288681418a27Smrg} 288781418a27SmrgPOST_SYSCALL(__getfh30) 288881418a27Smrg(long long res, void *fname_, void *fhp_, void *fh_size_) { 288981418a27Smrg const char *fname = (const char *)fname_; 289081418a27Smrg if (res == 0) { 289181418a27Smrg if (fname) { 289281418a27Smrg POST_READ(fname, __sanitizer::internal_strlen(fname) + 1); 289381418a27Smrg } 289481418a27Smrg } 289581418a27Smrg} 289681418a27SmrgPRE_SYSCALL(__fhopen40)(void *fhp_, long long fh_size_, long long flags_) { 289781418a27Smrg if (fhp_) { 289881418a27Smrg PRE_READ(fhp_, fh_size_); 289981418a27Smrg } 290081418a27Smrg} 290181418a27SmrgPOST_SYSCALL(__fhopen40) 290281418a27Smrg(long long res, void *fhp_, long long fh_size_, long long flags_) {} 29037bb5462dSkamilPRE_SYSCALL(compat_90_fhstatvfs1) 290481418a27Smrg(void *fhp_, long long fh_size_, void *buf_, long long flags_) { 290581418a27Smrg if (fhp_) { 290681418a27Smrg PRE_READ(fhp_, fh_size_); 290781418a27Smrg } 290881418a27Smrg} 29097bb5462dSkamilPOST_SYSCALL(compat_90_fhstatvfs1) 291081418a27Smrg(long long res, void *fhp_, long long fh_size_, void *buf_, long long flags_) {} 291181418a27SmrgPRE_SYSCALL(compat_50___fhstat40)(void *fhp_, long long fh_size_, void *sb_) { 291281418a27Smrg if (fhp_) { 291381418a27Smrg PRE_READ(fhp_, fh_size_); 291481418a27Smrg } 291581418a27Smrg} 291681418a27SmrgPOST_SYSCALL(compat_50___fhstat40) 291781418a27Smrg(long long res, void *fhp_, long long fh_size_, void *sb_) {} 291881418a27SmrgPRE_SYSCALL(aio_cancel)(long long fildes_, void *aiocbp_) { 291981418a27Smrg if (aiocbp_) { 292081418a27Smrg PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb)); 292181418a27Smrg } 292281418a27Smrg} 292381418a27SmrgPOST_SYSCALL(aio_cancel)(long long res, long long fildes_, void *aiocbp_) {} 292481418a27SmrgPRE_SYSCALL(aio_error)(void *aiocbp_) { 292581418a27Smrg if (aiocbp_) { 292681418a27Smrg PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb)); 292781418a27Smrg } 292881418a27Smrg} 292981418a27SmrgPOST_SYSCALL(aio_error)(long long res, void *aiocbp_) {} 293081418a27SmrgPRE_SYSCALL(aio_fsync)(long long op_, void *aiocbp_) { 293181418a27Smrg if (aiocbp_) { 293281418a27Smrg PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb)); 293381418a27Smrg } 293481418a27Smrg} 293581418a27SmrgPOST_SYSCALL(aio_fsync)(long long res, long long op_, void *aiocbp_) {} 293681418a27SmrgPRE_SYSCALL(aio_read)(void *aiocbp_) { 293781418a27Smrg if (aiocbp_) { 293881418a27Smrg PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb)); 293981418a27Smrg } 294081418a27Smrg} 294181418a27SmrgPOST_SYSCALL(aio_read)(long long res, void *aiocbp_) {} 294281418a27SmrgPRE_SYSCALL(aio_return)(void *aiocbp_) { 294381418a27Smrg if (aiocbp_) { 294481418a27Smrg PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb)); 294581418a27Smrg } 294681418a27Smrg} 294781418a27SmrgPOST_SYSCALL(aio_return)(long long res, void *aiocbp_) {} 294881418a27SmrgPRE_SYSCALL(compat_50_aio_suspend) 294981418a27Smrg(void *list_, long long nent_, void *timeout_) { 295081418a27Smrg /* TODO */ 295181418a27Smrg} 295281418a27SmrgPOST_SYSCALL(compat_50_aio_suspend) 295381418a27Smrg(long long res, void *list_, long long nent_, void *timeout_) { 295481418a27Smrg /* TODO */ 295581418a27Smrg} 295681418a27SmrgPRE_SYSCALL(aio_write)(void *aiocbp_) { 295781418a27Smrg if (aiocbp_) { 295881418a27Smrg PRE_READ(aiocbp_, sizeof(struct __sanitizer_aiocb)); 295981418a27Smrg } 296081418a27Smrg} 296181418a27SmrgPOST_SYSCALL(aio_write)(long long res, void *aiocbp_) {} 296281418a27SmrgPRE_SYSCALL(lio_listio) 296381418a27Smrg(long long mode_, void *list_, long long nent_, void *sig_) { 296481418a27Smrg /* Nothing to do */ 296581418a27Smrg} 296681418a27SmrgPOST_SYSCALL(lio_listio) 296781418a27Smrg(long long res, long long mode_, void *list_, long long nent_, void *sig_) { 296881418a27Smrg /* Nothing to do */ 296981418a27Smrg} 297081418a27Smrg/* syscall 407 has been skipped */ 297181418a27Smrg/* syscall 408 has been skipped */ 297281418a27Smrg/* syscall 409 has been skipped */ 297381418a27SmrgPRE_SYSCALL(__mount50) 297481418a27Smrg(void *type_, void *path_, long long flags_, void *data_, long long data_len_) { 297581418a27Smrg const char *type = (const char *)type_; 297681418a27Smrg const char *path = (const char *)path_; 297781418a27Smrg if (type) { 297881418a27Smrg PRE_READ(type, __sanitizer::internal_strlen(type) + 1); 297981418a27Smrg } 298081418a27Smrg if (path) { 298181418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 298281418a27Smrg } 298381418a27Smrg if (data_) { 298481418a27Smrg PRE_READ(data_, data_len_); 298581418a27Smrg } 298681418a27Smrg} 298781418a27SmrgPOST_SYSCALL(__mount50) 298881418a27Smrg(long long res, void *type_, void *path_, long long flags_, void *data_, 298981418a27Smrg long long data_len_) { 299081418a27Smrg const char *type = (const char *)type_; 299181418a27Smrg const char *path = (const char *)path_; 299281418a27Smrg if (type) { 299381418a27Smrg POST_READ(type, __sanitizer::internal_strlen(type) + 1); 299481418a27Smrg } 299581418a27Smrg if (path) { 299681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 299781418a27Smrg } 299881418a27Smrg if (data_) { 299981418a27Smrg POST_READ(data_, data_len_); 300081418a27Smrg } 300181418a27Smrg} 300281418a27SmrgPRE_SYSCALL(mremap) 300381418a27Smrg(void *old_address_, long long old_size_, void *new_address_, 300481418a27Smrg long long new_size_, long long flags_) { 300581418a27Smrg /* Nothing to do */ 300681418a27Smrg} 300781418a27SmrgPOST_SYSCALL(mremap) 300881418a27Smrg(long long res, void *old_address_, long long old_size_, void *new_address_, 300981418a27Smrg long long new_size_, long long flags_) { 301081418a27Smrg /* Nothing to do */ 301181418a27Smrg} 301281418a27SmrgPRE_SYSCALL(pset_create)(void *psid_) { /* Nothing to do */ } 301381418a27SmrgPOST_SYSCALL(pset_create)(long long res, void *psid_) { /* Nothing to do */ } 301481418a27SmrgPRE_SYSCALL(pset_destroy)(long long psid_) { /* Nothing to do */ } 301581418a27SmrgPOST_SYSCALL(pset_destroy)(long long res, long long psid_) { 301681418a27Smrg /* Nothing to do */ 301781418a27Smrg} 301881418a27SmrgPRE_SYSCALL(pset_assign)(long long psid_, long long cpuid_, void *opsid_) { 301981418a27Smrg /* Nothing to do */ 302081418a27Smrg} 302181418a27SmrgPOST_SYSCALL(pset_assign) 302281418a27Smrg(long long res, long long psid_, long long cpuid_, void *opsid_) { 302381418a27Smrg /* Nothing to do */ 302481418a27Smrg} 302581418a27SmrgPRE_SYSCALL(_pset_bind) 302681418a27Smrg(long long idtype_, long long first_id_, long long second_id_, long long psid_, 302781418a27Smrg void *opsid_) { 302881418a27Smrg /* Nothing to do */ 302981418a27Smrg} 303081418a27SmrgPOST_SYSCALL(_pset_bind) 303181418a27Smrg(long long res, long long idtype_, long long first_id_, long long second_id_, 303281418a27Smrg long long psid_, void *opsid_) { 303381418a27Smrg /* Nothing to do */ 303481418a27Smrg} 303581418a27SmrgPRE_SYSCALL(__posix_fadvise50) 303681418a27Smrg(long long fd_, long long PAD_, long long offset_, long long len_, 303781418a27Smrg long long advice_) { 303881418a27Smrg /* Nothing to do */ 303981418a27Smrg} 304081418a27SmrgPOST_SYSCALL(__posix_fadvise50) 304181418a27Smrg(long long res, long long fd_, long long PAD_, long long offset_, 304281418a27Smrg long long len_, long long advice_) { 304381418a27Smrg /* Nothing to do */ 304481418a27Smrg} 304581418a27SmrgPRE_SYSCALL(__select50) 304681418a27Smrg(long long nd_, void *in_, void *ou_, void *ex_, void *tv_) { 304781418a27Smrg /* Nothing to do */ 304881418a27Smrg} 304981418a27SmrgPOST_SYSCALL(__select50) 305081418a27Smrg(long long res, long long nd_, void *in_, void *ou_, void *ex_, void *tv_) { 305181418a27Smrg /* Nothing to do */ 305281418a27Smrg} 305381418a27SmrgPRE_SYSCALL(__gettimeofday50)(void *tp_, void *tzp_) { /* Nothing to do */ } 305481418a27SmrgPOST_SYSCALL(__gettimeofday50)(long long res, void *tp_, void *tzp_) { 305581418a27Smrg /* Nothing to do */ 305681418a27Smrg} 305781418a27SmrgPRE_SYSCALL(__settimeofday50)(void *tv_, void *tzp_) { 305881418a27Smrg if (tv_) { 305981418a27Smrg PRE_READ(tv_, timeval_sz); 306081418a27Smrg } 306181418a27Smrg if (tzp_) { 306281418a27Smrg PRE_READ(tzp_, struct_timezone_sz); 306381418a27Smrg } 306481418a27Smrg} 306581418a27SmrgPOST_SYSCALL(__settimeofday50)(long long res, void *tv_, void *tzp_) {} 306681418a27SmrgPRE_SYSCALL(__utimes50)(void *path_, void *tptr_) { 306781418a27Smrg struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_; 306881418a27Smrg const char *path = (const char *)path_; 306981418a27Smrg if (path) { 307081418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 307181418a27Smrg } 307281418a27Smrg if (tptr) { 307381418a27Smrg PRE_READ(tptr[0], struct_timespec_sz); 307481418a27Smrg PRE_READ(tptr[1], struct_timespec_sz); 307581418a27Smrg } 307681418a27Smrg} 307781418a27SmrgPOST_SYSCALL(__utimes50)(long long res, void *path_, void *tptr_) {} 307881418a27SmrgPRE_SYSCALL(__adjtime50)(void *delta_, void *olddelta_) { 307981418a27Smrg if (delta_) { 308081418a27Smrg PRE_READ(delta_, timeval_sz); 308181418a27Smrg } 308281418a27Smrg} 308381418a27SmrgPOST_SYSCALL(__adjtime50)(long long res, void *delta_, void *olddelta_) {} 308481418a27SmrgPRE_SYSCALL(__lfs_segwait50)(void *fsidp_, void *tv_) { /* TODO */ } 308581418a27SmrgPOST_SYSCALL(__lfs_segwait50)(long long res, void *fsidp_, void *tv_) { 308681418a27Smrg /* TODO */ 308781418a27Smrg} 308881418a27SmrgPRE_SYSCALL(__futimes50)(long long fd_, void *tptr_) { 308981418a27Smrg struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_; 309081418a27Smrg if (tptr) { 309181418a27Smrg PRE_READ(tptr[0], struct_timespec_sz); 309281418a27Smrg PRE_READ(tptr[1], struct_timespec_sz); 309381418a27Smrg } 309481418a27Smrg} 309581418a27SmrgPOST_SYSCALL(__futimes50)(long long res, long long fd_, void *tptr_) {} 309681418a27SmrgPRE_SYSCALL(__lutimes50)(void *path_, void *tptr_) { 309781418a27Smrg struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_; 309881418a27Smrg const char *path = (const char *)path_; 309981418a27Smrg if (path) { 310081418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 310181418a27Smrg } 310281418a27Smrg if (tptr) { 310381418a27Smrg PRE_READ(tptr[0], struct_timespec_sz); 310481418a27Smrg PRE_READ(tptr[1], struct_timespec_sz); 310581418a27Smrg } 310681418a27Smrg} 310781418a27SmrgPOST_SYSCALL(__lutimes50)(long long res, void *path_, void *tptr_) { 310881418a27Smrg struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_; 310981418a27Smrg const char *path = (const char *)path_; 311081418a27Smrg if (path) { 311181418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 311281418a27Smrg } 311381418a27Smrg if (tptr) { 311481418a27Smrg POST_READ(tptr[0], struct_timespec_sz); 311581418a27Smrg POST_READ(tptr[1], struct_timespec_sz); 311681418a27Smrg } 311781418a27Smrg} 311881418a27SmrgPRE_SYSCALL(__setitimer50)(long long which_, void *itv_, void *oitv_) { 311981418a27Smrg struct __sanitizer_itimerval *itv = (struct __sanitizer_itimerval *)itv_; 312081418a27Smrg if (itv) { 312181418a27Smrg PRE_READ(&itv->it_interval.tv_sec, sizeof(__sanitizer_time_t)); 312281418a27Smrg PRE_READ(&itv->it_interval.tv_usec, sizeof(__sanitizer_suseconds_t)); 312381418a27Smrg PRE_READ(&itv->it_value.tv_sec, sizeof(__sanitizer_time_t)); 312481418a27Smrg PRE_READ(&itv->it_value.tv_usec, sizeof(__sanitizer_suseconds_t)); 312581418a27Smrg } 312681418a27Smrg} 312781418a27SmrgPOST_SYSCALL(__setitimer50) 312881418a27Smrg(long long res, long long which_, void *itv_, void *oitv_) {} 312981418a27SmrgPRE_SYSCALL(__getitimer50)(long long which_, void *itv_) { /* Nothing to do */ } 313081418a27SmrgPOST_SYSCALL(__getitimer50)(long long res, long long which_, void *itv_) { 313181418a27Smrg /* Nothing to do */ 313281418a27Smrg} 313381418a27SmrgPRE_SYSCALL(__clock_gettime50)(long long clock_id_, void *tp_) { 313481418a27Smrg /* Nothing to do */ 313581418a27Smrg} 313681418a27SmrgPOST_SYSCALL(__clock_gettime50)(long long res, long long clock_id_, void *tp_) { 313781418a27Smrg /* Nothing to do */ 313881418a27Smrg} 313981418a27SmrgPRE_SYSCALL(__clock_settime50)(long long clock_id_, void *tp_) { 314081418a27Smrg if (tp_) { 314181418a27Smrg PRE_READ(tp_, struct_timespec_sz); 314281418a27Smrg } 314381418a27Smrg} 314481418a27SmrgPOST_SYSCALL(__clock_settime50) 314581418a27Smrg(long long res, long long clock_id_, void *tp_) {} 314681418a27SmrgPRE_SYSCALL(__clock_getres50)(long long clock_id_, void *tp_) { 314781418a27Smrg /* Nothing to do */ 314881418a27Smrg} 314981418a27SmrgPOST_SYSCALL(__clock_getres50)(long long res, long long clock_id_, void *tp_) { 315081418a27Smrg /* Nothing to do */ 315181418a27Smrg} 315281418a27SmrgPRE_SYSCALL(__nanosleep50)(void *rqtp_, void *rmtp_) { 315381418a27Smrg if (rqtp_) { 315481418a27Smrg PRE_READ(rqtp_, struct_timespec_sz); 315581418a27Smrg } 315681418a27Smrg} 315781418a27SmrgPOST_SYSCALL(__nanosleep50)(long long res, void *rqtp_, void *rmtp_) {} 315881418a27SmrgPRE_SYSCALL(____sigtimedwait50)(void *set_, void *info_, void *timeout_) { 315981418a27Smrg if (set_) { 316081418a27Smrg PRE_READ(set_, sizeof(__sanitizer_sigset_t)); 316181418a27Smrg } 316281418a27Smrg if (timeout_) { 316381418a27Smrg PRE_READ(timeout_, struct_timespec_sz); 316481418a27Smrg } 316581418a27Smrg} 316681418a27SmrgPOST_SYSCALL(____sigtimedwait50) 316781418a27Smrg(long long res, void *set_, void *info_, void *timeout_) {} 316881418a27SmrgPRE_SYSCALL(__mq_timedsend50) 316981418a27Smrg(long long mqdes_, void *msg_ptr_, long long msg_len_, long long msg_prio_, 317081418a27Smrg void *abs_timeout_) { 317181418a27Smrg if (msg_ptr_) { 317281418a27Smrg PRE_READ(msg_ptr_, msg_len_); 317381418a27Smrg } 317481418a27Smrg if (abs_timeout_) { 317581418a27Smrg PRE_READ(abs_timeout_, struct_timespec_sz); 317681418a27Smrg } 317781418a27Smrg} 317881418a27SmrgPOST_SYSCALL(__mq_timedsend50) 317981418a27Smrg(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_, 318081418a27Smrg long long msg_prio_, void *abs_timeout_) {} 318181418a27SmrgPRE_SYSCALL(__mq_timedreceive50) 318281418a27Smrg(long long mqdes_, void *msg_ptr_, long long msg_len_, void *msg_prio_, 318381418a27Smrg void *abs_timeout_) { 318481418a27Smrg if (msg_ptr_) { 318581418a27Smrg PRE_READ(msg_ptr_, msg_len_); 318681418a27Smrg } 318781418a27Smrg if (abs_timeout_) { 318881418a27Smrg PRE_READ(abs_timeout_, struct_timespec_sz); 318981418a27Smrg } 319081418a27Smrg} 319181418a27SmrgPOST_SYSCALL(__mq_timedreceive50) 319281418a27Smrg(long long res, long long mqdes_, void *msg_ptr_, long long msg_len_, 319381418a27Smrg void *msg_prio_, void *abs_timeout_) {} 319481418a27SmrgPRE_SYSCALL(compat_60__lwp_park) 319581418a27Smrg(void *ts_, long long unpark_, void *hint_, void *unparkhint_) { 319681418a27Smrg /* TODO */ 319781418a27Smrg} 319881418a27SmrgPOST_SYSCALL(compat_60__lwp_park) 319981418a27Smrg(long long res, void *ts_, long long unpark_, void *hint_, void *unparkhint_) { 320081418a27Smrg /* TODO */ 320181418a27Smrg} 320281418a27SmrgPRE_SYSCALL(__kevent50) 320381418a27Smrg(long long fd_, void *changelist_, long long nchanges_, void *eventlist_, 320481418a27Smrg long long nevents_, void *timeout_) { 320581418a27Smrg if (changelist_) { 320681418a27Smrg PRE_READ(changelist_, nchanges_ * struct_kevent_sz); 320781418a27Smrg } 320881418a27Smrg if (timeout_) { 320981418a27Smrg PRE_READ(timeout_, struct_timespec_sz); 321081418a27Smrg } 321181418a27Smrg} 321281418a27SmrgPOST_SYSCALL(__kevent50) 321381418a27Smrg(long long res, long long fd_, void *changelist_, long long nchanges_, 321481418a27Smrg void *eventlist_, long long nevents_, void *timeout_) {} 321581418a27SmrgPRE_SYSCALL(__pselect50) 321681418a27Smrg(long long nd_, void *in_, void *ou_, void *ex_, void *ts_, void *mask_) { 321781418a27Smrg if (ts_) { 321881418a27Smrg PRE_READ(ts_, struct_timespec_sz); 321981418a27Smrg } 322081418a27Smrg if (mask_) { 322181418a27Smrg PRE_READ(mask_, sizeof(struct __sanitizer_sigset_t)); 322281418a27Smrg } 322381418a27Smrg} 322481418a27SmrgPOST_SYSCALL(__pselect50) 322581418a27Smrg(long long res, long long nd_, void *in_, void *ou_, void *ex_, void *ts_, 322681418a27Smrg void *mask_) {} 322781418a27SmrgPRE_SYSCALL(__pollts50)(void *fds_, long long nfds_, void *ts_, void *mask_) { 322881418a27Smrg if (ts_) { 322981418a27Smrg PRE_READ(ts_, struct_timespec_sz); 323081418a27Smrg } 323181418a27Smrg if (mask_) { 323281418a27Smrg PRE_READ(mask_, sizeof(struct __sanitizer_sigset_t)); 323381418a27Smrg } 323481418a27Smrg} 323581418a27SmrgPOST_SYSCALL(__pollts50) 323681418a27Smrg(long long res, void *fds_, long long nfds_, void *ts_, void *mask_) {} 323781418a27SmrgPRE_SYSCALL(__aio_suspend50)(void *list_, long long nent_, void *timeout_) { 323881418a27Smrg int i; 323981418a27Smrg const struct aiocb *const *list = (const struct aiocb *const *)list_; 324081418a27Smrg if (list) { 324181418a27Smrg for (i = 0; i < nent_; i++) { 324281418a27Smrg if (list[i]) { 324381418a27Smrg PRE_READ(list[i], sizeof(struct __sanitizer_aiocb)); 324481418a27Smrg } 324581418a27Smrg } 324681418a27Smrg } 324781418a27Smrg if (timeout_) { 324881418a27Smrg PRE_READ(timeout_, struct_timespec_sz); 324981418a27Smrg } 325081418a27Smrg} 325181418a27SmrgPOST_SYSCALL(__aio_suspend50) 325281418a27Smrg(long long res, void *list_, long long nent_, void *timeout_) {} 325381418a27SmrgPRE_SYSCALL(__stat50)(void *path_, void *ub_) { 325481418a27Smrg const char *path = (const char *)path_; 325581418a27Smrg if (path) { 325681418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 325781418a27Smrg } 325881418a27Smrg} 325981418a27SmrgPOST_SYSCALL(__stat50)(long long res, void *path_, void *ub_) { 326081418a27Smrg const char *path = (const char *)path_; 326181418a27Smrg if (res == 0) { 326281418a27Smrg if (path) { 326381418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 326481418a27Smrg } 326581418a27Smrg } 326681418a27Smrg} 326781418a27SmrgPRE_SYSCALL(__fstat50)(long long fd_, void *sb_) { /* Nothing to do */ } 326881418a27SmrgPOST_SYSCALL(__fstat50)(long long res, long long fd_, void *sb_) { 326981418a27Smrg /* Nothing to do */ 327081418a27Smrg} 327181418a27SmrgPRE_SYSCALL(__lstat50)(void *path_, void *ub_) { 327281418a27Smrg const char *path = (const char *)path_; 327381418a27Smrg if (path) { 327481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 327581418a27Smrg } 327681418a27Smrg} 327781418a27SmrgPOST_SYSCALL(__lstat50)(long long res, void *path_, void *ub_) { 327881418a27Smrg const char *path = (const char *)path_; 327981418a27Smrg if (res == 0) { 328081418a27Smrg if (path) { 328181418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 328281418a27Smrg } 328381418a27Smrg } 328481418a27Smrg} 328581418a27SmrgPRE_SYSCALL(____semctl50) 328681418a27Smrg(long long semid_, long long semnum_, long long cmd_, void *arg_) { 328781418a27Smrg /* Nothing to do */ 328881418a27Smrg} 328981418a27SmrgPOST_SYSCALL(____semctl50) 329081418a27Smrg(long long res, long long semid_, long long semnum_, long long cmd_, 329181418a27Smrg void *arg_) { 329281418a27Smrg /* Nothing to do */ 329381418a27Smrg} 329481418a27SmrgPRE_SYSCALL(__shmctl50)(long long shmid_, long long cmd_, void *buf_) { 329581418a27Smrg /* Nothing to do */ 329681418a27Smrg} 329781418a27SmrgPOST_SYSCALL(__shmctl50) 329881418a27Smrg(long long res, long long shmid_, long long cmd_, void *buf_) { 329981418a27Smrg /* Nothing to do */ 330081418a27Smrg} 330181418a27SmrgPRE_SYSCALL(__msgctl50)(long long msqid_, long long cmd_, void *buf_) { 330281418a27Smrg /* Nothing to do */ 330381418a27Smrg} 330481418a27SmrgPOST_SYSCALL(__msgctl50) 330581418a27Smrg(long long res, long long msqid_, long long cmd_, void *buf_) { 330681418a27Smrg /* Nothing to do */ 330781418a27Smrg} 330881418a27SmrgPRE_SYSCALL(__getrusage50)(long long who_, void *rusage_) { 330981418a27Smrg /* Nothing to do */ 331081418a27Smrg} 331181418a27SmrgPOST_SYSCALL(__getrusage50)(long long res, long long who_, void *rusage_) { 331281418a27Smrg /* Nothing to do */ 331381418a27Smrg} 331481418a27SmrgPRE_SYSCALL(__timer_settime50) 331581418a27Smrg(long long timerid_, long long flags_, void *value_, void *ovalue_) { 331681418a27Smrg struct __sanitizer_itimerval *value = (struct __sanitizer_itimerval *)value_; 331781418a27Smrg if (value) { 331881418a27Smrg PRE_READ(&value->it_interval.tv_sec, sizeof(__sanitizer_time_t)); 331981418a27Smrg PRE_READ(&value->it_interval.tv_usec, sizeof(__sanitizer_suseconds_t)); 332081418a27Smrg PRE_READ(&value->it_value.tv_sec, sizeof(__sanitizer_time_t)); 332181418a27Smrg PRE_READ(&value->it_value.tv_usec, sizeof(__sanitizer_suseconds_t)); 332281418a27Smrg } 332381418a27Smrg} 332481418a27SmrgPOST_SYSCALL(__timer_settime50) 332581418a27Smrg(long long res, long long timerid_, long long flags_, void *value_, 332681418a27Smrg void *ovalue_) { 332781418a27Smrg struct __sanitizer_itimerval *value = (struct __sanitizer_itimerval *)value_; 332881418a27Smrg if (res == 0) { 332981418a27Smrg if (value) { 333081418a27Smrg POST_READ(&value->it_interval.tv_sec, sizeof(__sanitizer_time_t)); 333181418a27Smrg POST_READ(&value->it_interval.tv_usec, sizeof(__sanitizer_suseconds_t)); 333281418a27Smrg POST_READ(&value->it_value.tv_sec, sizeof(__sanitizer_time_t)); 333381418a27Smrg POST_READ(&value->it_value.tv_usec, sizeof(__sanitizer_suseconds_t)); 333481418a27Smrg } 333581418a27Smrg } 333681418a27Smrg} 333781418a27SmrgPRE_SYSCALL(__timer_gettime50)(long long timerid_, void *value_) { 333881418a27Smrg /* Nothing to do */ 333981418a27Smrg} 334081418a27SmrgPOST_SYSCALL(__timer_gettime50) 334181418a27Smrg(long long res, long long timerid_, void *value_) { 334281418a27Smrg /* Nothing to do */ 334381418a27Smrg} 334481418a27Smrg#if defined(NTP) || !defined(_KERNEL_OPT) 334581418a27SmrgPRE_SYSCALL(__ntp_gettime50)(void *ntvp_) { /* Nothing to do */ } 334681418a27SmrgPOST_SYSCALL(__ntp_gettime50)(long long res, void *ntvp_) { 334781418a27Smrg /* Nothing to do */ 334881418a27Smrg} 334981418a27Smrg#else 335081418a27Smrg/* syscall 448 has been skipped */ 335181418a27Smrg#endif 335281418a27SmrgPRE_SYSCALL(__wait450) 335381418a27Smrg(long long pid_, void *status_, long long options_, void *rusage_) { 335481418a27Smrg /* Nothing to do */ 335581418a27Smrg} 335681418a27SmrgPOST_SYSCALL(__wait450) 335781418a27Smrg(long long res, long long pid_, void *status_, long long options_, 335881418a27Smrg void *rusage_) { 335981418a27Smrg /* Nothing to do */ 336081418a27Smrg} 336181418a27SmrgPRE_SYSCALL(__mknod50)(void *path_, long long mode_, long long dev_) { 336281418a27Smrg const char *path = (const char *)path_; 336381418a27Smrg if (path) { 336481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 336581418a27Smrg } 336681418a27Smrg} 336781418a27SmrgPOST_SYSCALL(__mknod50) 336881418a27Smrg(long long res, void *path_, long long mode_, long long dev_) { 336981418a27Smrg const char *path = (const char *)path_; 337081418a27Smrg if (res == 0) { 337181418a27Smrg if (path) { 337281418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 337381418a27Smrg } 337481418a27Smrg } 337581418a27Smrg} 337681418a27SmrgPRE_SYSCALL(__fhstat50)(void *fhp_, long long fh_size_, void *sb_) { 337781418a27Smrg if (fhp_) { 337881418a27Smrg PRE_READ(fhp_, fh_size_); 337981418a27Smrg } 338081418a27Smrg} 338181418a27SmrgPOST_SYSCALL(__fhstat50) 338281418a27Smrg(long long res, void *fhp_, long long fh_size_, void *sb_) { 338381418a27Smrg if (res == 0) { 338481418a27Smrg if (fhp_) { 338581418a27Smrg POST_READ(fhp_, fh_size_); 338681418a27Smrg } 338781418a27Smrg } 338881418a27Smrg} 338981418a27Smrg/* syscall 452 has been skipped */ 339081418a27SmrgPRE_SYSCALL(pipe2)(void *fildes_, long long flags_) { /* Nothing to do */ } 339181418a27SmrgPOST_SYSCALL(pipe2)(long long res, void *fildes_, long long flags_) { 339281418a27Smrg /* Nothing to do */ 339381418a27Smrg} 339481418a27SmrgPRE_SYSCALL(dup3)(long long from_, long long to_, long long flags_) { 339581418a27Smrg /* Nothing to do */ 339681418a27Smrg} 339781418a27SmrgPOST_SYSCALL(dup3) 339881418a27Smrg(long long res, long long from_, long long to_, long long flags_) { 339981418a27Smrg /* Nothing to do */ 340081418a27Smrg} 340181418a27SmrgPRE_SYSCALL(kqueue1)(long long flags_) { /* Nothing to do */ } 340281418a27SmrgPOST_SYSCALL(kqueue1)(long long res, long long flags_) { /* Nothing to do */ } 340381418a27SmrgPRE_SYSCALL(paccept) 340481418a27Smrg(long long s_, void *name_, void *anamelen_, void *mask_, long long flags_) { 340581418a27Smrg if (mask_) { 340681418a27Smrg PRE_READ(mask_, sizeof(__sanitizer_sigset_t)); 340781418a27Smrg } 340881418a27Smrg} 340981418a27SmrgPOST_SYSCALL(paccept) 341081418a27Smrg(long long res, long long s_, void *name_, void *anamelen_, void *mask_, 341181418a27Smrg long long flags_) { 341281418a27Smrg if (res >= 0) { 341381418a27Smrg if (mask_) { 341481418a27Smrg PRE_READ(mask_, sizeof(__sanitizer_sigset_t)); 341581418a27Smrg } 341681418a27Smrg } 341781418a27Smrg} 341881418a27SmrgPRE_SYSCALL(linkat) 341981418a27Smrg(long long fd1_, void *name1_, long long fd2_, void *name2_, long long flags_) { 342081418a27Smrg const char *name1 = (const char *)name1_; 342181418a27Smrg const char *name2 = (const char *)name2_; 342281418a27Smrg if (name1) { 342381418a27Smrg PRE_READ(name1, __sanitizer::internal_strlen(name1) + 1); 342481418a27Smrg } 342581418a27Smrg if (name2) { 342681418a27Smrg PRE_READ(name2, __sanitizer::internal_strlen(name2) + 1); 342781418a27Smrg } 342881418a27Smrg} 342981418a27SmrgPOST_SYSCALL(linkat) 343081418a27Smrg(long long res, long long fd1_, void *name1_, long long fd2_, void *name2_, 343181418a27Smrg long long flags_) { 343281418a27Smrg const char *name1 = (const char *)name1_; 343381418a27Smrg const char *name2 = (const char *)name2_; 343481418a27Smrg if (res == 0) { 343581418a27Smrg if (name1) { 343681418a27Smrg POST_READ(name1, __sanitizer::internal_strlen(name1) + 1); 343781418a27Smrg } 343881418a27Smrg if (name2) { 343981418a27Smrg POST_READ(name2, __sanitizer::internal_strlen(name2) + 1); 344081418a27Smrg } 344181418a27Smrg } 344281418a27Smrg} 344381418a27SmrgPRE_SYSCALL(renameat) 344481418a27Smrg(long long fromfd_, void *from_, long long tofd_, void *to_) { 344581418a27Smrg const char *from = (const char *)from_; 344681418a27Smrg const char *to = (const char *)to_; 344781418a27Smrg if (from) { 344881418a27Smrg PRE_READ(from, __sanitizer::internal_strlen(from) + 1); 344981418a27Smrg } 345081418a27Smrg if (to) { 345181418a27Smrg PRE_READ(to, __sanitizer::internal_strlen(to) + 1); 345281418a27Smrg } 345381418a27Smrg} 345481418a27SmrgPOST_SYSCALL(renameat) 345581418a27Smrg(long long res, long long fromfd_, void *from_, long long tofd_, void *to_) { 345681418a27Smrg const char *from = (const char *)from_; 345781418a27Smrg const char *to = (const char *)to_; 345881418a27Smrg if (res == 0) { 345981418a27Smrg if (from) { 346081418a27Smrg POST_READ(from, __sanitizer::internal_strlen(from) + 1); 346181418a27Smrg } 346281418a27Smrg if (to) { 346381418a27Smrg POST_READ(to, __sanitizer::internal_strlen(to) + 1); 346481418a27Smrg } 346581418a27Smrg } 346681418a27Smrg} 346781418a27SmrgPRE_SYSCALL(mkfifoat)(long long fd_, void *path_, long long mode_) { 346881418a27Smrg const char *path = (const char *)path_; 346981418a27Smrg if (path) { 347081418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 347181418a27Smrg } 347281418a27Smrg} 347381418a27SmrgPOST_SYSCALL(mkfifoat) 347481418a27Smrg(long long res, long long fd_, void *path_, long long mode_) { 347581418a27Smrg const char *path = (const char *)path_; 347681418a27Smrg if (res == 0) { 347781418a27Smrg if (path) { 347881418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 347981418a27Smrg } 348081418a27Smrg } 348181418a27Smrg} 348281418a27SmrgPRE_SYSCALL(mknodat) 348381418a27Smrg(long long fd_, void *path_, long long mode_, long long PAD_, long long dev_) { 348481418a27Smrg const char *path = (const char *)path_; 348581418a27Smrg if (path) { 348681418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 348781418a27Smrg } 348881418a27Smrg} 348981418a27SmrgPOST_SYSCALL(mknodat) 349081418a27Smrg(long long res, long long fd_, void *path_, long long mode_, long long PAD_, 349181418a27Smrg long long dev_) { 349281418a27Smrg const char *path = (const char *)path_; 349381418a27Smrg if (res == 0) { 349481418a27Smrg if (path) { 349581418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 349681418a27Smrg } 349781418a27Smrg } 349881418a27Smrg} 349981418a27SmrgPRE_SYSCALL(mkdirat)(long long fd_, void *path_, long long mode_) { 350081418a27Smrg const char *path = (const char *)path_; 350181418a27Smrg if (path) { 350281418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 350381418a27Smrg } 350481418a27Smrg} 350581418a27SmrgPOST_SYSCALL(mkdirat) 350681418a27Smrg(long long res, long long fd_, void *path_, long long mode_) { 350781418a27Smrg const char *path = (const char *)path_; 350881418a27Smrg if (res == 0) { 350981418a27Smrg if (path) { 351081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 351181418a27Smrg } 351281418a27Smrg } 351381418a27Smrg} 351481418a27SmrgPRE_SYSCALL(faccessat) 351581418a27Smrg(long long fd_, void *path_, long long amode_, long long flag_) { 351681418a27Smrg const char *path = (const char *)path_; 351781418a27Smrg if (path) { 351881418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 351981418a27Smrg } 352081418a27Smrg} 352181418a27SmrgPOST_SYSCALL(faccessat) 352281418a27Smrg(long long res, long long fd_, void *path_, long long amode_, long long flag_) { 352381418a27Smrg const char *path = (const char *)path_; 352481418a27Smrg if (res == 0) { 352581418a27Smrg if (path) { 352681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 352781418a27Smrg } 352881418a27Smrg } 352981418a27Smrg} 353081418a27SmrgPRE_SYSCALL(fchmodat) 353181418a27Smrg(long long fd_, void *path_, long long mode_, long long flag_) { 353281418a27Smrg const char *path = (const char *)path_; 353381418a27Smrg if (path) { 353481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 353581418a27Smrg } 353681418a27Smrg} 353781418a27SmrgPOST_SYSCALL(fchmodat) 353881418a27Smrg(long long res, long long fd_, void *path_, long long mode_, long long flag_) { 353981418a27Smrg const char *path = (const char *)path_; 354081418a27Smrg if (res == 0) { 354181418a27Smrg if (path) { 354281418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 354381418a27Smrg } 354481418a27Smrg } 354581418a27Smrg} 354681418a27SmrgPRE_SYSCALL(fchownat) 354781418a27Smrg(long long fd_, void *path_, long long owner_, long long group_, 354881418a27Smrg long long flag_) { 354981418a27Smrg const char *path = (const char *)path_; 355081418a27Smrg if (path) { 355181418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 355281418a27Smrg } 355381418a27Smrg} 355481418a27SmrgPOST_SYSCALL(fchownat) 355581418a27Smrg(long long res, long long fd_, void *path_, long long owner_, long long group_, 355681418a27Smrg long long flag_) { 355781418a27Smrg const char *path = (const char *)path_; 355881418a27Smrg if (res == 0) { 355981418a27Smrg if (path) { 356081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 356181418a27Smrg } 356281418a27Smrg } 356381418a27Smrg} 356481418a27SmrgPRE_SYSCALL(fexecve)(long long fd_, void *argp_, void *envp_) { /* TODO */ } 356581418a27SmrgPOST_SYSCALL(fexecve)(long long res, long long fd_, void *argp_, void *envp_) { 356681418a27Smrg /* TODO */ 356781418a27Smrg} 356881418a27SmrgPRE_SYSCALL(fstatat)(long long fd_, void *path_, void *buf_, long long flag_) { 356981418a27Smrg const char *path = (const char *)path_; 357081418a27Smrg if (path) { 357181418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 357281418a27Smrg } 357381418a27Smrg} 357481418a27SmrgPOST_SYSCALL(fstatat) 357581418a27Smrg(long long res, long long fd_, void *path_, void *buf_, long long flag_) { 357681418a27Smrg const char *path = (const char *)path_; 357781418a27Smrg if (path) { 357881418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 357981418a27Smrg } 358081418a27Smrg} 358181418a27SmrgPRE_SYSCALL(utimensat) 358281418a27Smrg(long long fd_, void *path_, void *tptr_, long long flag_) { 358381418a27Smrg const char *path = (const char *)path_; 358481418a27Smrg if (path) { 358581418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 358681418a27Smrg } 358781418a27Smrg if (tptr_) { 358881418a27Smrg PRE_READ(tptr_, struct_timespec_sz); 358981418a27Smrg } 359081418a27Smrg} 359181418a27SmrgPOST_SYSCALL(utimensat) 359281418a27Smrg(long long res, long long fd_, void *path_, void *tptr_, long long flag_) { 359381418a27Smrg const char *path = (const char *)path_; 359481418a27Smrg if (res > 0) { 359581418a27Smrg if (path) { 359681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 359781418a27Smrg } 359881418a27Smrg if (tptr_) { 359981418a27Smrg POST_READ(tptr_, struct_timespec_sz); 360081418a27Smrg } 360181418a27Smrg } 360281418a27Smrg} 360381418a27SmrgPRE_SYSCALL(openat) 360481418a27Smrg(long long fd_, void *path_, long long oflags_, long long mode_) { 360581418a27Smrg const char *path = (const char *)path_; 360681418a27Smrg if (path) { 360781418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 360881418a27Smrg } 360981418a27Smrg} 361081418a27SmrgPOST_SYSCALL(openat) 361181418a27Smrg(long long res, long long fd_, void *path_, long long oflags_, 361281418a27Smrg long long mode_) { 361381418a27Smrg const char *path = (const char *)path_; 361481418a27Smrg if (res > 0) { 361581418a27Smrg if (path) { 361681418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 361781418a27Smrg } 361881418a27Smrg } 361981418a27Smrg} 362081418a27SmrgPRE_SYSCALL(readlinkat) 362181418a27Smrg(long long fd_, void *path_, void *buf_, long long bufsize_) { 362281418a27Smrg const char *path = (const char *)path_; 362381418a27Smrg if (path) { 362481418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 362581418a27Smrg } 362681418a27Smrg} 362781418a27SmrgPOST_SYSCALL(readlinkat) 362881418a27Smrg(long long res, long long fd_, void *path_, void *buf_, long long bufsize_) { 362981418a27Smrg const char *path = (const char *)path_; 363081418a27Smrg if (res > 0) { 363181418a27Smrg if (path) { 363281418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 363381418a27Smrg } 363481418a27Smrg } 363581418a27Smrg} 363681418a27SmrgPRE_SYSCALL(symlinkat)(void *path1_, long long fd_, void *path2_) { 363781418a27Smrg const char *path1 = (const char *)path1_; 363881418a27Smrg const char *path2 = (const char *)path2_; 363981418a27Smrg if (path1) { 364081418a27Smrg PRE_READ(path1, __sanitizer::internal_strlen(path1) + 1); 364181418a27Smrg } 364281418a27Smrg if (path2) { 364381418a27Smrg PRE_READ(path2, __sanitizer::internal_strlen(path2) + 1); 364481418a27Smrg } 364581418a27Smrg} 364681418a27SmrgPOST_SYSCALL(symlinkat) 364781418a27Smrg(long long res, void *path1_, long long fd_, void *path2_) { 364881418a27Smrg const char *path1 = (const char *)path1_; 364981418a27Smrg const char *path2 = (const char *)path2_; 365081418a27Smrg if (res == 0) { 365181418a27Smrg if (path1) { 365281418a27Smrg POST_READ(path1, __sanitizer::internal_strlen(path1) + 1); 365381418a27Smrg } 365481418a27Smrg if (path2) { 365581418a27Smrg POST_READ(path2, __sanitizer::internal_strlen(path2) + 1); 365681418a27Smrg } 365781418a27Smrg } 365881418a27Smrg} 365981418a27SmrgPRE_SYSCALL(unlinkat)(long long fd_, void *path_, long long flag_) { 366081418a27Smrg const char *path = (const char *)path_; 366181418a27Smrg if (path) { 366281418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 366381418a27Smrg } 366481418a27Smrg} 366581418a27SmrgPOST_SYSCALL(unlinkat) 366681418a27Smrg(long long res, long long fd_, void *path_, long long flag_) { 366781418a27Smrg const char *path = (const char *)path_; 366881418a27Smrg if (res == 0) { 366981418a27Smrg if (path) { 367081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 367181418a27Smrg } 367281418a27Smrg } 367381418a27Smrg} 367481418a27SmrgPRE_SYSCALL(futimens)(long long fd_, void *tptr_) { 367581418a27Smrg struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_; 367681418a27Smrg if (tptr) { 367781418a27Smrg PRE_READ(tptr[0], struct_timespec_sz); 367881418a27Smrg PRE_READ(tptr[1], struct_timespec_sz); 367981418a27Smrg } 368081418a27Smrg} 368181418a27SmrgPOST_SYSCALL(futimens)(long long res, long long fd_, void *tptr_) { 368281418a27Smrg struct __sanitizer_timespec **tptr = (struct __sanitizer_timespec **)tptr_; 368381418a27Smrg if (res == 0) { 368481418a27Smrg if (tptr) { 368581418a27Smrg POST_READ(tptr[0], struct_timespec_sz); 368681418a27Smrg POST_READ(tptr[1], struct_timespec_sz); 368781418a27Smrg } 368881418a27Smrg } 368981418a27Smrg} 369081418a27SmrgPRE_SYSCALL(__quotactl)(void *path_, void *args_) { 369181418a27Smrg const char *path = (const char *)path_; 369281418a27Smrg if (path) { 369381418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 369481418a27Smrg } 369581418a27Smrg} 369681418a27SmrgPOST_SYSCALL(__quotactl)(long long res, void *path_, void *args_) { 369781418a27Smrg const char *path = (const char *)path_; 369881418a27Smrg if (res == 0) { 369981418a27Smrg if (path) { 370081418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 370181418a27Smrg } 370281418a27Smrg } 370381418a27Smrg} 370481418a27SmrgPRE_SYSCALL(posix_spawn) 370581418a27Smrg(void *pid_, void *path_, void *file_actions_, void *attrp_, void *argv_, 370681418a27Smrg void *envp_) { 370781418a27Smrg const char *path = (const char *)path_; 370881418a27Smrg if (path) { 370981418a27Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 371081418a27Smrg } 371181418a27Smrg} 371281418a27SmrgPOST_SYSCALL(posix_spawn) 371381418a27Smrg(long long res, void *pid_, void *path_, void *file_actions_, void *attrp_, 371481418a27Smrg void *argv_, void *envp_) { 371581418a27Smrg const char *path = (const char *)path_; 371681418a27Smrg if (pid_) { 371781418a27Smrg if (path) { 371881418a27Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 371981418a27Smrg } 372081418a27Smrg } 372181418a27Smrg} 372281418a27SmrgPRE_SYSCALL(recvmmsg) 372381418a27Smrg(long long s_, void *mmsg_, long long vlen_, long long flags_, void *timeout_) { 372481418a27Smrg if (timeout_) { 372581418a27Smrg PRE_READ(timeout_, struct_timespec_sz); 372681418a27Smrg } 372781418a27Smrg} 372881418a27SmrgPOST_SYSCALL(recvmmsg) 372981418a27Smrg(long long res, long long s_, void *mmsg_, long long vlen_, long long flags_, 373081418a27Smrg void *timeout_) { 373181418a27Smrg if (res >= 0) { 373281418a27Smrg if (timeout_) { 373381418a27Smrg POST_READ(timeout_, struct_timespec_sz); 373481418a27Smrg } 373581418a27Smrg } 373681418a27Smrg} 373781418a27SmrgPRE_SYSCALL(sendmmsg) 373881418a27Smrg(long long s_, void *mmsg_, long long vlen_, long long flags_) { 373981418a27Smrg struct __sanitizer_mmsghdr *mmsg = (struct __sanitizer_mmsghdr *)mmsg_; 374081418a27Smrg if (mmsg) { 37417bb5462dSkamil PRE_READ(mmsg, sizeof(struct __sanitizer_mmsghdr) * 37427bb5462dSkamil (vlen_ > 1024 ? 1024 : vlen_)); 374381418a27Smrg } 374481418a27Smrg} 374581418a27SmrgPOST_SYSCALL(sendmmsg) 374681418a27Smrg(long long res, long long s_, void *mmsg_, long long vlen_, long long flags_) { 374781418a27Smrg struct __sanitizer_mmsghdr *mmsg = (struct __sanitizer_mmsghdr *)mmsg_; 374881418a27Smrg if (res >= 0) { 374981418a27Smrg if (mmsg) { 37507bb5462dSkamil POST_READ(mmsg, sizeof(struct __sanitizer_mmsghdr) * 37517bb5462dSkamil (vlen_ > 1024 ? 1024 : vlen_)); 375281418a27Smrg } 375381418a27Smrg } 375481418a27Smrg} 375581418a27SmrgPRE_SYSCALL(clock_nanosleep) 375681418a27Smrg(long long clock_id_, long long flags_, void *rqtp_, void *rmtp_) { 375781418a27Smrg if (rqtp_) { 375881418a27Smrg PRE_READ(rqtp_, struct_timespec_sz); 375981418a27Smrg } 376081418a27Smrg} 376181418a27SmrgPOST_SYSCALL(clock_nanosleep) 376281418a27Smrg(long long res, long long clock_id_, long long flags_, void *rqtp_, 376381418a27Smrg void *rmtp_) { 376481418a27Smrg if (rqtp_) { 376581418a27Smrg POST_READ(rqtp_, struct_timespec_sz); 376681418a27Smrg } 376781418a27Smrg} 376881418a27SmrgPRE_SYSCALL(___lwp_park60) 376981418a27Smrg(long long clock_id_, long long flags_, void *ts_, long long unpark_, 377081418a27Smrg void *hint_, void *unparkhint_) { 377181418a27Smrg if (ts_) { 377281418a27Smrg PRE_READ(ts_, struct_timespec_sz); 377381418a27Smrg } 377481418a27Smrg} 377581418a27SmrgPOST_SYSCALL(___lwp_park60) 377681418a27Smrg(long long res, long long clock_id_, long long flags_, void *ts_, 377781418a27Smrg long long unpark_, void *hint_, void *unparkhint_) { 377881418a27Smrg if (res == 0) { 377981418a27Smrg if (ts_) { 378081418a27Smrg POST_READ(ts_, struct_timespec_sz); 378181418a27Smrg } 378281418a27Smrg } 378381418a27Smrg} 378481418a27SmrgPRE_SYSCALL(posix_fallocate) 378581418a27Smrg(long long fd_, long long PAD_, long long pos_, long long len_) { 378681418a27Smrg /* Nothing to do */ 378781418a27Smrg} 378881418a27SmrgPOST_SYSCALL(posix_fallocate) 378981418a27Smrg(long long res, long long fd_, long long PAD_, long long pos_, long long len_) { 379081418a27Smrg /* Nothing to do */ 379181418a27Smrg} 379281418a27SmrgPRE_SYSCALL(fdiscard) 379381418a27Smrg(long long fd_, long long PAD_, long long pos_, long long len_) { 379481418a27Smrg /* Nothing to do */ 379581418a27Smrg} 379681418a27SmrgPOST_SYSCALL(fdiscard) 379781418a27Smrg(long long res, long long fd_, long long PAD_, long long pos_, long long len_) { 379881418a27Smrg /* Nothing to do */ 379981418a27Smrg} 380081418a27SmrgPRE_SYSCALL(wait6) 380181418a27Smrg(long long idtype_, long long id_, void *status_, long long options_, 380281418a27Smrg void *wru_, void *info_) { 380381418a27Smrg /* Nothing to do */ 380481418a27Smrg} 380581418a27SmrgPOST_SYSCALL(wait6) 380681418a27Smrg(long long res, long long idtype_, long long id_, void *status_, 380781418a27Smrg long long options_, void *wru_, void *info_) { 380881418a27Smrg /* Nothing to do */ 380981418a27Smrg} 381081418a27SmrgPRE_SYSCALL(clock_getcpuclockid2) 381181418a27Smrg(long long idtype_, long long id_, void *clock_id_) { 381281418a27Smrg /* Nothing to do */ 381381418a27Smrg} 381481418a27SmrgPOST_SYSCALL(clock_getcpuclockid2) 381581418a27Smrg(long long res, long long idtype_, long long id_, void *clock_id_) { 381681418a27Smrg /* Nothing to do */ 381781418a27Smrg} 3818*490215a3SmrgPRE_SYSCALL(__getvfsstat90)(void *buf_, long long bufsize_, long long flags_) { 3819*490215a3Smrg /* Nothing to do */ 3820*490215a3Smrg} 3821*490215a3SmrgPOST_SYSCALL(__getvfsstat90) 3822*490215a3Smrg(long long res, void *buf_, long long bufsize_, long long flags_) { 3823*490215a3Smrg /* Nothing to do */ 3824*490215a3Smrg} 3825*490215a3SmrgPRE_SYSCALL(__statvfs190)(void *path_, void *buf_, long long flags_) { 3826*490215a3Smrg const char *path = (const char *)path_; 3827*490215a3Smrg if (path) { 3828*490215a3Smrg PRE_READ(path, __sanitizer::internal_strlen(path) + 1); 3829*490215a3Smrg } 3830*490215a3Smrg} 3831*490215a3SmrgPOST_SYSCALL(__statvfs190) 3832*490215a3Smrg(long long res, void *path_, void *buf_, long long flags_) { 3833*490215a3Smrg const char *path = (const char *)path_; 3834*490215a3Smrg if (path) { 3835*490215a3Smrg POST_READ(path, __sanitizer::internal_strlen(path) + 1); 3836*490215a3Smrg } 3837*490215a3Smrg} 3838*490215a3SmrgPRE_SYSCALL(__fstatvfs190)(long long fd_, void *buf_, long long flags_) { 3839*490215a3Smrg /* Nothing to do */ 3840*490215a3Smrg} 3841*490215a3SmrgPOST_SYSCALL(__fstatvfs190) 3842*490215a3Smrg(long long res, long long fd_, void *buf_, long long flags_) { 3843*490215a3Smrg /* Nothing to do */ 3844*490215a3Smrg} 3845*490215a3SmrgPRE_SYSCALL(__fhstatvfs190) 3846*490215a3Smrg(void *fhp_, long long fh_size_, void *buf_, long long flags_) { 3847*490215a3Smrg if (fhp_) { 3848*490215a3Smrg PRE_READ(fhp_, fh_size_); 3849*490215a3Smrg } 3850*490215a3Smrg} 3851*490215a3SmrgPOST_SYSCALL(__fhstatvfs190) 3852*490215a3Smrg(long long res, void *fhp_, long long fh_size_, void *buf_, long long flags_) {} 38537bb5462dSkamilPRE_SYSCALL(__acl_get_link)(void *path_, long long type_, void *aclp_) { 38547bb5462dSkamil /* TODO */ 38557bb5462dSkamil} 38567bb5462dSkamilPOST_SYSCALL(__acl_get_link) 38577bb5462dSkamil(long long res, void *path_, long long type_, void *aclp_) { 38587bb5462dSkamil /* TODO */ 38597bb5462dSkamil} 38607bb5462dSkamilPRE_SYSCALL(__acl_set_link)(void *path_, long long type_, void *aclp_) { 38617bb5462dSkamil /* TODO */ 38627bb5462dSkamil} 38637bb5462dSkamilPOST_SYSCALL(__acl_set_link) 38647bb5462dSkamil(long long res, void *path_, long long type_, void *aclp_) { 38657bb5462dSkamil /* TODO */ 38667bb5462dSkamil} 38677bb5462dSkamilPRE_SYSCALL(__acl_delete_link)(void *path_, long long type_) { /* TODO */ } 38687bb5462dSkamilPOST_SYSCALL(__acl_delete_link)(long long res, void *path_, long long type_) { 38697bb5462dSkamil /* TODO */ 38707bb5462dSkamil} 38717bb5462dSkamilPRE_SYSCALL(__acl_aclcheck_link)(void *path_, long long type_, void *aclp_) { 38727bb5462dSkamil /* TODO */ 38737bb5462dSkamil} 38747bb5462dSkamilPOST_SYSCALL(__acl_aclcheck_link) 38757bb5462dSkamil(long long res, void *path_, long long type_, void *aclp_) { 38767bb5462dSkamil /* TODO */ 38777bb5462dSkamil} 38787bb5462dSkamilPRE_SYSCALL(__acl_get_file)(void *path_, long long type_, void *aclp_) { 38797bb5462dSkamil /* TODO */ 38807bb5462dSkamil} 38817bb5462dSkamilPOST_SYSCALL(__acl_get_file) 38827bb5462dSkamil(long long res, void *path_, long long type_, void *aclp_) { 38837bb5462dSkamil /* TODO */ 38847bb5462dSkamil} 38857bb5462dSkamilPRE_SYSCALL(__acl_set_file)(void *path_, long long type_, void *aclp_) { 38867bb5462dSkamil /* TODO */ 38877bb5462dSkamil} 38887bb5462dSkamilPOST_SYSCALL(__acl_set_file) 38897bb5462dSkamil(long long res, void *path_, long long type_, void *aclp_) { 38907bb5462dSkamil /* TODO */ 38917bb5462dSkamil} 38927bb5462dSkamilPRE_SYSCALL(__acl_get_fd)(long long filedes_, long long type_, void *aclp_) { 38937bb5462dSkamil /* TODO */ 38947bb5462dSkamil} 38957bb5462dSkamilPOST_SYSCALL(__acl_get_fd) 38967bb5462dSkamil(long long res, long long filedes_, long long type_, void *aclp_) { 38977bb5462dSkamil /* TODO */ 38987bb5462dSkamil} 38997bb5462dSkamilPRE_SYSCALL(__acl_set_fd)(long long filedes_, long long type_, void *aclp_) { 39007bb5462dSkamil /* TODO */ 39017bb5462dSkamil} 39027bb5462dSkamilPOST_SYSCALL(__acl_set_fd) 39037bb5462dSkamil(long long res, long long filedes_, long long type_, void *aclp_) { 39047bb5462dSkamil /* TODO */ 39057bb5462dSkamil} 39067bb5462dSkamilPRE_SYSCALL(__acl_delete_file)(void *path_, long long type_) { /* TODO */ } 39077bb5462dSkamilPOST_SYSCALL(__acl_delete_file)(long long res, void *path_, long long type_) { 39087bb5462dSkamil /* TODO */ 39097bb5462dSkamil} 39107bb5462dSkamilPRE_SYSCALL(__acl_delete_fd)(long long filedes_, long long type_) { /* TODO */ } 39117bb5462dSkamilPOST_SYSCALL(__acl_delete_fd) 39127bb5462dSkamil(long long res, long long filedes_, long long type_) { 39137bb5462dSkamil /* TODO */ 39147bb5462dSkamil} 39157bb5462dSkamilPRE_SYSCALL(__acl_aclcheck_file)(void *path_, long long type_, void *aclp_) { 39167bb5462dSkamil /* TODO */ 39177bb5462dSkamil} 39187bb5462dSkamilPOST_SYSCALL(__acl_aclcheck_file) 39197bb5462dSkamil(long long res, void *path_, long long type_, void *aclp_) { 39207bb5462dSkamil /* TODO */ 39217bb5462dSkamil} 39227bb5462dSkamilPRE_SYSCALL(__acl_aclcheck_fd) 39237bb5462dSkamil(long long filedes_, long long type_, void *aclp_) { 39247bb5462dSkamil /* TODO */ 39257bb5462dSkamil} 39267bb5462dSkamilPOST_SYSCALL(__acl_aclcheck_fd) 39277bb5462dSkamil(long long res, long long filedes_, long long type_, void *aclp_) { 39287bb5462dSkamil /* TODO */ 39297bb5462dSkamil} 39307bb5462dSkamilPRE_SYSCALL(lpathconf)(void *path_, long long name_) { /* TODO */ } 39317bb5462dSkamilPOST_SYSCALL(lpathconf)(long long res, void *path_, long long name_) { 39327bb5462dSkamil /* TODO */ 39337bb5462dSkamil} 393481418a27Smrg#undef SYS_MAXSYSARGS 393581418a27Smrg} // extern "C" 393681418a27Smrg 393781418a27Smrg#undef PRE_SYSCALL 393881418a27Smrg#undef PRE_READ 393981418a27Smrg#undef PRE_WRITE 394081418a27Smrg#undef POST_SYSCALL 394181418a27Smrg#undef POST_READ 394281418a27Smrg#undef POST_WRITE 394381418a27Smrg 394481418a27Smrg#endif // SANITIZER_NETBSD 3945