Mercurial > hg > CbC > CbC_llvm
comparison compiler-rt/test/tsan/Linux/syscall.h @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
173:0572611fdcc8 | 207:2e18cbf3894f |
---|---|
1 #include <fcntl.h> | |
2 #include <sanitizer/linux_syscall_hooks.h> | |
3 #include <signal.h> | |
4 #include <sys/syscall.h> | |
5 #include <sys/types.h> | |
6 #include <unistd.h> | |
7 | |
8 int myfork() { | |
9 __sanitizer_syscall_pre_fork(); | |
10 #ifdef SYS_fork | |
11 int res = syscall(SYS_fork); | |
12 #else | |
13 int res = syscall(SYS_clone, SIGCHLD, 0); | |
14 #endif | |
15 __sanitizer_syscall_post_fork(res); | |
16 return res; | |
17 } | |
18 | |
19 int mypipe(int pipefd[2]) { | |
20 __sanitizer_syscall_pre_pipe(pipefd); | |
21 int res = syscall(SYS_pipe2, pipefd, 0); | |
22 __sanitizer_syscall_post_pipe(res, pipefd); | |
23 return res; | |
24 } | |
25 | |
26 int myclose(int fd) { | |
27 __sanitizer_syscall_pre_close(fd); | |
28 int res = syscall(SYS_close, fd); | |
29 __sanitizer_syscall_post_close(res, fd); | |
30 return res; | |
31 } | |
32 | |
33 ssize_t myread(int fd, void *buf, size_t count) { | |
34 __sanitizer_syscall_pre_read(fd, buf, count); | |
35 ssize_t res = syscall(SYS_read, fd, buf, count); | |
36 __sanitizer_syscall_post_read(res, fd, buf, count); | |
37 return res; | |
38 } | |
39 | |
40 ssize_t mywrite(int fd, const void *buf, size_t count) { | |
41 __sanitizer_syscall_pre_write(fd, buf, count); | |
42 ssize_t res = syscall(SYS_write, fd, buf, count); | |
43 __sanitizer_syscall_post_write(res, fd, buf, count); | |
44 return res; | |
45 } |