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