12887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//===-- sanitizer_common_syscalls.inc ---------------------------*- C++ -*-===//
22887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//
32887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//                     The LLVM Compiler Infrastructure
42887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//
52887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// This file is distributed under the University of Illinois Open Source
62887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// License. See LICENSE.TXT for details.
72887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//
82887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//===----------------------------------------------------------------------===//
92887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//
102887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// Common syscalls handlers for tools like AddressSanitizer,
112887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// ThreadSanitizer, MemorySanitizer, etc.
122887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//
132887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// This file should be included into the tool's interceptor file,
142887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// which has to define it's own macros:
152887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//   COMMON_SYSCALL_PRE_READ_RANGE
162887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          Called in prehook for regions that will be read by the kernel and
172887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          must be initialized.
182887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//   COMMON_SYSCALL_PRE_WRITE_RANGE
192887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          Called in prehook for regions that will be written to by the kernel
202887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          and must be addressable. The actual write range may be smaller than
212887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          reported in the prehook. See POST_WRITE_RANGE.
222887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//   COMMON_SYSCALL_POST_READ_RANGE
232887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          Called in posthook for regions that were read by the kernel. Does
242887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          not make much sense.
252887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//   COMMON_SYSCALL_POST_WRITE_RANGE
262887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          Called in posthook for regions that were written to by the kernel
272887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//          and are now initialized.
282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines//   COMMON_SYSCALL_ACQUIRE(addr)
292d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines//          Acquire memory visibility from addr.
302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines//   COMMON_SYSCALL_RELEASE(addr)
312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines//          Release memory visibility to addr.
32b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov//   COMMON_SYSCALL_FD_CLOSE(fd)
33b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov//          Called before closing file descriptor fd.
342d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines//   COMMON_SYSCALL_FD_ACQUIRE(fd)
352d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines//          Acquire memory visibility from fd.
362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines//   COMMON_SYSCALL_FD_RELEASE(fd)
372d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines//          Release memory visibility to fd.
386c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov//   COMMON_SYSCALL_PRE_FORK()
396c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov//          Called before fork syscall.
406c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov//   COMMON_SYSCALL_POST_FORK(long res)
416c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov//          Called after fork syscall.
422887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//===----------------------------------------------------------------------===//
432887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
44639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#include "sanitizer_platform.h"
45639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#if SANITIZER_LINUX
46639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
47639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#include "sanitizer_libc.h"
48639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
492887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define PRE_SYSCALL(name)                                                      \
50639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_syscall_pre_impl_##name
512887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define PRE_READ(p, s) COMMON_SYSCALL_PRE_READ_RANGE(p, s)
522887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define PRE_WRITE(p, s) COMMON_SYSCALL_PRE_WRITE_RANGE(p, s)
532887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
542887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define POST_SYSCALL(name)                                                     \
55639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_syscall_post_impl_##name
562887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define POST_READ(p, s) COMMON_SYSCALL_POST_READ_RANGE(p, s)
572887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define POST_WRITE(p, s) COMMON_SYSCALL_POST_WRITE_RANGE(p, s)
582887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
592d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef COMMON_SYSCALL_ACQUIRE
602d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_ACQUIRE(addr) ((void)(addr))
612d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#endif
622d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
632d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef COMMON_SYSCALL_RELEASE
642d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_RELEASE(addr) ((void)(addr))
652d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#endif
662d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
67b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov#ifndef COMMON_SYSCALL_FD_CLOSE
682d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_FD_CLOSE(fd) ((void)(fd))
692d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#endif
702d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
712d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef COMMON_SYSCALL_FD_ACQUIRE
722d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_FD_ACQUIRE(fd) ((void)(fd))
732d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#endif
742d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
752d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef COMMON_SYSCALL_FD_RELEASE
762d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_FD_RELEASE(fd) ((void)(fd))
77b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov#endif
78639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
796c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov#ifndef COMMON_SYSCALL_PRE_FORK
802d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_PRE_FORK() {}
816c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov#endif
826c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov
836c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov#ifndef COMMON_SYSCALL_POST_FORK
842d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_POST_FORK(res) {}
856c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov#endif
866c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov
872887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// FIXME: do some kind of PRE_READ for all syscall arguments (int(s) and such).
882887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
892887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanovextern "C" {
902887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanovstruct sanitizer_kernel_iovec {
912887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  void *iov_base;
922887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  unsigned long iov_len;
932887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov};
942887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
952887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanovstruct sanitizer_kernel_msghdr {
962887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  void *msg_name;
972887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  int msg_namelen;
982887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  struct sanitizer_kernel_iovec *msg_iov;
992887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  unsigned long msg_iovlen;
1002887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  void *msg_control;
1012887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  unsigned long msg_controllen;
1022887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  unsigned msg_flags;
1032887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov};
1042887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
105639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanovstruct sanitizer_kernel_mmsghdr {
106639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  struct sanitizer_kernel_msghdr msg_hdr;
107639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  unsigned msg_len;
108639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov};
109639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1108b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanovstruct sanitizer_kernel_timespec {
1118b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov  long tv_sec;
1128b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov  long tv_nsec;
1138b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov};
1148b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov
115fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanovstruct sanitizer_kernel_timeval {
116fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov  long tv_sec;
117fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov  long tv_usec;
118fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov};
119fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov
120fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanovstruct sanitizer_kernel_rusage {
121fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov  struct sanitizer_kernel_timeval ru_timeval[2];
122fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov  long ru_long[14];
123fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov};
124fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov
125639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanovstruct sanitizer_kernel_sockaddr {
126639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  unsigned short sa_family;
127639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  char sa_data[14];
128639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov};
129639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1305f4984db88b7b67539f62d7653b928aeadf91b16Dmitry Vyukov// Real sigset size is always passed as a syscall argument.
1315f4984db88b7b67539f62d7653b928aeadf91b16Dmitry Vyukov// Declare it "void" to catch sizeof(kernel_sigset_t).
1325f4984db88b7b67539f62d7653b928aeadf91b16Dmitry Vyukovtypedef void kernel_sigset_t;
1335f4984db88b7b67539f62d7653b928aeadf91b16Dmitry Vyukov
134639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanovstatic void kernel_write_iovec(const __sanitizer_iovec *iovec,
135639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        SIZE_T iovlen, SIZE_T maxlen) {
136639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  for (SIZE_T i = 0; i < iovlen && maxlen; ++i) {
137639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    SSIZE_T sz = Min(iovec[i].iov_len, maxlen);
138639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    POST_WRITE(iovec[i].iov_base, sz);
139639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    maxlen -= sz;
140639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
141639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
142639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
143639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov// This functions uses POST_READ, because it needs to run after syscall to know
144639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov// the real read range.
145639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanovstatic void kernel_read_iovec(const __sanitizer_iovec *iovec,
146639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       SIZE_T iovlen, SIZE_T maxlen) {
147639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  POST_READ(iovec, sizeof(*iovec) * iovlen);
148639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  for (SIZE_T i = 0; i < iovlen && maxlen; ++i) {
149639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    SSIZE_T sz = Min(iovec[i].iov_len, maxlen);
150639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    POST_READ(iovec[i].iov_base, sz);
151639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    maxlen -= sz;
152639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
153639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
154639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
155639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(recvmsg)(long sockfd, sanitizer_kernel_msghdr *msg, long flags) {
1562887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov  PRE_READ(msg, sizeof(*msg));
1572887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov}
1582887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
159639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(recvmsg)(long res, long sockfd, sanitizer_kernel_msghdr *msg,
160639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long flags) {
161639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
162639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (msg) {
163639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      for (unsigned long i = 0; i < msg->msg_iovlen; ++i) {
164639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov        POST_WRITE(msg->msg_iov[i].iov_base, msg->msg_iov[i].iov_len);
165639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      }
166639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(msg->msg_control, msg->msg_controllen);
167102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs    }
168639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1692887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov}
1702887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
171639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(recvmmsg)(long fd, sanitizer_kernel_mmsghdr *msg, long vlen,
172639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long flags, void *timeout) {
173639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  PRE_READ(msg, vlen * sizeof(*msg));
174639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1752887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
176639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(recvmmsg)(long res, long fd, sanitizer_kernel_mmsghdr *msg,
177639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long vlen, long flags, void *timeout) {
178639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
179639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (msg) {
180639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      for (unsigned long i = 0; i < msg->msg_hdr.msg_iovlen; ++i) {
181639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov        POST_WRITE(msg->msg_hdr.msg_iov[i].iov_base,
182639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                   msg->msg_hdr.msg_iov[i].iov_len);
183639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      }
184639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(msg->msg_hdr.msg_control, msg->msg_hdr.msg_controllen);
185639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(&msg->msg_len, sizeof(msg->msg_len));
186639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    }
187639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (timeout) POST_WRITE(timeout, struct_timespec_sz);
188102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs  }
1892887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov}
1902887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
191639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(read)(long fd, void *buf, uptr count) {
192639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (buf) {
193639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_WRITE(buf, count);
194639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
195639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1962887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
197639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(read)(long res, long fd, void *buf, uptr count) {
198639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res > 0 && buf) {
199639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    POST_WRITE(buf, res);
200102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs  }
2012887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov}
2022887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
203639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(time)(void *tloc) {}
204639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
205639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(time)(long res, void *tloc) {
206639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
207639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tloc) POST_WRITE(tloc, sizeof(long));
208639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2092887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov}
2102887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
211639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(stime)(void *tptr) {}
212639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
213639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(stime)(long res, void *tptr) {
214639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
215639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tptr) POST_WRITE(tptr, sizeof(long));
216102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs  }
2172887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov}
2182887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
219639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(gettimeofday)(void *tv, void *tz) {}
220639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
221639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(gettimeofday)(long res, void *tv, void *tz) {
222639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
223639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tv) POST_WRITE(tv, timeval_sz);
224639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tz) POST_WRITE(tz, struct_timezone_sz);
225102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs  }
226639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
227639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
228639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(settimeofday)(void *tv, void *tz) {}
229639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
230639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(settimeofday)(long res, void *tv, void *tz) {
231639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
232639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tv) POST_WRITE(tv, timeval_sz);
233639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tz) POST_WRITE(tz, struct_timezone_sz);
234102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs  }
235fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov}
236fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov
237fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#if !SANITIZER_ANDROID
238639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(adjtimex)(void *txc_p) {}
239639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
240639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(adjtimex)(long res, void *txc_p) {
241639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
242639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (txc_p) POST_WRITE(txc_p, struct_timex_sz);
243639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
244639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
245fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#endif
246639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
247639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(times)(void *tbuf) {}
248639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
249639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(times)(long res, void *tbuf) {
250639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
251639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tbuf) POST_WRITE(tbuf, struct_tms_sz);
252639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
253639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
254639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
255639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(gettid)() {}
256639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
257639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(gettid)(long res) {}
258639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
259639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(nanosleep)(void *rqtp, void *rmtp) {}
260639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
261639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(nanosleep)(long res, void *rqtp, void *rmtp) {
262639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
263639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (rqtp) POST_WRITE(rqtp, struct_timespec_sz);
264639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (rmtp) POST_WRITE(rmtp, struct_timespec_sz);
265639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
266639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
267639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
268639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(alarm)(long seconds) {}
269639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
270639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(alarm)(long res, long seconds) {}
271639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
272639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpid)() {}
273639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
274639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpid)(long res) {}
275639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
276639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getppid)() {}
277639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
278639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getppid)(long res) {}
279639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
280639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getuid)() {}
281639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
282639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getuid)(long res) {}
283639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
284639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(geteuid)() {}
285639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
286639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(geteuid)(long res) {}
287639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
288639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getgid)() {}
289639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
290639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getgid)(long res) {}
291639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
292639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getegid)() {}
293639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
294639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getegid)(long res) {}
295639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
296639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getresuid)(void *ruid, void *euid, void *suid) {}
297639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
298639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getresuid)(long res, void *ruid, void *euid, void *suid) {
299639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
300639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ruid) POST_WRITE(ruid, sizeof(unsigned));
301639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (euid) POST_WRITE(euid, sizeof(unsigned));
302639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (suid) POST_WRITE(suid, sizeof(unsigned));
303639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
304639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
305639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
306639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getresgid)(void *rgid, void *egid, void *sgid) {}
307639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
308639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getresgid)(long res, void *rgid, void *egid, void *sgid) {
309639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
310639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (rgid) POST_WRITE(rgid, sizeof(unsigned));
311639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (egid) POST_WRITE(egid, sizeof(unsigned));
312639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (sgid) POST_WRITE(sgid, sizeof(unsigned));
313639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
314639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
315639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
316639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpgid)(long pid) {}
317639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
318639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpgid)(long res, long pid) {}
319639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
320639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpgrp)() {}
321639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
322639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpgrp)(long res) {}
323639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
324639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getsid)(long pid) {}
325639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
326639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getsid)(long res, long pid) {}
327639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
328639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getgroups)(long gidsetsize, void *grouplist) {}
329639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
330a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(getgroups)(long res, long gidsetsize,
331a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                        __sanitizer___kernel_gid_t *grouplist) {
332639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
333639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (grouplist) POST_WRITE(grouplist, res * sizeof(*grouplist));
334fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov  }
335fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov}
336fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov
337639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setregid)(long rgid, long egid) {}
338639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
339639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setregid)(long res, long rgid, long egid) {}
340639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
341639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setgid)(long gid) {}
342639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
343639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setgid)(long res, long gid) {}
344639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
345639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setreuid)(long ruid, long euid) {}
346639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
347639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setreuid)(long res, long ruid, long euid) {}
348639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
349639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setuid)(long uid) {}
350639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
351639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setuid)(long res, long uid) {}
352639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
353639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setresuid)(long ruid, long euid, long suid) {}
354639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
355639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setresuid)(long res, long ruid, long euid, long suid) {}
356639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
357639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setresgid)(long rgid, long egid, long sgid) {}
358639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
359639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setresgid)(long res, long rgid, long egid, long sgid) {}
360639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
361639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setfsuid)(long uid) {}
362639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
363639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setfsuid)(long res, long uid) {}
364639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
365639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setfsgid)(long gid) {}
366639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
367639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setfsgid)(long res, long gid) {}
368639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
369639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setpgid)(long pid, long pgid) {}
370639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
371639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setpgid)(long res, long pid, long pgid) {}
372639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
373639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setsid)() {}
374639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
375639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setsid)(long res) {}
376639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
377a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(setgroups)(long gidsetsize, __sanitizer___kernel_gid_t *grouplist) {
378639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (grouplist) POST_WRITE(grouplist, gidsetsize * sizeof(*grouplist));
379639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
380639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
381a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(setgroups)(long res, long gidsetsize,
382a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                        __sanitizer___kernel_gid_t *grouplist) {}
383639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
384639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(acct)(const void *name) {
385639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
386639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
387639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
388639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
389639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(acct)(long res, const void *name) {}
390639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
3912d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPRE_SYSCALL(capget)(void *header, void *dataptr) {
3922d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (header) PRE_READ(header, __user_cap_header_struct_sz);
3932d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines}
394639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
395639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(capget)(long res, void *header, void *dataptr) {
3962d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (res >= 0)
397639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (dataptr) POST_WRITE(dataptr, __user_cap_data_struct_sz);
398fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov}
399fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov
400639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(capset)(void *header, const void *data) {
4012d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (header) PRE_READ(header, __user_cap_header_struct_sz);
402639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (data) PRE_READ(data, __user_cap_data_struct_sz);
403639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
404639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
4052d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPOST_SYSCALL(capset)(long res, void *header, const void *data) {}
4068b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov
407639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(personality)(long personality) {}
408639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
409639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(personality)(long res, long personality) {}
410639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
411639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sigpending)(void *set) {}
412639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
413639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sigpending)(long res, void *set) {
414639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
415639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (set) POST_WRITE(set, old_sigset_t_sz);
416a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko  }
4178b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov}
4188b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov
419639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sigprocmask)(long how, void *set, void *oset) {}
420639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
421639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sigprocmask)(long res, long how, void *set, void *oset) {
422639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
423639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (set) POST_WRITE(set, old_sigset_t_sz);
424639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (oset) POST_WRITE(oset, old_sigset_t_sz);
425a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko  }
4268b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov}
4278b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov
428639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getitimer)(long which, void *value) {}
429639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
430639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getitimer)(long res, long which, void *value) {
431639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
432639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (value) POST_WRITE(value, struct_itimerval_sz);
433a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko  }
4348b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov}
4358b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov
436639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setitimer)(long which, void *value, void *ovalue) {}
437639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
438639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setitimer)(long res, long which, void *value, void *ovalue) {
439639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
440639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (value) POST_WRITE(value, struct_itimerval_sz);
441639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ovalue) POST_WRITE(ovalue, struct_itimerval_sz);
442a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko  }
4438b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov}
4449d34659cd3570423fb1fa49248887e2bd4b762f9Evgeniy Stepanov
445639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_create)(long which_clock, void *timer_event_spec,
446639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                          void *created_timer_id) {}
447639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
448639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_create)(long res, long which_clock, void *timer_event_spec,
449639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                           void *created_timer_id) {
450639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
451639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (timer_event_spec) POST_WRITE(timer_event_spec, struct_sigevent_sz);
452639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (created_timer_id) POST_WRITE(created_timer_id, sizeof(long));
453a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko  }
4549d34659cd3570423fb1fa49248887e2bd4b762f9Evgeniy Stepanov}
4559d34659cd3570423fb1fa49248887e2bd4b762f9Evgeniy Stepanov
456639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_gettime)(long timer_id, void *setting) {}
457639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
458639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_gettime)(long res, long timer_id, void *setting) {
459639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
460639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (setting) POST_WRITE(setting, struct_itimerspec_sz);
461a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko  }
4629d34659cd3570423fb1fa49248887e2bd4b762f9Evgeniy Stepanov}
4632887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov
464639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_getoverrun)(long timer_id) {}
465639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
466639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_getoverrun)(long res, long timer_id) {}
467639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
468639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_settime)(long timer_id, long flags, const void *new_setting,
469639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                           void *old_setting) {
470639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (new_setting) PRE_READ(new_setting, struct_itimerspec_sz);
471639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
472639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
473639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_settime)(long res, long timer_id, long flags,
474639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                            const void *new_setting, void *old_setting) {
475639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
476639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (old_setting) POST_WRITE(old_setting, struct_itimerspec_sz);
477639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
478639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
479639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
480639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_delete)(long timer_id) {}
481639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
482639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_delete)(long res, long timer_id) {}
483639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
484639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_settime)(long which_clock, const void *tp) {
485639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (tp) PRE_READ(tp, struct_timespec_sz);
486639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
487639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
488639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_settime)(long res, long which_clock, const void *tp) {}
489639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
490639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_gettime)(long which_clock, void *tp) {}
491639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
492639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_gettime)(long res, long which_clock, void *tp) {
493639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
494639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tp) POST_WRITE(tp, struct_timespec_sz);
495639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
496639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
497639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
498fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#if !SANITIZER_ANDROID
499639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_adjtime)(long which_clock, void *tx) {}
500639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
501639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_adjtime)(long res, long which_clock, void *tx) {
502639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
503639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tx) POST_WRITE(tx, struct_timex_sz);
504639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
505639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
506fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#endif
507639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
508639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_getres)(long which_clock, void *tp) {}
509639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
510639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_getres)(long res, long which_clock, void *tp) {
511639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
512639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tp) POST_WRITE(tp, struct_timespec_sz);
513639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
514639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
515639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
516639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_nanosleep)(long which_clock, long flags, const void *rqtp,
517639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                             void *rmtp) {
518639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (rqtp) PRE_READ(rqtp, struct_timespec_sz);
519639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
520639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
521639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_nanosleep)(long res, long which_clock, long flags,
522639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              const void *rqtp, void *rmtp) {
523639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
524639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (rmtp) POST_WRITE(rmtp, struct_timespec_sz);
525639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
526639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
527639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
528639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(nice)(long increment) {}
529639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
530639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(nice)(long res, long increment) {}
531639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
532639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_setscheduler)(long pid, long policy, void *param) {}
533639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
534639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_setscheduler)(long res, long pid, long policy, void *param) {
535639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
536639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (param) POST_WRITE(param, struct_sched_param_sz);
537639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
538639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
539639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
540639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_setparam)(long pid, void *param) {
541639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (param) PRE_READ(param, struct_sched_param_sz);
542639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
543639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
544639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_setparam)(long res, long pid, void *param) {}
545639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
546639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_getscheduler)(long pid) {}
547639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
548639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_getscheduler)(long res, long pid) {}
549639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
550639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_getparam)(long pid, void *param) {}
551639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
552639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_getparam)(long res, long pid, void *param) {
553639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
554639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (param) POST_WRITE(param, struct_sched_param_sz);
555639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
556639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
557639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
558639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_setaffinity)(long pid, long len, void *user_mask_ptr) {
559639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (user_mask_ptr) PRE_READ(user_mask_ptr, len);
560639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
561639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
562639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_setaffinity)(long res, long pid, long len,
563639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                                void *user_mask_ptr) {}
564639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
565639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_getaffinity)(long pid, long len, void *user_mask_ptr) {}
566639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
567639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_getaffinity)(long res, long pid, long len,
568639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                                void *user_mask_ptr) {
569639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
570639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (user_mask_ptr) POST_WRITE(user_mask_ptr, len);
571639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
572639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
573639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
574639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_yield)() {}
575639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
576639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_yield)(long res) {}
577639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
578639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_get_priority_max)(long policy) {}
579639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
580639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_get_priority_max)(long res, long policy) {}
581639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
582639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_get_priority_min)(long policy) {}
583639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
584639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_get_priority_min)(long res, long policy) {}
585639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
586639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_rr_get_interval)(long pid, void *interval) {}
587639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
588639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_rr_get_interval)(long res, long pid, void *interval) {
589639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
590639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (interval) POST_WRITE(interval, struct_timespec_sz);
591639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
592639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
593639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
594639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setpriority)(long which, long who, long niceval) {}
595639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
596639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setpriority)(long res, long which, long who, long niceval) {}
597639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
598639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpriority)(long which, long who) {}
599639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
600639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpriority)(long res, long which, long who) {}
601639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
602639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shutdown)(long arg0, long arg1) {}
603639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
604639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shutdown)(long res, long arg0, long arg1) {}
605639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
606639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(reboot)(long magic1, long magic2, long cmd, void *arg) {}
607639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
608639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(reboot)(long res, long magic1, long magic2, long cmd, void *arg) {}
609639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
610639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(restart_syscall)() {}
611639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
612639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(restart_syscall)(long res) {}
613639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
614639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(kexec_load)(long entry, long nr_segments, void *segments,
615639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long flags) {}
616639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
617639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(kexec_load)(long res, long entry, long nr_segments, void *segments,
618639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         long flags) {
619639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
620639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (segments) POST_WRITE(segments, struct_kexec_segment_sz);
621639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
622639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
623639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
624639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(exit)(long error_code) {}
625639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
626639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(exit)(long res, long error_code) {}
627639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
628639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(exit_group)(long error_code) {}
629639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
630639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(exit_group)(long res, long error_code) {}
631639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
632639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(wait4)(long pid, void *stat_addr, long options, void *ru) {}
633639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
634639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(wait4)(long res, long pid, void *stat_addr, long options,
635639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    void *ru) {
636639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
637639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (stat_addr) POST_WRITE(stat_addr, sizeof(int));
638639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ru) POST_WRITE(ru, struct_rusage_sz);
639639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
640639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
641639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
642639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(waitid)(long which, long pid, void *infop, long options, void *ru) {
643639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
644639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
645639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(waitid)(long res, long which, long pid, void *infop, long options,
646639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     void *ru) {
647639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
648639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (infop) POST_WRITE(infop, siginfo_t_sz);
649639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ru) POST_WRITE(ru, struct_rusage_sz);
650639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
651639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
652639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
653639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(waitpid)(long pid, void *stat_addr, long options) {}
654639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
655639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(waitpid)(long res, long pid, void *stat_addr, long options) {
656639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
657639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (stat_addr) POST_WRITE(stat_addr, sizeof(int));
658639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
659639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
660639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
661639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(set_tid_address)(void *tidptr) {}
662639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
663639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(set_tid_address)(long res, void *tidptr) {
664639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
665639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tidptr) POST_WRITE(tidptr, sizeof(int));
666639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
667639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
668639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
669639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(init_module)(void *umod, long len, const void *uargs) {
670639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (uargs)
671639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(uargs, __sanitizer::internal_strlen((const char *)uargs) + 1);
672639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
673639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
674639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(init_module)(long res, void *umod, long len, const void *uargs) {}
675639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
676639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(delete_module)(const void *name_user, long flags) {
677639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name_user)
678639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name_user,
679639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)name_user) + 1);
680639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
681639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
682639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(delete_module)(long res, const void *name_user, long flags) {}
683639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
684639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_sigprocmask)(long how, void *set, void *oset, long sigsetsize) {}
685639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
686639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_sigprocmask)(long res, long how, kernel_sigset_t *set,
687639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                             kernel_sigset_t *oset, long sigsetsize) {
688639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
689639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (set) POST_WRITE(set, sigsetsize);
690639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (oset) POST_WRITE(oset, sigsetsize);
691639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
692639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
693639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
694639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_sigpending)(void *set, long sigsetsize) {}
695639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
696639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_sigpending)(long res, kernel_sigset_t *set, long sigsetsize) {
697639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
698639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (set) POST_WRITE(set, sigsetsize);
699639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
700639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
701639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
702639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_sigtimedwait)(const kernel_sigset_t *uthese, void *uinfo,
703639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                             const void *uts, long sigsetsize) {
704639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (uthese) PRE_READ(uthese, sigsetsize);
705639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (uts) PRE_READ(uts, struct_timespec_sz);
706639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
707639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
708639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_sigtimedwait)(long res, const void *uthese, void *uinfo,
709639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              const void *uts, long sigsetsize) {
710639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
711639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (uinfo) POST_WRITE(uinfo, siginfo_t_sz);
712639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
713639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
714639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
715639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_tgsigqueueinfo)(long tgid, long pid, long sig, void *uinfo) {}
716639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
717639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_tgsigqueueinfo)(long res, long tgid, long pid, long sig,
718639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                                void *uinfo) {
719639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
720639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (uinfo) POST_WRITE(uinfo, siginfo_t_sz);
721639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
722639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
723639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
724639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(kill)(long pid, long sig) {}
725639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
726639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(kill)(long res, long pid, long sig) {}
727639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
728639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(tgkill)(long tgid, long pid, long sig) {}
729639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
730639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(tgkill)(long res, long tgid, long pid, long sig) {}
731639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
732639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(tkill)(long pid, long sig) {}
733639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
734639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(tkill)(long res, long pid, long sig) {}
735639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
736639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_sigqueueinfo)(long pid, long sig, void *uinfo) {}
737639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
738639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_sigqueueinfo)(long res, long pid, long sig, void *uinfo) {
739639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
740639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (uinfo) POST_WRITE(uinfo, siginfo_t_sz);
741639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
742639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
743639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
744639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sgetmask)() {}
745639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
746639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sgetmask)(long res) {}
747639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
748639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ssetmask)(long newmask) {}
749639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
750639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ssetmask)(long res, long newmask) {}
751639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
752639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(signal)(long sig, long handler) {}
753639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
754639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(signal)(long res, long sig, long handler) {}
755639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
756639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pause)() {}
757639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
758639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pause)(long res) {}
759639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
760639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sync)() {}
761639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
762639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sync)(long res) {}
763639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
764639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fsync)(long fd) {}
765639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
766639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fsync)(long res, long fd) {}
767639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
768639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fdatasync)(long fd) {}
769639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
770639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fdatasync)(long res, long fd) {}
771639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
772639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(bdflush)(long func, long data) {}
773639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
774639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(bdflush)(long res, long func, long data) {}
775639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
776639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mount)(void *dev_name, void *dir_name, void *type, long flags,
777639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                   void *data) {}
778639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
779639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mount)(long res, void *dev_name, void *dir_name, void *type,
780639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    long flags, void *data) {
781639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
782639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (dev_name)
783639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(dev_name,
784639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                 __sanitizer::internal_strlen((const char *)dev_name) + 1);
785639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (dir_name)
786639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(dir_name,
787639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                 __sanitizer::internal_strlen((const char *)dir_name) + 1);
788639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (type)
789639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(type, __sanitizer::internal_strlen((const char *)type) + 1);
790639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
791639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
792639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
793639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(umount)(void *name, long flags) {}
794639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
795639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(umount)(long res, void *name, long flags) {
796639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
797639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (name)
798639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1);
799639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
800639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
801639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
802639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(oldumount)(void *name) {}
803639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
804639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(oldumount)(long res, void *name) {
805639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
806639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (name)
807639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1);
808639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
809639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
810639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
811639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(truncate)(const void *path, long length) {
812639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
813639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
814639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
815639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
816639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(truncate)(long res, const void *path, long length) {}
817639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
818639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ftruncate)(long fd, long length) {}
819639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
820639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ftruncate)(long res, long fd, long length) {}
821639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
822639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(stat)(const void *filename, void *statbuf) {
823639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
824639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
825639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
826639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
827639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
828639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(stat)(long res, const void *filename, void *statbuf) {
829639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
830639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct___old_kernel_stat_sz);
831639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
832639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
833639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
8346a211c5814e25d6745a5058cc0e499e5235d3821Stephen Hines#if !SANITIZER_ANDROID
835639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(statfs)(const void *path, void *buf) {
836639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
837639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
838639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
839639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
840639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(statfs)(long res, const void *path, void *buf) {
841639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
842639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, struct_statfs_sz);
843639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
844639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
845639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
846639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(statfs64)(const void *path, long sz, void *buf) {
847639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
848639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
849639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
850639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
851639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(statfs64)(long res, const void *path, long sz, void *buf) {
852639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
853639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, struct_statfs64_sz);
854639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
855639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
856639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
857639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstatfs)(long fd, void *buf) {}
858639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
859639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstatfs)(long res, long fd, void *buf) {
860639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
861639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, struct_statfs_sz);
862639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
863639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
864639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
865639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstatfs64)(long fd, long sz, void *buf) {}
866639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
867639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstatfs64)(long res, long fd, long sz, void *buf) {
868639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
869639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, struct_statfs64_sz);
870639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
871639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
8726a211c5814e25d6745a5058cc0e499e5235d3821Stephen Hines#endif // !SANITIZER_ANDROID
873639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
874639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lstat)(const void *filename, void *statbuf) {
875639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
876639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
877639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
878639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
879639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
880639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lstat)(long res, const void *filename, void *statbuf) {
881639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
882639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct___old_kernel_stat_sz);
883639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
884639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
885639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
886639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstat)(long fd, void *statbuf) {}
887639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
888639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstat)(long res, long fd, void *statbuf) {
889639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
890639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct___old_kernel_stat_sz);
891639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
892639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
893639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
894639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newstat)(const void *filename, void *statbuf) {
895639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
896639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
897639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
898639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
899639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
900639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newstat)(long res, const void *filename, void *statbuf) {
901639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
902639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct_kernel_stat_sz);
903639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
904639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
905639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
906639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newlstat)(const void *filename, void *statbuf) {
907639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
908639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
909639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
910639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
911639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
912639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newlstat)(long res, const void *filename, void *statbuf) {
913639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
914639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct_kernel_stat_sz);
915639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
916639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
917639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
918639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newfstat)(long fd, void *statbuf) {}
919639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
920639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newfstat)(long res, long fd, void *statbuf) {
921639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
922639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct_kernel_stat_sz);
923639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
924639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
925639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
92625ecb75efb30f8a8f80cc89c3a1cb83508e7bacfEvgeniy Stepanov#if !SANITIZER_ANDROID
927639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ustat)(long dev, void *ubuf) {}
928639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
929639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ustat)(long res, long dev, void *ubuf) {
930639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
931639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ubuf) POST_WRITE(ubuf, struct_ustat_sz);
932639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
933639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
93425ecb75efb30f8a8f80cc89c3a1cb83508e7bacfEvgeniy Stepanov#endif  // !SANITIZER_ANDROID
935639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
936639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(stat64)(const void *filename, void *statbuf) {
937639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
938639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
939639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
940639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
941639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
942639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(stat64)(long res, const void *filename, void *statbuf) {
943639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
944639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct_kernel_stat64_sz);
945639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
946639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
947639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
948639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstat64)(long fd, void *statbuf) {}
949639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
950639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstat64)(long res, long fd, void *statbuf) {
951639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
952639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct_kernel_stat64_sz);
953639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
954639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
955639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
956639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lstat64)(const void *filename, void *statbuf) {
957639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
958639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
959639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
960639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
961639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
962639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lstat64)(long res, const void *filename, void *statbuf) {
963639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
964639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct_kernel_stat64_sz);
965639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
966639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
967639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
968639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setxattr)(const void *path, const void *name, const void *value,
969639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long size, long flags) {
970639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
971639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
972639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
973639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
974639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (value) PRE_READ(value, size);
975639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
976639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
977639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setxattr)(long res, const void *path, const void *name,
978639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       const void *value, long size, long flags) {}
979639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
980639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lsetxattr)(const void *path, const void *name, const void *value,
981639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long size, long flags) {
982639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
983639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
984639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
985639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
986639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (value) PRE_READ(value, size);
987639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
988639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
989639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lsetxattr)(long res, const void *path, const void *name,
990639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        const void *value, long size, long flags) {}
991639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
992639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fsetxattr)(long fd, const void *name, const void *value, long size,
993639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long flags) {
994639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
995639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
996639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (value) PRE_READ(value, size);
997639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
998639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
999639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fsetxattr)(long res, long fd, const void *name, const void *value,
1000639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long size, long flags) {}
1001639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1002639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getxattr)(const void *path, const void *name, void *value,
1003639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long size) {
1004639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
1005639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
1006639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
1007639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
1008639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1009639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1010639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getxattr)(long res, const void *path, const void *name,
1011639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       void *value, long size) {
10122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (size && res > 0) {
10132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (value) POST_WRITE(value, res);
1014639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1015639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1016639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1017639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lgetxattr)(const void *path, const void *name, void *value,
1018639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long size) {
1019639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
1020639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
1021639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
1022639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
1023639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1024639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1025639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lgetxattr)(long res, const void *path, const void *name,
1026639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        void *value, long size) {
10272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (size && res > 0) {
10282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (value) POST_WRITE(value, res);
1029639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1030639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1031639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1032639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fgetxattr)(long fd, const void *name, void *value, long size) {
1033639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
1034639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
1035639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1036639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1037639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fgetxattr)(long res, long fd, const void *name, void *value,
1038639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long size) {
10392d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (size && res > 0) {
10402d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (value) POST_WRITE(value, res);
1041639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1042639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1043639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1044639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(listxattr)(const void *path, void *list, long size) {
1045639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
1046639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
1047639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1048639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1049639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(listxattr)(long res, const void *path, void *list, long size) {
10502d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (size && res > 0) {
10512d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (list) POST_WRITE(list, res);
1052639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1053639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1054639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1055639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(llistxattr)(const void *path, void *list, long size) {
1056639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
1057639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
1058639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1059639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1060639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(llistxattr)(long res, const void *path, void *list, long size) {
10612d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (size && res > 0) {
10622d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (list) POST_WRITE(list, res);
1063639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1064639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1065639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1066639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(flistxattr)(long fd, void *list, long size) {}
1067639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1068639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(flistxattr)(long res, long fd, void *list, long size) {
10692d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (size && res > 0) {
10702d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (list) POST_WRITE(list, res);
1071639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1072639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1073639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1074639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(removexattr)(const void *path, const void *name) {
1075639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
1076639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
1077639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
1078639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
1079639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1080639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1081639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(removexattr)(long res, const void *path, const void *name) {}
1082639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1083639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lremovexattr)(const void *path, const void *name) {
1084639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
1085639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
1086639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
1087639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
1088639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1089639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1090639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lremovexattr)(long res, const void *path, const void *name) {}
1091639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1092639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fremovexattr)(long fd, const void *name) {
1093639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
1094639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
1095639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1096639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1097639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fremovexattr)(long res, long fd, const void *name) {}
1098639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1099639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(brk)(long brk) {}
1100639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1101639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(brk)(long res, long brk) {}
1102639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1103639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mprotect)(long start, long len, long prot) {}
1104639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1105639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mprotect)(long res, long start, long len, long prot) {}
1106639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1107639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mremap)(long addr, long old_len, long new_len, long flags,
1108639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    long new_addr) {}
1109639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1110639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mremap)(long res, long addr, long old_len, long new_len,
1111639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long flags, long new_addr) {}
1112639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1113639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(remap_file_pages)(long start, long size, long prot, long pgoff,
1114639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              long flags) {}
1115639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1116639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(remap_file_pages)(long res, long start, long size, long prot,
1117639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                               long pgoff, long flags) {}
1118639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1119639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msync)(long start, long len, long flags) {}
1120639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1121639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msync)(long res, long start, long len, long flags) {}
1122639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1123639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(munmap)(long addr, long len) {}
1124639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1125639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(munmap)(long res, long addr, long len) {}
1126639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1127639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mlock)(long start, long len) {}
1128639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1129639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mlock)(long res, long start, long len) {}
1130639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1131639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(munlock)(long start, long len) {}
1132639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1133639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(munlock)(long res, long start, long len) {}
1134639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1135639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mlockall)(long flags) {}
1136639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1137639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mlockall)(long res, long flags) {}
1138639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1139639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(munlockall)() {}
1140639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1141639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(munlockall)(long res) {}
1142639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1143639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(madvise)(long start, long len, long behavior) {}
1144639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1145639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(madvise)(long res, long start, long len, long behavior) {}
1146639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1147639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mincore)(long start, long len, void *vec) {}
1148639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1149639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mincore)(long res, long start, long len, void *vec) {
1150639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1151639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (vec) {
1152639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(vec, (len + GetPageSizeCached() - 1) / GetPageSizeCached());
1153639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    }
1154639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1155639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1156639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1157639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pivot_root)(const void *new_root, const void *put_old) {
1158639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (new_root)
1159639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(new_root,
1160639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)new_root) + 1);
1161639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (put_old)
1162639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(put_old, __sanitizer::internal_strlen((const char *)put_old) + 1);
1163639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1164639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1165639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pivot_root)(long res, const void *new_root, const void *put_old) {}
1166639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1167639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chroot)(const void *filename) {
1168639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1169639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1170639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1171639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1172639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1173639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chroot)(long res, const void *filename) {}
1174639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1175639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mknod)(const void *filename, long mode, long dev) {
1176639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1177639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1178639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1179639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1180639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1181639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mknod)(long res, const void *filename, long mode, long dev) {}
1182639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1183639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(link)(const void *oldname, const void *newname) {
1184639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (oldname)
1185639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1);
1186639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (newname)
1187639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1);
1188639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1189639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1190639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(link)(long res, const void *oldname, const void *newname) {}
1191639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1192639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(symlink)(const void *old, const void *new_) {
1193639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (old) PRE_READ(old, __sanitizer::internal_strlen((const char *)old) + 1);
1194639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (new_)
1195639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(new_, __sanitizer::internal_strlen((const char *)new_) + 1);
1196639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1197639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1198639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(symlink)(long res, const void *old, const void *new_) {}
1199639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1200639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(unlink)(const void *pathname) {
1201639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (pathname)
1202639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(pathname,
1203639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)pathname) + 1);
1204639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1205639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1206639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(unlink)(long res, const void *pathname) {}
1207639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1208639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rename)(const void *oldname, const void *newname) {
1209639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (oldname)
1210639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1);
1211639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (newname)
1212639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1);
1213639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1214639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1215639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rename)(long res, const void *oldname, const void *newname) {}
1216639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1217639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chmod)(const void *filename, long mode) {
1218639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1219639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1220639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1221639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1222639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1223639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chmod)(long res, const void *filename, long mode) {}
1224639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1225639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchmod)(long fd, long mode) {}
1226639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1227639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchmod)(long res, long fd, long mode) {}
1228639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1229639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fcntl)(long fd, long cmd, long arg) {}
1230639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1231639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fcntl)(long res, long fd, long cmd, long arg) {}
1232639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1233639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fcntl64)(long fd, long cmd, long arg) {}
1234639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1235639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fcntl64)(long res, long fd, long cmd, long arg) {}
1236639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1237639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pipe)(void *fildes) {}
1238639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1239639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pipe)(long res, void *fildes) {
1240639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1241639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (fildes) POST_WRITE(fildes, sizeof(int));
1242639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1243639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1244639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1245639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pipe2)(void *fildes, long flags) {}
1246639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1247639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pipe2)(long res, void *fildes, long flags) {
1248639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1249639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (fildes) POST_WRITE(fildes, sizeof(int));
1250639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1251639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1252639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1253639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(dup)(long fildes) {}
1254639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1255639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(dup)(long res, long fildes) {}
1256639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1257639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(dup2)(long oldfd, long newfd) {}
1258639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1259639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(dup2)(long res, long oldfd, long newfd) {}
1260639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1261639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(dup3)(long oldfd, long newfd, long flags) {}
1262639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1263639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(dup3)(long res, long oldfd, long newfd, long flags) {}
1264639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1265639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ioperm)(long from, long num, long on) {}
1266639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1267639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ioperm)(long res, long from, long num, long on) {}
1268639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1269639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ioctl)(long fd, long cmd, long arg) {}
1270639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1271639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ioctl)(long res, long fd, long cmd, long arg) {}
1272639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1273639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(flock)(long fd, long cmd) {}
1274639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1275639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(flock)(long res, long fd, long cmd) {}
1276639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
12772d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPRE_SYSCALL(io_setup)(long nr_reqs, void **ctx) {
12782d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (ctx) PRE_WRITE(ctx, sizeof(*ctx));
12792d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines}
1280639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
12812d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPOST_SYSCALL(io_setup)(long res, long nr_reqs, void **ctx) {
1282639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
12832d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (ctx) POST_WRITE(ctx, sizeof(*ctx));
12842d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // (*ctx) is actually a pointer to a kernel mapped page, and there are
12852d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // people out there who are crazy enough to peek into that page's 32-byte
12862d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // header.
12872d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (*ctx) POST_WRITE(*ctx, 32);
1288639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1289639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1290639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1291639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(io_destroy)(long ctx) {}
1292639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1293639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(io_destroy)(long res, long ctx) {}
1294639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
12952d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPRE_SYSCALL(io_getevents)(long ctx_id, long min_nr, long nr,
12962d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                          __sanitizer_io_event *ioevpp, void *timeout) {
1297639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (timeout) PRE_READ(timeout, struct_timespec_sz);
1298639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1299639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1300639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(io_getevents)(long res, long ctx_id, long min_nr, long nr,
13012d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                           __sanitizer_io_event *ioevpp, void *timeout) {
1302639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
13032d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (ioevpp) POST_WRITE(ioevpp, res * sizeof(*ioevpp));
1304639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (timeout) POST_WRITE(timeout, struct_timespec_sz);
1305639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
13062d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  for (long i = 0; i < res; i++) {
13072d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // We synchronize io_submit -> io_getevents/io_cancel using the
13082d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // user-provided data context. Data is not necessary a pointer, it can be
13092d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // an int, 0 or whatever; acquire/release will correctly handle this.
13102d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // This scheme can lead to false negatives, e.g. when all operations
13112d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // synchronize on 0. But there does not seem to be a better solution
13122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // (except wrapping all operations in own context, which is unreliable).
13132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // We can not reliably extract fildes in io_getevents.
13142d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    COMMON_SYSCALL_ACQUIRE((void*)ioevpp[i].data);
13152d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  }
1316639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1317639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1318bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy StepanovPRE_SYSCALL(io_submit)(long ctx_id, long nr, __sanitizer_iocb **iocbpp) {
1319bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy Stepanov  for (long i = 0; i < nr; ++i) {
13202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    uptr op = iocbpp[i]->aio_lio_opcode;
13212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    void *data = (void*)iocbpp[i]->aio_data;
13222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    void *buf = (void*)iocbpp[i]->aio_buf;
13232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    uptr len = (uptr)iocbpp[i]->aio_nbytes;
13242d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (op == iocb_cmd_pwrite && buf && len) {
13252d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines      PRE_READ(buf, len);
13262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    } else if (op == iocb_cmd_pread && buf && len) {
13272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines      POST_WRITE(buf, len);
13282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    } else if (op == iocb_cmd_pwritev) {
13296d1862363c88c183b0ed7740fca876342cf0474bStephen Hines      __sanitizer_iovec *iovec = (__sanitizer_iovec*)buf;
13302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines      for (uptr v = 0; v < len; v++)
13316d1862363c88c183b0ed7740fca876342cf0474bStephen Hines        PRE_READ(iovec[v].iov_base, iovec[v].iov_len);
13322d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    } else if (op == iocb_cmd_preadv) {
13336d1862363c88c183b0ed7740fca876342cf0474bStephen Hines      __sanitizer_iovec *iovec = (__sanitizer_iovec*)buf;
13342d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines      for (uptr v = 0; v < len; v++)
13356d1862363c88c183b0ed7740fca876342cf0474bStephen Hines        POST_WRITE(iovec[v].iov_base, iovec[v].iov_len);
13362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    }
13372d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    // See comment in io_getevents.
13382d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    COMMON_SYSCALL_RELEASE(data);
1339bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy Stepanov  }
1340bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy Stepanov}
1341639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1342bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy StepanovPOST_SYSCALL(io_submit)(long res, long ctx_id, long nr,
13432d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    __sanitizer_iocb **iocbpp) {}
1344639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
13452d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPRE_SYSCALL(io_cancel)(long ctx_id, __sanitizer_iocb *iocb,
13462d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    __sanitizer_io_event *result) {
13472d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines}
1348639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
13492d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPOST_SYSCALL(io_cancel)(long res, long ctx_id, __sanitizer_iocb *iocb,
13502d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    __sanitizer_io_event *result) {
13512d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (res == 0) {
13522d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (result) {
13532d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines      // See comment in io_getevents.
13542d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines      COMMON_SYSCALL_ACQUIRE((void*)result->data);
13552d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines      POST_WRITE(result, sizeof(*result));
13562d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    }
13572d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if (iocb)
13582d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines      POST_WRITE(iocb, sizeof(*iocb));
1359639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1360639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1361639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1362639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendfile)(long out_fd, long in_fd, void *offset, long count) {}
1363639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1364639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendfile)(long res, long out_fd, long in_fd,
1365a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                       __sanitizer___kernel_off_t *offset, long count) {
1366639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1367639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (offset) POST_WRITE(offset, sizeof(*offset));
1368639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1369639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1370639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1371639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendfile64)(long out_fd, long in_fd, void *offset, long count) {}
1372639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1373639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendfile64)(long res, long out_fd, long in_fd,
1374a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                         __sanitizer___kernel_loff_t *offset, long count) {
1375639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1376639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (offset) POST_WRITE(offset, sizeof(*offset));
1377639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1378639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1379639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1380639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(readlink)(const void *path, void *buf, long bufsiz) {
1381639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
1382639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
1383639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1384639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1385639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(readlink)(long res, const void *path, void *buf, long bufsiz) {
1386639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1387639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf)
1388639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1);
1389639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1390639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1391639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1392639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(creat)(const void *pathname, long mode) {
1393639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (pathname)
1394639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(pathname,
1395639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)pathname) + 1);
1396639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1397639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1398639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(creat)(long res, const void *pathname, long mode) {}
1399639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1400639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(open)(const void *filename, long flags, long mode) {
1401639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1402639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1403639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1404639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1405639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1406639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(open)(long res, const void *filename, long flags, long mode) {}
1407639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1408b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry VyukovPRE_SYSCALL(close)(long fd) {
1409b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov  COMMON_SYSCALL_FD_CLOSE((int)fd);
1410b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov}
1411639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1412639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(close)(long res, long fd) {}
1413639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1414639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(access)(const void *filename, long mode) {
1415639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1416639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1417639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1418639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1419639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1420639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(access)(long res, const void *filename, long mode) {}
1421639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1422639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(vhangup)() {}
1423639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1424639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(vhangup)(long res) {}
1425639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1426639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chown)(const void *filename, long user, long group) {
1427639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1428639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1429639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1430639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1431639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1432639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chown)(long res, const void *filename, long user, long group) {}
1433639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1434639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lchown)(const void *filename, long user, long group) {
1435639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1436639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1437639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1438639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1439639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1440639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lchown)(long res, const void *filename, long user, long group) {}
1441639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1442639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchown)(long fd, long user, long group) {}
1443639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1444639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchown)(long res, long fd, long user, long group) {}
1445639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
144686277eb844c4983c81de62d7c050e92fe7155788Stephen Hines#if SANITIZER_USES_UID16_SYSCALLS
1447639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chown16)(const void *filename, long user, long group) {
1448639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1449639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1450639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1451639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1452639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1453639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chown16)(long res, const void *filename, long user, long group) {}
1454639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1455639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lchown16)(const void *filename, long user, long group) {
1456639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1457639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1458639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1459639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1460639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1461639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lchown16)(long res, const void *filename, long user, long group) {}
1462639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1463639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchown16)(long fd, long user, long group) {}
1464639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1465639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchown16)(long res, long fd, long user, long group) {}
1466639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1467639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setregid16)(long rgid, long egid) {}
1468639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1469639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setregid16)(long res, long rgid, long egid) {}
1470639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1471639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setgid16)(long gid) {}
1472639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1473639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setgid16)(long res, long gid) {}
1474639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1475639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setreuid16)(long ruid, long euid) {}
1476639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1477639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setreuid16)(long res, long ruid, long euid) {}
1478639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1479639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setuid16)(long uid) {}
1480639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1481639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setuid16)(long res, long uid) {}
1482639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1483639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setresuid16)(long ruid, long euid, long suid) {}
1484639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1485639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setresuid16)(long res, long ruid, long euid, long suid) {}
1486639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1487639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getresuid16)(void *ruid, void *euid, void *suid) {}
1488639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1489a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(getresuid16)(long res, __sanitizer___kernel_old_uid_t *ruid,
1490a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                          __sanitizer___kernel_old_uid_t *euid,
1491a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                          __sanitizer___kernel_old_uid_t *suid) {
1492639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1493639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ruid) POST_WRITE(ruid, sizeof(*ruid));
1494639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (euid) POST_WRITE(euid, sizeof(*euid));
1495639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (suid) POST_WRITE(suid, sizeof(*suid));
1496639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1497639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1498639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1499639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setresgid16)(long rgid, long egid, long sgid) {}
1500639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1501639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setresgid16)(long res, long rgid, long egid, long sgid) {}
1502639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1503639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getresgid16)(void *rgid, void *egid, void *sgid) {}
1504639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1505a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(getresgid16)(long res, __sanitizer___kernel_old_gid_t *rgid,
1506a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                          __sanitizer___kernel_old_gid_t *egid,
1507a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                          __sanitizer___kernel_old_gid_t *sgid) {
1508639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1509639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (rgid) POST_WRITE(rgid, sizeof(*rgid));
1510639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (egid) POST_WRITE(egid, sizeof(*egid));
1511639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (sgid) POST_WRITE(sgid, sizeof(*sgid));
1512639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1513639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1514639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1515639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setfsuid16)(long uid) {}
1516639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1517639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setfsuid16)(long res, long uid) {}
1518639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1519639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setfsgid16)(long gid) {}
1520639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1521639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setfsgid16)(long res, long gid) {}
1522639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1523a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(getgroups16)(long gidsetsize,
1524a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                         __sanitizer___kernel_old_gid_t *grouplist) {}
1525639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1526639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getgroups16)(long res, long gidsetsize,
1527a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                          __sanitizer___kernel_old_gid_t *grouplist) {
1528639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1529639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (grouplist) POST_WRITE(grouplist, res * sizeof(*grouplist));
1530639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1531639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1532639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1533a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(setgroups16)(long gidsetsize,
1534a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                         __sanitizer___kernel_old_gid_t *grouplist) {
1535639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (grouplist) POST_WRITE(grouplist, gidsetsize * sizeof(*grouplist));
1536639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1537639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1538639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setgroups16)(long res, long gidsetsize,
1539a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                          __sanitizer___kernel_old_gid_t *grouplist) {}
1540639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1541639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getuid16)() {}
1542639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1543639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getuid16)(long res) {}
1544639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1545639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(geteuid16)() {}
1546639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1547639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(geteuid16)(long res) {}
1548639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1549639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getgid16)() {}
1550639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1551639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getgid16)(long res) {}
1552639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1553639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getegid16)() {}
1554639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1555639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getegid16)(long res) {}
155686277eb844c4983c81de62d7c050e92fe7155788Stephen Hines#endif // SANITIZER_USES_UID16_SYSCALLS
1557639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1558639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(utime)(void *filename, void *times) {}
1559639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1560639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(utime)(long res, void *filename, void *times) {
1561639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1562639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (filename)
1563639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(filename,
1564639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                 __sanitizer::internal_strlen((const char *)filename) + 1);
1565639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (times) POST_WRITE(times, struct_utimbuf_sz);
1566639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1567639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1568639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1569639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(utimes)(void *filename, void *utimes) {}
1570639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1571639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(utimes)(long res, void *filename, void *utimes) {
1572639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1573639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (filename)
1574639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(filename,
1575639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                 __sanitizer::internal_strlen((const char *)filename) + 1);
1576639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (utimes) POST_WRITE(utimes, timeval_sz);
1577639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1578639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1579639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1580639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lseek)(long fd, long offset, long origin) {}
1581639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1582639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lseek)(long res, long fd, long offset, long origin) {}
1583639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1584639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(llseek)(long fd, long offset_high, long offset_low, void *result,
1585639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    long origin) {}
1586639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1587639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(llseek)(long res, long fd, long offset_high, long offset_low,
1588639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     void *result, long origin) {
1589639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1590639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (result) POST_WRITE(result, sizeof(long long));
1591639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1592639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1593639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1594639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(readv)(long fd, const __sanitizer_iovec *vec, long vlen) {}
1595639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1596639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(readv)(long res, long fd, const __sanitizer_iovec *vec,
1597639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    long vlen) {
1598639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1599639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (vec) kernel_write_iovec(vec, vlen, res);
1600639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1601639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1602639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1603639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(write)(long fd, const void *buf, long count) {
1604639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (buf) PRE_READ(buf, count);
1605639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1606639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1607639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(write)(long res, long fd, const void *buf, long count) {}
1608639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1609639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(writev)(long fd, const __sanitizer_iovec *vec, long vlen) {}
1610639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1611639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(writev)(long res, long fd, const __sanitizer_iovec *vec,
1612639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long vlen) {
1613639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1614639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (vec) kernel_read_iovec(vec, vlen, res);
1615639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1616639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1617639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1618639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#ifdef _LP64
1619639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pread64)(long fd, void *buf, long count, long pos) {}
1620639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1621639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pread64)(long res, long fd, void *buf, long count, long pos) {
1622639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1623639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, res);
1624639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1625639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1626639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1627639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pwrite64)(long fd, const void *buf, long count, long pos) {
1628639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (buf) PRE_READ(buf, count);
1629639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1630639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1631639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pwrite64)(long res, long fd, const void *buf, long count,
1632639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long pos) {}
1633639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#else
1634639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pread64)(long fd, void *buf, long count, long pos0, long pos1) {}
1635639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1636639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pread64)(long res, long fd, void *buf, long count, long pos0,
1637639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long pos1) {
1638639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1639639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, res);
1640639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1641639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1642639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1643639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pwrite64)(long fd, const void *buf, long count, long pos0,
1644639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long pos1) {
1645639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (buf) PRE_READ(buf, count);
1646639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1647639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1648639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pwrite64)(long res, long fd, const void *buf, long count,
1649639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long pos0, long pos1) {}
1650639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#endif
1651639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1652639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(preadv)(long fd, const __sanitizer_iovec *vec, long vlen,
1653639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    long pos_l, long pos_h) {}
1654639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1655639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(preadv)(long res, long fd, const __sanitizer_iovec *vec, long vlen,
1656639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long pos_l, long pos_h) {
1657639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1658639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (vec) kernel_write_iovec(vec, vlen, res);
1659639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1660639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1661639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1662639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pwritev)(long fd, const __sanitizer_iovec *vec, long vlen,
1663639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long pos_l, long pos_h) {}
1664639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1665639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pwritev)(long res, long fd, const __sanitizer_iovec *vec,
1666639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long vlen, long pos_l, long pos_h) {
1667639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1668639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (vec) kernel_read_iovec(vec, vlen, res);
1669639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1670639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1671639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1672639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getcwd)(void *buf, long size) {}
1673639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1674639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getcwd)(long res, void *buf, long size) {
1675639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1676639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf)
1677639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1);
1678639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1679639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1680639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1681639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mkdir)(const void *pathname, long mode) {
1682639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (pathname)
1683639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(pathname,
1684639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)pathname) + 1);
1685639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1686639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1687639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mkdir)(long res, const void *pathname, long mode) {}
1688639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1689639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chdir)(const void *filename) {
1690639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
1691639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
1692639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
1693639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1694639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1695639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chdir)(long res, const void *filename) {}
1696639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1697639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchdir)(long fd) {}
1698639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1699639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchdir)(long res, long fd) {}
1700639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1701639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rmdir)(const void *pathname) {
1702639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (pathname)
1703639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(pathname,
1704639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)pathname) + 1);
1705639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1706639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1707639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rmdir)(long res, const void *pathname) {}
1708639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1709639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lookup_dcookie)(u64 cookie64, void *buf, long len) {}
1710639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1711639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lookup_dcookie)(long res, u64 cookie64, void *buf, long len) {
1712639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1713639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf)
1714639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1);
1715639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1716639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1717639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1718639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(quotactl)(long cmd, const void *special, long id, void *addr) {
1719639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (special)
1720639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(special, __sanitizer::internal_strlen((const char *)special) + 1);
1721639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1722639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1723639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(quotactl)(long res, long cmd, const void *special, long id,
1724639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       void *addr) {}
1725639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1726639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getdents)(long fd, void *dirent, long count) {}
1727639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1728639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getdents)(long res, long fd, void *dirent, long count) {
1729639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1730639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (dirent) POST_WRITE(dirent, res);
1731639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1732639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1733639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1734639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getdents64)(long fd, void *dirent, long count) {}
1735639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1736639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getdents64)(long res, long fd, void *dirent, long count) {
1737639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1738639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (dirent) POST_WRITE(dirent, res);
1739639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1740639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1741639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1742639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setsockopt)(long fd, long level, long optname, void *optval,
1743639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long optlen) {}
1744639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1745639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setsockopt)(long res, long fd, long level, long optname,
1746639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         void *optval, long optlen) {
1747639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1748639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (optval)
1749639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(optval,
1750639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                 __sanitizer::internal_strlen((const char *)optval) + 1);
1751639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1752639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1753639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1754639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getsockopt)(long fd, long level, long optname, void *optval,
1755639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        void *optlen) {}
1756639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1757639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getsockopt)(long res, long fd, long level, long optname,
1758639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         void *optval, void *optlen) {
1759639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1760639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (optval)
1761639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(optval,
1762639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                 __sanitizer::internal_strlen((const char *)optval) + 1);
1763639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (optlen) POST_WRITE(optlen, sizeof(int));
1764639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1765639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1766639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1767639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(bind)(long arg0, sanitizer_kernel_sockaddr *arg1, long arg2) {}
1768639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1769639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(bind)(long res, long arg0, sanitizer_kernel_sockaddr *arg1,
1770639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                   long arg2) {
1771639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1772639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_WRITE(arg1, sizeof(*arg1));
1773639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1774639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1775639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1776639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(connect)(long arg0, sanitizer_kernel_sockaddr *arg1, long arg2) {}
1777639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1778639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(connect)(long res, long arg0, sanitizer_kernel_sockaddr *arg1,
1779639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long arg2) {
1780639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1781639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_WRITE(arg1, sizeof(*arg1));
1782639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1783639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1784639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1785639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(accept)(long arg0, sanitizer_kernel_sockaddr *arg1, void *arg2) {}
1786639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1787639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(accept)(long res, long arg0, sanitizer_kernel_sockaddr *arg1,
1788639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     void *arg2) {
1789639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1790639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_WRITE(arg1, sizeof(*arg1));
1791639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg2) POST_WRITE(arg2, sizeof(unsigned));
1792639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1793639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1794639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1795639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(accept4)(long arg0, sanitizer_kernel_sockaddr *arg1, void *arg2,
1796639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long arg3) {}
1797639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1798639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(accept4)(long res, long arg0, sanitizer_kernel_sockaddr *arg1,
1799639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      void *arg2, long arg3) {
1800639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1801639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_WRITE(arg1, sizeof(*arg1));
1802639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg2) POST_WRITE(arg2, sizeof(unsigned));
1803639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1804639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1805639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1806639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getsockname)(long arg0, sanitizer_kernel_sockaddr *arg1,
1807639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         void *arg2) {}
1808639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1809639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getsockname)(long res, long arg0, sanitizer_kernel_sockaddr *arg1,
1810639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                          void *arg2) {
1811639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1812639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_WRITE(arg1, sizeof(*arg1));
1813639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg2) POST_WRITE(arg2, sizeof(unsigned));
1814639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1815639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1816639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1817639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpeername)(long arg0, sanitizer_kernel_sockaddr *arg1,
1818639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         void *arg2) {}
1819639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1820639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpeername)(long res, long arg0, sanitizer_kernel_sockaddr *arg1,
1821639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                          void *arg2) {
1822639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1823639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_WRITE(arg1, sizeof(*arg1));
1824639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg2) POST_WRITE(arg2, sizeof(unsigned));
1825639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1826639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1827639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1828639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(send)(long arg0, void *arg1, long arg2, long arg3) {}
1829639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1830639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(send)(long res, long arg0, void *arg1, long arg2, long arg3) {
1831639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res) {
1832639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_READ(arg1, res);
1833639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1834639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1835639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1836639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendto)(long arg0, void *arg1, long arg2, long arg3,
1837639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    sanitizer_kernel_sockaddr *arg4, long arg5) {}
1838639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1839639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendto)(long res, long arg0, void *arg1, long arg2, long arg3,
1840639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     sanitizer_kernel_sockaddr *arg4, long arg5) {
1841639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1842639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_READ(arg1, res);
1843639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg4) POST_WRITE(arg4, sizeof(*arg4));
1844639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1845639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1846639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1847639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendmsg)(long fd, void *msg, long flags) {}
1848639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1849639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendmsg)(long res, long fd, void *msg, long flags) {
1850639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  // FIXME: POST_READ
1851639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1852639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1853639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendmmsg)(long fd, void *msg, long vlen, long flags) {}
1854639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1855639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendmmsg)(long res, long fd, void *msg, long vlen, long flags) {
1856639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  // FIXME: POST_READ
1857639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1858639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1859639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(recv)(long arg0, void *buf, long len, long flags) {}
1860639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1861639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(recv)(long res, void *buf, long len, long flags) {
1862639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1863639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, res);
1864639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1865639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1866639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1867639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(recvfrom)(long arg0, void *buf, long len, long flags,
1868639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      sanitizer_kernel_sockaddr *arg4, void *arg5) {}
1869639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1870639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(recvfrom)(long res, long arg0, void *buf, long len, long flags,
1871639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       sanitizer_kernel_sockaddr *arg4, void *arg5) {
1872639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1873639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, res);
1874639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg4) POST_WRITE(arg4, sizeof(*arg4));
1875639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg5) POST_WRITE(arg5, sizeof(int));
1876639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1877639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1878639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1879639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(socket)(long arg0, long arg1, long arg2) {}
1880639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1881639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(socket)(long res, long arg0, long arg1, long arg2) {}
1882639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1883639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(socketpair)(long arg0, long arg1, long arg2, void *arg3) {}
1884639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1885639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(socketpair)(long res, long arg0, long arg1, long arg2,
1886639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         void *arg3) {
1887639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1888639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg3) POST_WRITE(arg3, sizeof(int));
1889639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1890639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1891639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1892639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(socketcall)(long call, void *args) {}
1893639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1894639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(socketcall)(long res, long call, void *args) {
1895639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1896639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (args) POST_WRITE(args, sizeof(long));
1897639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1898639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1899639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1900639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(listen)(long arg0, long arg1) {}
1901639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1902639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(listen)(long res, long arg0, long arg1) {}
1903639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1904639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(poll)(void *ufds, long nfds, long timeout) {}
1905639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1906639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(poll)(long res, __sanitizer_pollfd *ufds, long nfds,
1907639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                   long timeout) {
1908639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1909639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ufds) POST_WRITE(ufds, nfds * sizeof(*ufds));
1910639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1911639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1912639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1913a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(select)(long n, __sanitizer___kernel_fd_set *inp,
1914a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                    __sanitizer___kernel_fd_set *outp,
1915a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                    __sanitizer___kernel_fd_set *exp, void *tvp) {}
1916639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1917a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(select)(long res, long n, __sanitizer___kernel_fd_set *inp,
1918a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                     __sanitizer___kernel_fd_set *outp,
1919a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                     __sanitizer___kernel_fd_set *exp, void *tvp) {
1920639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1921639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (inp) POST_WRITE(inp, sizeof(*inp));
1922639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (outp) POST_WRITE(outp, sizeof(*outp));
1923639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (exp) POST_WRITE(exp, sizeof(*exp));
1924639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (tvp) POST_WRITE(tvp, timeval_sz);
1925639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1926639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1927639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1928639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(old_select)(void *arg) {}
1929639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1930639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(old_select)(long res, void *arg) {}
1931639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1932639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_create)(long size) {}
1933639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1934639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_create)(long res, long size) {}
1935639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1936639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_create1)(long flags) {}
1937639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1938639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_create1)(long res, long flags) {}
1939639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1940639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_ctl)(long epfd, long op, long fd, void *event) {}
1941639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1942639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_ctl)(long res, long epfd, long op, long fd, void *event) {
1943639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1944639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (event) POST_WRITE(event, struct_epoll_event_sz);
1945639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1946639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1947639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1948639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_wait)(long epfd, void *events, long maxevents, long timeout) {
1949639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1950639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1951639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_wait)(long res, long epfd, void *events, long maxevents,
1952639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         long timeout) {
1953639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1954639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (events) POST_WRITE(events, struct_epoll_event_sz);
1955639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1956639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1957639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1958639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_pwait)(long epfd, void *events, long maxevents, long timeout,
1959639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         const kernel_sigset_t *sigmask, long sigsetsize) {
1960639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (sigmask) PRE_READ(sigmask, sigsetsize);
1961639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1962639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1963639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_pwait)(long res, long epfd, void *events, long maxevents,
1964639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                          long timeout, const void *sigmask, long sigsetsize) {
1965639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1966639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (events) POST_WRITE(events, struct_epoll_event_sz);
1967639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1968639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1969639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1970639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(gethostname)(void *name, long len) {}
1971639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1972639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(gethostname)(long res, void *name, long len) {
1973639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1974639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (name)
1975639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1);
1976639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1977639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1978639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1979639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sethostname)(void *name, long len) {}
1980639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1981639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sethostname)(long res, void *name, long len) {
1982639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1983639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (name)
1984639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1);
1985639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1986639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1987639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1988639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setdomainname)(void *name, long len) {}
1989639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1990639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setdomainname)(long res, void *name, long len) {
1991639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
1992639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (name)
1993639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1);
1994639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
1995639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
1996639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1997639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newuname)(void *name) {}
1998639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
1999639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newuname)(long res, void *name) {
2000639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2001639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (name) POST_WRITE(name, struct_new_utsname_sz);
2002639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2003639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2004639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2005639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(uname)(void *arg0) {}
2006639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2007639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(uname)(long res, void *arg0) {
2008639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2009639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg0) POST_WRITE(arg0, struct_old_utsname_sz);
2010639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2011639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2012639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2013639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(olduname)(void *arg0) {}
2014639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2015639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(olduname)(long res, void *arg0) {
2016639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2017639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg0) POST_WRITE(arg0, struct_oldold_utsname_sz);
2018639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2019639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2020639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2021639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getrlimit)(long resource, void *rlim) {}
2022639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2023639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getrlimit)(long res, long resource, void *rlim) {
2024639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2025639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (rlim) POST_WRITE(rlim, struct_rlimit_sz);
2026639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2027639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2028639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2029639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(old_getrlimit)(long resource, void *rlim) {}
2030639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2031639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(old_getrlimit)(long res, long resource, void *rlim) {
2032639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2033639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (rlim) POST_WRITE(rlim, struct_rlimit_sz);
2034639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2035639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2036639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2037639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setrlimit)(long resource, void *rlim) {}
2038639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2039639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setrlimit)(long res, long resource, void *rlim) {
2040639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2041639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (rlim) POST_WRITE(rlim, struct_rlimit_sz);
2042639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2043639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2044639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2045639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#if !SANITIZER_ANDROID
2046639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(prlimit64)(long pid, long resource, const void *new_rlim,
2047639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       void *old_rlim) {
2048639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (new_rlim) PRE_READ(new_rlim, struct_rlimit64_sz);
2049639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2050639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2051639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(prlimit64)(long res, long pid, long resource, const void *new_rlim,
2052639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        void *old_rlim) {
2053639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2054639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (old_rlim) POST_WRITE(old_rlim, struct_rlimit64_sz);
2055639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2056639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2057639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#endif
2058639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2059639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getrusage)(long who, void *ru) {}
2060639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2061639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getrusage)(long res, long who, void *ru) {
2062639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2063639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ru) POST_WRITE(ru, struct_rusage_sz);
2064639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2065639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2066639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2067639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(umask)(long mask) {}
2068639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2069639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(umask)(long res, long mask) {}
2070639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2071639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msgget)(long key, long msgflg) {}
2072639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2073639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msgget)(long res, long key, long msgflg) {}
2074639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2075639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msgsnd)(long msqid, void *msgp, long msgsz, long msgflg) {
2076639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (msgp) PRE_READ(msgp, msgsz);
2077639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2078639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2079639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msgsnd)(long res, long msqid, void *msgp, long msgsz,
2080639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long msgflg) {}
2081639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2082639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msgrcv)(long msqid, void *msgp, long msgsz, long msgtyp,
2083639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    long msgflg) {}
2084639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2085639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msgrcv)(long res, long msqid, void *msgp, long msgsz, long msgtyp,
2086639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long msgflg) {
2087639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2088639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (msgp) POST_WRITE(msgp, res);
2089639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2090639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2091639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2092fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#if !SANITIZER_ANDROID
2093639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msgctl)(long msqid, long cmd, void *buf) {}
2094639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2095639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msgctl)(long res, long msqid, long cmd, void *buf) {
2096639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2097639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf) POST_WRITE(buf, struct_msqid_ds_sz);
2098639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2099639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2100fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#endif
2101639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2102639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(semget)(long key, long nsems, long semflg) {}
2103639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2104639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(semget)(long res, long key, long nsems, long semflg) {}
2105639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2106639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(semop)(long semid, void *sops, long nsops) {}
2107639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2108639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(semop)(long res, long semid, void *sops, long nsops) {}
2109639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2110639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(semctl)(long semid, long semnum, long cmd, void *arg) {}
2111639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2112639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(semctl)(long res, long semid, long semnum, long cmd, void *arg) {}
2113639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2114639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(semtimedop)(long semid, void *sops, long nsops,
2115639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        const void *timeout) {
2116639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (timeout) PRE_READ(timeout, struct_timespec_sz);
2117639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2118639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2119639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(semtimedop)(long res, long semid, void *sops, long nsops,
2120639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         const void *timeout) {}
2121639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2122639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shmat)(long shmid, void *shmaddr, long shmflg) {}
2123639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2124639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shmat)(long res, long shmid, void *shmaddr, long shmflg) {
2125639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2126639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (shmaddr)
2127639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(shmaddr,
2128639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                 __sanitizer::internal_strlen((const char *)shmaddr) + 1);
2129639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2130639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2131639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2132639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shmget)(long key, long size, long flag) {}
2133639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2134639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shmget)(long res, long key, long size, long flag) {}
2135639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2136639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shmdt)(void *shmaddr) {}
2137639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2138639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shmdt)(long res, void *shmaddr) {
2139639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2140639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (shmaddr)
2141639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(shmaddr,
2142639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                 __sanitizer::internal_strlen((const char *)shmaddr) + 1);
2143639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2144639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2145639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
21461bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy StepanovPRE_SYSCALL(ipc)(long call, long first, long second, long third, void *ptr,
21471bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov                 long fifth) {}
21481bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov
21491bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy StepanovPOST_SYSCALL(ipc)(long res, long call, long first, long second, long third,
21501bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov                  void *ptr, long fifth) {}
21511bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov
21521bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov#if !SANITIZER_ANDROID
2153639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shmctl)(long shmid, long cmd, void *buf) {}
2154639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2155639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shmctl)(long res, long shmid, long cmd, void *buf) {
2156639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2157f3603890015c130420def39d67a02c2fdafc6f84Evgeniy Stepanov    if (buf) POST_WRITE(buf, sizeof(__sanitizer_shmid_ds));
2158639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2159639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2160639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2161639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_open)(const void *name, long oflag, long mode, void *attr) {
2162639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
2163639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
2164639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2165639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2166639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_open)(long res, const void *name, long oflag, long mode,
2167639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      void *attr) {
2168639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2169639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (attr) POST_WRITE(attr, struct_mq_attr_sz);
2170639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2171639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2172639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2173639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_unlink)(const void *name) {
2174639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
2175639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
2176639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2177639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2178639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_unlink)(long res, const void *name) {}
2179639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2180639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_timedsend)(long mqdes, const void *msg_ptr, long msg_len,
2181639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                          long msg_prio, const void *abs_timeout) {
2182639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (msg_ptr) PRE_READ(msg_ptr, msg_len);
2183639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (abs_timeout) PRE_READ(abs_timeout, struct_timespec_sz);
2184639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2185639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2186639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_timedsend)(long res, long mqdes, const void *msg_ptr,
2187639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                           long msg_len, long msg_prio,
2188639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                           const void *abs_timeout) {}
2189639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2190639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_timedreceive)(long mqdes, void *msg_ptr, long msg_len,
2191639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                             void *msg_prio, const void *abs_timeout) {
2192639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (abs_timeout) PRE_READ(abs_timeout, struct_timespec_sz);
2193639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2194639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2195639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_timedreceive)(long res, long mqdes, void *msg_ptr, long msg_len,
2196639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              int *msg_prio, const void *abs_timeout) {
2197639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2198639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (msg_ptr) POST_WRITE(msg_ptr, res);
2199639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (msg_prio) POST_WRITE(msg_prio, sizeof(*msg_prio));
2200639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2201639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2202639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2203639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_notify)(long mqdes, const void *notification) {
2204639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (notification) PRE_READ(notification, struct_sigevent_sz);
2205639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2206639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2207639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_notify)(long res, long mqdes, const void *notification) {}
2208639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2209639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_getsetattr)(long mqdes, const void *mqstat, void *omqstat) {
2210639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (mqstat) PRE_READ(mqstat, struct_mq_attr_sz);
2211639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2212639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2213639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_getsetattr)(long res, long mqdes, const void *mqstat,
2214639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                            void *omqstat) {
2215639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2216639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (omqstat) POST_WRITE(omqstat, struct_mq_attr_sz);
2217639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2218639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2219639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#endif  // SANITIZER_ANDROID
2220639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2221639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pciconfig_iobase)(long which, long bus, long devfn) {}
2222639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2223639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pciconfig_iobase)(long res, long which, long bus, long devfn) {}
2224639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2225639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pciconfig_read)(long bus, long dfn, long off, long len, void *buf) {
2226639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2227639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2228639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pciconfig_read)(long res, long bus, long dfn, long off, long len,
2229639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                             void *buf) {}
2230639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2231639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pciconfig_write)(long bus, long dfn, long off, long len,
2232639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                             void *buf) {}
2233639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2234639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pciconfig_write)(long res, long bus, long dfn, long off, long len,
2235639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              void *buf) {}
2236639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2237639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(swapon)(const void *specialfile, long swap_flags) {
2238639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (specialfile)
2239639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(specialfile,
2240639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)specialfile) + 1);
2241639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2242639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2243639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(swapon)(long res, const void *specialfile, long swap_flags) {}
2244639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2245639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(swapoff)(const void *specialfile) {
2246639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (specialfile)
2247639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(specialfile,
2248639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)specialfile) + 1);
2249639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2250639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2251639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(swapoff)(long res, const void *specialfile) {}
2252639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2253639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sysctl)(__sanitizer___sysctl_args *args) {
2254639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (args) {
2255639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (args->name) PRE_READ(args->name, args->nlen * sizeof(*args->name));
2256639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (args->newval) PRE_READ(args->name, args->newlen);
2257639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2258639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2259639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2260639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sysctl)(long res, __sanitizer___sysctl_args *args) {
2261639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2262639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (args && args->oldval && args->oldlenp) {
2263639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(args->oldlenp, sizeof(*args->oldlenp));
2264639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(args->oldval, *args->oldlenp);
2265639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    }
2266639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2267639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2268639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2269639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sysinfo)(void *info) {}
2270639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2271639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sysinfo)(long res, void *info) {
2272639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2273639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (info) POST_WRITE(info, struct_sysinfo_sz);
2274639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2275639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2276639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2277639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sysfs)(long option, long arg1, long arg2) {}
2278639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2279639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sysfs)(long res, long option, long arg1, long arg2) {}
2280639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2281639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(syslog)(long type, void *buf, long len) {}
2282639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2283639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(syslog)(long res, long type, void *buf, long len) {
2284639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2285639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf)
2286639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1);
2287639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2288639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2289639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2290639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(uselib)(const void *library) {
2291639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (library)
2292639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(library, __sanitizer::internal_strlen((const char *)library) + 1);
2293639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2294639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2295639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(uselib)(long res, const void *library) {}
2296639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2297639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ni_syscall)() {}
2298639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2299639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ni_syscall)(long res) {}
2300639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
23013ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy StepanovPRE_SYSCALL(ptrace)(long request, long pid, long addr, long data) {
230286277eb844c4983c81de62d7c050e92fe7155788Stephen Hines#if !SANITIZER_ANDROID && \
23033d763c0d3700e73b3aead8e65e04ec28efc56138Pirama Arumuga Nainar    (defined(__i386) || defined(__x86_64) || defined(__mips64) || \
23043d763c0d3700e73b3aead8e65e04ec28efc56138Pirama Arumuga Nainar     defined(__powerpc64__) || defined(__aarch64__))
23053ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov  if (data) {
23063ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    if (request == ptrace_setregs) {
23073ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      PRE_READ((void *)data, struct_user_regs_struct_sz);
23083ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_setfpregs) {
23093ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      PRE_READ((void *)data, struct_user_fpregs_struct_sz);
23103ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_setfpxregs) {
23113ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      PRE_READ((void *)data, struct_user_fpxregs_struct_sz);
23123ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_setsiginfo) {
23133ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      PRE_READ((void *)data, siginfo_t_sz);
23143ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_setregset) {
23153ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      __sanitizer_iovec *iov = (__sanitizer_iovec *)data;
23163ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      PRE_READ(iov->iov_base, iov->iov_len);
23173ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    }
23183ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov  }
23191bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov#endif
23203ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov}
2321639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
23223ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy StepanovPOST_SYSCALL(ptrace)(long res, long request, long pid, long addr, long data) {
232386277eb844c4983c81de62d7c050e92fe7155788Stephen Hines#if !SANITIZER_ANDROID && \
23243d763c0d3700e73b3aead8e65e04ec28efc56138Pirama Arumuga Nainar    (defined(__i386) || defined(__x86_64) || defined(__mips64) || \
23253d763c0d3700e73b3aead8e65e04ec28efc56138Pirama Arumuga Nainar     defined(__powerpc64__) || defined(__aarch64__))
23263ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov  if (res >= 0 && data) {
23273ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    // Note that this is different from the interceptor in
23283ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    // sanitizer_common_interceptors.inc.
23293ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    // PEEK* requests return resulting values through data pointer.
23303ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    if (request == ptrace_getregs) {
23313ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      POST_WRITE((void *)data, struct_user_regs_struct_sz);
23323ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_getfpregs) {
23333ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      POST_WRITE((void *)data, struct_user_fpregs_struct_sz);
23343ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_getfpxregs) {
23353ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      POST_WRITE((void *)data, struct_user_fpxregs_struct_sz);
23363ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_getsiginfo) {
23373ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      POST_WRITE((void *)data, siginfo_t_sz);
23383ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_getregset) {
23393ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      __sanitizer_iovec *iov = (__sanitizer_iovec *)data;
23403ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      POST_WRITE(iov->iov_base, iov->iov_len);
23413ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    } else if (request == ptrace_peekdata || request == ptrace_peektext ||
23423ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov               request == ptrace_peekuser) {
23433ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov      POST_WRITE((void *)data, sizeof(void *));
23443ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov    }
23453ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov  }
23461bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov#endif
23473ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov}
2348639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2349639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(add_key)(const void *_type, const void *_description,
2350639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     const void *_payload, long plen, long destringid) {
2351639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (_type)
2352639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(_type, __sanitizer::internal_strlen((const char *)_type) + 1);
2353639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (_description)
2354639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(_description,
2355639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)_description) + 1);
2356639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2357639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2358639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(add_key)(long res, const void *_type, const void *_description,
2359639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      const void *_payload, long plen, long destringid) {}
2360639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2361639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(request_key)(const void *_type, const void *_description,
2362639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         const void *_callout_info, long destringid) {
2363639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (_type)
2364639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(_type, __sanitizer::internal_strlen((const char *)_type) + 1);
2365639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (_description)
2366639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(_description,
2367639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)_description) + 1);
2368639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (_callout_info)
2369639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(_callout_info,
2370639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)_callout_info) + 1);
2371639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2372639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2373639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(request_key)(long res, const void *_type, const void *_description,
2374639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                          const void *_callout_info, long destringid) {}
2375639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2376639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(keyctl)(long cmd, long arg2, long arg3, long arg4, long arg5) {}
2377639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2378639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(keyctl)(long res, long cmd, long arg2, long arg3, long arg4,
2379639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long arg5) {}
2380639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2381639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ioprio_set)(long which, long who, long ioprio) {}
2382639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2383639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ioprio_set)(long res, long which, long who, long ioprio) {}
2384639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2385639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ioprio_get)(long which, long who) {}
2386639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2387639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ioprio_get)(long res, long which, long who) {}
2388639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2389639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(set_mempolicy)(long mode, void *nmask, long maxnode) {}
2390639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2391639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(set_mempolicy)(long res, long mode, void *nmask, long maxnode) {
2392639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2393639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (nmask) POST_WRITE(nmask, sizeof(long));
2394639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2395639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2396639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2397639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(migrate_pages)(long pid, long maxnode, const void *from,
2398639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                           const void *to) {
2399639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (from) PRE_READ(from, sizeof(long));
2400639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (to) PRE_READ(to, sizeof(long));
2401639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2402639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2403639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(migrate_pages)(long res, long pid, long maxnode, const void *from,
2404639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                            const void *to) {}
2405639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2406639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(move_pages)(long pid, long nr_pages, const void **pages,
2407639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        const int *nodes, int *status, long flags) {
2408639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (pages) PRE_READ(pages, nr_pages * sizeof(*pages));
2409639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (nodes) PRE_READ(nodes, nr_pages * sizeof(*nodes));
2410639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2411639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2412639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(move_pages)(long res, long pid, long nr_pages, const void **pages,
2413639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         const int *nodes, int *status, long flags) {
2414639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2415639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (status) POST_WRITE(status, nr_pages * sizeof(*status));
2416639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2417639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2418639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2419639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mbind)(long start, long len, long mode, void *nmask, long maxnode,
2420639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                   long flags) {}
2421639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2422639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mbind)(long res, long start, long len, long mode, void *nmask,
2423639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    long maxnode, long flags) {
2424639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2425639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (nmask) POST_WRITE(nmask, sizeof(long));
2426639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2427639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2428639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2429639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(get_mempolicy)(void *policy, void *nmask, long maxnode, long addr,
2430639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                           long flags) {}
2431639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2432639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(get_mempolicy)(long res, void *policy, void *nmask, long maxnode,
2433639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                            long addr, long flags) {
2434639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2435639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (policy) POST_WRITE(policy, sizeof(int));
2436639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (nmask) POST_WRITE(nmask, sizeof(long));
2437639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2438639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2439639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2440639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(inotify_init)() {}
2441639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2442639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(inotify_init)(long res) {}
2443639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2444639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(inotify_init1)(long flags) {}
2445639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2446639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(inotify_init1)(long res, long flags) {}
2447639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2448639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(inotify_add_watch)(long fd, const void *path, long mask) {
2449639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
2450639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
2451639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2452639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2453639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(inotify_add_watch)(long res, long fd, const void *path,
2454639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                                long mask) {}
2455639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2456639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(inotify_rm_watch)(long fd, long wd) {}
2457639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2458639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(inotify_rm_watch)(long res, long fd, long wd) {}
2459639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2460639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(spu_run)(long fd, void *unpc, void *ustatus) {}
2461639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2462639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(spu_run)(long res, long fd, unsigned *unpc, unsigned *ustatus) {
2463639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2464639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (unpc) POST_WRITE(unpc, sizeof(*unpc));
2465639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (ustatus) POST_WRITE(ustatus, sizeof(*ustatus));
2466639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2467639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2468639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2469639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(spu_create)(const void *name, long flags, long mode, long fd) {
2470639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (name)
2471639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1);
2472639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2473639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2474639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(spu_create)(long res, const void *name, long flags, long mode,
2475639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         long fd) {}
2476639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2477639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mknodat)(long dfd, const void *filename, long mode, long dev) {
2478639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2479639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2480639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2481639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2482639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2483639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mknodat)(long res, long dfd, const void *filename, long mode,
2484639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long dev) {}
2485639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2486639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mkdirat)(long dfd, const void *pathname, long mode) {
2487639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (pathname)
2488639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(pathname,
2489639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)pathname) + 1);
2490639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2491639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2492639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mkdirat)(long res, long dfd, const void *pathname, long mode) {}
2493639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2494639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(unlinkat)(long dfd, const void *pathname, long flag) {
2495639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (pathname)
2496639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(pathname,
2497639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)pathname) + 1);
2498639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2499639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2500639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(unlinkat)(long res, long dfd, const void *pathname, long flag) {}
2501639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2502639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(symlinkat)(const void *oldname, long newdfd, const void *newname) {
2503639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (oldname)
2504639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1);
2505639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (newname)
2506639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1);
2507639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2508639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2509639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(symlinkat)(long res, const void *oldname, long newdfd,
2510639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        const void *newname) {}
2511639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2512639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(linkat)(long olddfd, const void *oldname, long newdfd,
2513639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    const void *newname, long flags) {
2514639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (oldname)
2515639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1);
2516639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (newname)
2517639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1);
2518639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2519639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2520639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(linkat)(long res, long olddfd, const void *oldname, long newdfd,
2521639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     const void *newname, long flags) {}
2522639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2523639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(renameat)(long olddfd, const void *oldname, long newdfd,
2524639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      const void *newname) {
2525639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (oldname)
2526639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1);
2527639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (newname)
2528639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1);
2529639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2530639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2531639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(renameat)(long res, long olddfd, const void *oldname, long newdfd,
2532639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       const void *newname) {}
2533639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2534639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(futimesat)(long dfd, const void *filename, void *utimes) {
2535639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2536639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2537639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2538639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2539639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2540639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(futimesat)(long res, long dfd, const void *filename,
2541639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        void *utimes) {
2542639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2543639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (utimes) POST_WRITE(utimes, timeval_sz);
2544639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2545639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2546639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2547639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(faccessat)(long dfd, const void *filename, long mode) {
2548639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2549639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2550639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2551639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2552639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2553639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(faccessat)(long res, long dfd, const void *filename, long mode) {}
2554639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2555639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchmodat)(long dfd, const void *filename, long mode) {
2556639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2557639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2558639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2559639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2560639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2561639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchmodat)(long res, long dfd, const void *filename, long mode) {}
2562639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2563639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchownat)(long dfd, const void *filename, long user, long group,
2564639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long flag) {
2565639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2566639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2567639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2568639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2569639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2570639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchownat)(long res, long dfd, const void *filename, long user,
2571639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long group, long flag) {}
2572639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2573639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(openat)(long dfd, const void *filename, long flags, long mode) {
2574639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2575639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2576639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2577639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2578639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2579639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(openat)(long res, long dfd, const void *filename, long flags,
2580639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     long mode) {}
2581639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2582639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newfstatat)(long dfd, const void *filename, void *statbuf,
2583639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long flag) {
2584639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2585639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2586639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2587639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2588639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2589639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newfstatat)(long res, long dfd, const void *filename,
2590639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         void *statbuf, long flag) {
2591639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2592639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct_kernel_stat_sz);
2593639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2594639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2595639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2596639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstatat64)(long dfd, const void *filename, void *statbuf,
2597639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long flag) {
2598639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2599639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2600639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2601639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2602639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2603639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstatat64)(long res, long dfd, const void *filename, void *statbuf,
2604639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long flag) {
2605639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2606639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (statbuf) POST_WRITE(statbuf, struct_kernel_stat64_sz);
2607639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2608639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2609639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2610639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(readlinkat)(long dfd, const void *path, void *buf, long bufsiz) {
2611639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (path)
2612639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1);
2613639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2614639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2615639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(readlinkat)(long res, long dfd, const void *path, void *buf,
2616639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         long bufsiz) {
2617639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2618639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (buf)
2619639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov      POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1);
2620639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2621639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2622639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2623639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(utimensat)(long dfd, const void *filename, void *utimes,
2624639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long flags) {
2625639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (filename)
2626639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    PRE_READ(filename,
2627639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov             __sanitizer::internal_strlen((const char *)filename) + 1);
2628639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2629639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2630639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(utimensat)(long res, long dfd, const void *filename, void *utimes,
2631639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long flags) {
2632639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2633639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (utimes) POST_WRITE(utimes, struct_timespec_sz);
2634639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2635639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2636639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2637639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(unshare)(long unshare_flags) {}
2638639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2639639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(unshare)(long res, long unshare_flags) {}
2640639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2641639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(splice)(long fd_in, void *off_in, long fd_out, void *off_out,
2642639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    long len, long flags) {}
2643639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2644639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(splice)(long res, long fd_in, void *off_in, long fd_out,
2645639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                     void *off_out, long len, long flags) {
2646639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2647639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (off_in) POST_WRITE(off_in, sizeof(long long));
2648639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (off_out) POST_WRITE(off_out, sizeof(long long));
2649639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2650639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2651639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2652639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(vmsplice)(long fd, const __sanitizer_iovec *iov, long nr_segs,
2653639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                      long flags) {}
2654639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2655639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(vmsplice)(long res, long fd, const __sanitizer_iovec *iov,
2656639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long nr_segs, long flags) {
2657639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2658639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (iov) kernel_read_iovec(iov, nr_segs, res);
2659639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2660639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2661639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2662639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(tee)(long fdin, long fdout, long len, long flags) {}
2663639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2664639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(tee)(long res, long fdin, long fdout, long len, long flags) {}
2665639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2666639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(get_robust_list)(long pid, void *head_ptr, void *len_ptr) {}
2667639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2668639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(get_robust_list)(long res, long pid, void *head_ptr,
2669639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              void *len_ptr) {}
2670639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2671639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(set_robust_list)(void *head, long len) {}
2672639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2673639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(set_robust_list)(long res, void *head, long len) {}
2674639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2675639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getcpu)(void *cpu, void *node, void *cache) {}
2676639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2677639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getcpu)(long res, void *cpu, void *node, void *cache) {
2678639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2679639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (cpu) POST_WRITE(cpu, sizeof(unsigned));
2680639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (node) POST_WRITE(node, sizeof(unsigned));
2681639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    // The third argument to this system call is nowadays unused.
2682639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2683639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2684639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2685639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(signalfd)(long ufd, void *user_mask, long sizemask) {}
2686639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2687639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(signalfd)(long res, long ufd, kernel_sigset_t *user_mask,
2688639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       long sizemask) {
2689639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2690639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (user_mask) POST_WRITE(user_mask, sizemask);
2691639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2692639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2693639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2694639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(signalfd4)(long ufd, void *user_mask, long sizemask, long flags) {}
2695639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2696639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(signalfd4)(long res, long ufd, kernel_sigset_t *user_mask,
2697639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long sizemask, long flags) {
2698639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2699639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (user_mask) POST_WRITE(user_mask, sizemask);
2700639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2701639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2702639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2703639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timerfd_create)(long clockid, long flags) {}
2704639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2705639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timerfd_create)(long res, long clockid, long flags) {}
2706639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2707639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timerfd_settime)(long ufd, long flags, const void *utmr,
2708639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                             void *otmr) {
2709639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (utmr) PRE_READ(utmr, struct_itimerspec_sz);
2710639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2711639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2712639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timerfd_settime)(long res, long ufd, long flags, const void *utmr,
2713639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              void *otmr) {
2714639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2715639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (otmr) POST_WRITE(otmr, struct_itimerspec_sz);
2716639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2717639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2718639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2719639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timerfd_gettime)(long ufd, void *otmr) {}
2720639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2721639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timerfd_gettime)(long res, long ufd, void *otmr) {
2722639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2723639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (otmr) POST_WRITE(otmr, struct_itimerspec_sz);
2724639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2725639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2726639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2727639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(eventfd)(long count) {}
2728639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2729639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(eventfd)(long res, long count) {}
2730639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2731639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(eventfd2)(long count, long flags) {}
2732639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2733639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(eventfd2)(long res, long count, long flags) {}
2734639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2735639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(old_readdir)(long arg0, void *arg1, long arg2) {}
2736639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2737639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(old_readdir)(long res, long arg0, void *arg1, long arg2) {
2738639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  // Missing definition of 'struct old_linux_dirent'.
2739639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2740639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2741a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(pselect6)(long arg0, __sanitizer___kernel_fd_set *arg1,
2742a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                      __sanitizer___kernel_fd_set *arg2,
2743a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                      __sanitizer___kernel_fd_set *arg3, void *arg4,
2744a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                      void *arg5) {}
2745639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2746a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(pselect6)(long res, long arg0, __sanitizer___kernel_fd_set *arg1,
2747a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                       __sanitizer___kernel_fd_set *arg2,
2748a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov                       __sanitizer___kernel_fd_set *arg3, void *arg4,
2749639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                       void *arg5) {
2750639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2751639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg1) POST_WRITE(arg1, sizeof(*arg1));
2752639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg2) POST_WRITE(arg2, sizeof(*arg2));
2753639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg3) POST_WRITE(arg3, sizeof(*arg3));
2754639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg4) POST_WRITE(arg4, struct_timespec_sz);
2755639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2756639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2757639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2758639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ppoll)(__sanitizer_pollfd *arg0, long arg1, void *arg2,
2759639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                   const kernel_sigset_t *arg3, long arg4) {
2760639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (arg3) PRE_READ(arg3, arg4);
2761639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2762639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2763639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ppoll)(long res, __sanitizer_pollfd *arg0, long arg1, void *arg2,
2764639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                    const void *arg3, long arg4) {
2765639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2766639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg0) POST_WRITE(arg0, sizeof(*arg0));
2767639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (arg2) POST_WRITE(arg2, struct_timespec_sz);
2768639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2769639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2770639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2771639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(syncfs)(long fd) {}
2772639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2773639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(syncfs)(long res, long fd) {}
2774639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2775d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy StepanovPRE_SYSCALL(perf_event_open)(__sanitizer_perf_event_attr *attr_uptr, long pid,
2776d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy Stepanov                             long cpu, long group_fd, long flags) {
2777d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy Stepanov  if (attr_uptr) PRE_READ(attr_uptr, attr_uptr->size);
2778d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy Stepanov}
2779639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2780d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy StepanovPOST_SYSCALL(perf_event_open)(long res, __sanitizer_perf_event_attr *attr_uptr,
2781d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy Stepanov                              long pid, long cpu, long group_fd, long flags) {}
2782639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2783639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mmap_pgoff)(long addr, long len, long prot, long flags, long fd,
2784639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                        long pgoff) {}
2785639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2786639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mmap_pgoff)(long res, long addr, long len, long prot, long flags,
2787639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                         long fd, long pgoff) {}
2788639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2789639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(old_mmap)(void *arg) {}
2790639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2791639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(old_mmap)(long res, void *arg) {}
2792639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2793639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(name_to_handle_at)(long dfd, const void *name, void *handle,
2794639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                               void *mnt_id, long flag) {}
2795639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2796639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(name_to_handle_at)(long res, long dfd, const void *name,
2797639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                                void *handle, void *mnt_id, long flag) {}
2798639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2799639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(open_by_handle_at)(long mountdirfd, void *handle, long flags) {}
2800639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2801639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(open_by_handle_at)(long res, long mountdirfd, void *handle,
2802639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                                long flags) {}
2803639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2804639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setns)(long fd, long nstype) {}
2805639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2806639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setns)(long res, long fd, long nstype) {}
2807639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2808639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(process_vm_readv)(long pid, const __sanitizer_iovec *lvec,
2809639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              long liovcnt, const void *rvec, long riovcnt,
2810639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                              long flags) {}
2811639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2812639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(process_vm_readv)(long res, long pid,
2813639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                               const __sanitizer_iovec *lvec, long liovcnt,
2814639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                               const void *rvec, long riovcnt, long flags) {
2815639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2816639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (lvec) kernel_write_iovec(lvec, liovcnt, res);
2817639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2818639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
2819639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2820639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(process_vm_writev)(long pid, const __sanitizer_iovec *lvec,
2821639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                               long liovcnt, const void *rvec, long riovcnt,
2822639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                               long flags) {}
2823639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2824639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(process_vm_writev)(long res, long pid,
2825639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                                const __sanitizer_iovec *lvec, long liovcnt,
2826639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov                                const void *rvec, long riovcnt, long flags) {
2827639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  if (res >= 0) {
2828639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov    if (lvec) kernel_read_iovec(lvec, liovcnt, res);
2829639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov  }
2830639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}
28316c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov
28326c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry VyukovPRE_SYSCALL(fork)() {
28336c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov  COMMON_SYSCALL_PRE_FORK();
28346c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov}
28356c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov
28366c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry VyukovPOST_SYSCALL(fork)(long res) {
28376c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov  COMMON_SYSCALL_POST_FORK(res);
28386c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov}
28396c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov
28406c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry VyukovPRE_SYSCALL(vfork)() {
28416c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov  COMMON_SYSCALL_PRE_FORK();
28426c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov}
28436c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov
28446c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry VyukovPOST_SYSCALL(vfork)(long res) {
28456c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov  COMMON_SYSCALL_POST_FORK(res);
28466c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov}
2847639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}  // extern "C"
2848639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2849639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef PRE_SYSCALL
2850639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef PRE_READ
2851639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef PRE_WRITE
2852639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef POST_SYSCALL
2853639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef POST_READ
2854639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef POST_WRITE
2855639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov
2856639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#endif  // SANITIZER_LINUX
2857