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