|
From: <sv...@va...> - 2008-05-29 13:32:46
|
Author: sewardj
Date: 2008-05-29 14:32:51 +0100 (Thu, 29 May 2008)
New Revision: 8148
Log:
Merge a bunch of syscall-related revisions from the trunk, in the
following order:
7917 (partial): add epoll_pwait utimensat eventfd timerfd signalfd
7942: add timerfd_create timerfd_gettime timerfd_settime
7983: kludgey fix for ppc compile failures for timerfd_*
8047: fix futimesat and utimensat
8051: proper fix replacing 7983
8132: fix signalfd
8138: tidy up signalfd
8147: tidy up signalfd some more
Modified:
branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/priv_syswrap-linux.h
branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-amd64-linux.c
branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-generic.c
branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-linux.c
branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-ppc32-linux.c
branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-ppc64-linux.c
branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-x86-linux.c
branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-amd64-linux.h
branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-ppc32-linux.h
branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-ppc64-linux.h
branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-x86-linux.h
Modified: branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/priv_syswrap-linux.h
===================================================================
--- branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/priv_syswrap-linux.h 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/priv_syswrap-linux.h 2008-05-29 13:32:51 UTC (rev 8148)
@@ -82,6 +82,8 @@
DECL_TEMPLATE(linux, sys_epoll_create);
DECL_TEMPLATE(linux, sys_epoll_ctl);
DECL_TEMPLATE(linux, sys_epoll_wait);
+DECL_TEMPLATE(linux, sys_epoll_pwait);
+DECL_TEMPLATE(linux, sys_eventfd);
DECL_TEMPLATE(linux, sys_gettid);
DECL_TEMPLATE(linux, sys_set_tid_address);
@@ -124,7 +126,12 @@
DECL_TEMPLATE(linux, sys_timer_gettime);
DECL_TEMPLATE(linux, sys_timer_getoverrun);
DECL_TEMPLATE(linux, sys_timer_delete);
+DECL_TEMPLATE(linux, sys_timerfd_create);
+DECL_TEMPLATE(linux, sys_timerfd_gettime);
+DECL_TEMPLATE(linux, sys_timerfd_settime);
+DECL_TEMPLATE(linux, sys_signalfd);
+
DECL_TEMPLATE(linux, sys_capget);
DECL_TEMPLATE(linux, sys_capset);
Modified: branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-amd64-linux.c 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-amd64-linux.c 2008-05-29 13:32:51 UTC (rev 8148)
@@ -1367,7 +1367,7 @@
LINX_(__NR_faccessat, sys_faccessat), // 269
LINX_(__NR_pselect6, sys_pselect6), // 270
-// LINXY(__NR_ppoll, sys_ni_syscall), // 271
+ LINXY(__NR_ppoll, sys_ppoll), // 271
// LINX_(__NR_unshare, sys_unshare), // 272
LINX_(__NR_set_robust_list, sys_set_robust_list), // 273
LINXY(__NR_get_robust_list, sys_get_robust_list), // 274
@@ -1377,6 +1377,14 @@
LINX_(__NR_sync_file_range, sys_sync_file_range), // 277
// LINX_(__NR_vmsplice, sys_ni_syscall), // 278
// LINX_(__NR_move_pages, sys_ni_syscall), // 279
+ LINX_(__NR_utimensat, sys_utimensat), // 280
+ LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 281
+ LINXY(__NR_signalfd, sys_signalfd), // 282
+ LINXY(__NR_timerfd_create, sys_timerfd_create), // 283
+ LINX_(__NR_eventfd, sys_eventfd), // 284
+// LINX_(__NR_fallocate, sys_ni_syscall), // 285
+ LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 286
+ LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 287
};
const UInt ML_(syscall_table_size) =
Modified: branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-generic.c
===================================================================
--- branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-generic.c 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-generic.c 2008-05-29 13:32:51 UTC (rev 8148)
@@ -5638,7 +5638,7 @@
PRE_REG_READ2(long, "utimes", char *, filename, struct timeval *, tvp);
PRE_MEM_RASCIIZ( "utimes(filename)", ARG1 );
if (ARG2 != 0)
- PRE_MEM_READ( "utimes(tvp)", ARG2, sizeof(struct vki_timeval) );
+ PRE_MEM_READ( "utimes(tvp)", ARG2, 2 * sizeof(struct vki_timeval) );
}
PRE(sys_acct)
Modified: branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-linux.c 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-linux.c 2008-05-29 13:32:51 UTC (rev 8148)
@@ -988,7 +988,7 @@
UInt i;
struct vki_pollfd* ufds = (struct vki_pollfd *)ARG1;
*flags |= SfMayBlock;
- PRINT("sys_ppoll ( %p, %d, %p, %p, %llu )\n", ARG1,ARG2,ARG3,ARG4,ARG5);
+ PRINT("sys_ppoll ( %p, %d, %p, %p, %llu )\n", ARG1,ARG2,ARG3,ARG4,(ULong)ARG5);
PRE_REG_READ5(long, "ppoll",
struct vki_pollfd *, ufds, unsigned int, nfds,
struct vki_timespec *, tsp, vki_sigset_t *, sigmask,
@@ -1072,6 +1072,41 @@
POST_MEM_WRITE( ARG2, sizeof(struct vki_epoll_event)*RES ) ;
}
+PRE(sys_epoll_pwait)
+{
+ *flags |= SfMayBlock;
+ PRINT("sys_epoll_pwait ( %d, %p, %d, %d, %p, %llu )", ARG1,ARG2,ARG3,ARG4,ARG5,(ULong)ARG6);
+ PRE_REG_READ6(long, "epoll_pwait",
+ int, epfd, struct vki_epoll_event *, events,
+ int, maxevents, int, timeout, vki_sigset_t *, sigmask,
+ vki_size_t, sigsetsize);
+ PRE_MEM_WRITE( "epoll_pwait(events)", ARG2, sizeof(struct vki_epoll_event)*ARG3);
+ if (ARG4)
+ PRE_MEM_READ( "epoll_pwait(sigmask)", ARG5, sizeof(vki_sigset_t) );
+}
+POST(sys_epoll_pwait)
+{
+ vg_assert(SUCCESS);
+ if (RES > 0)
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_epoll_event)*RES ) ;
+}
+
+PRE(sys_eventfd)
+{
+ PRINT("sys_eventfd ( %u )", ARG1);
+ PRE_REG_READ1(long, "sys_eventfd", unsigned int, count);
+}
+POST(sys_eventfd)
+{
+ if (!ML_(fd_allowed)(RES, "eventfd", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ ML_(record_fd_open_nameless) (tid, RES);
+ }
+}
+
/* ---------------------------------------------------------------------
tid-related wrappers
------------------------------------------------------------------ */
@@ -1673,6 +1708,126 @@
}
/* ---------------------------------------------------------------------
+ timerfd* wrappers
+ See also http://lwn.net/Articles/260172/ for an overview.
+ See also /usr/src/linux/fs/timerfd.c for the implementation.
+ ------------------------------------------------------------------ */
+
+/* Returns True if running on 2.6.22, else False (or False if
+ cannot be determined). */
+static Bool linux_kernel_2_6_22(void)
+{
+ static Int result = -1;
+ Int fd, read;
+ HChar release[64];
+ SysRes res;
+
+ if (result == -1) {
+ res = VG_(open)("/proc/sys/kernel/osrelease", 0, 0);
+ if (res.isError)
+ return False;
+ fd = res.res;
+ read = VG_(read)(fd, release, sizeof(release) - 1);
+ vg_assert(read >= 0);
+ release[read] = 0;
+ VG_(close)(fd);
+ //VG_(printf)("kernel release = %s\n", release);
+ result = (VG_(strncmp)(release, "2.6.22", 6) == 0
+ && (release[6] < '0' || release[6] > '9'));
+ }
+ vg_assert(result == 0 || result == 1);
+ return result == 1;
+}
+
+PRE(sys_timerfd_create)
+{
+ if (linux_kernel_2_6_22()) {
+ /* 2.6.22 kernel: timerfd system call. */
+ PRINT("sys_timerfd ( %ld, %ld, %p )", ARG1, ARG2, ARG3);
+ PRE_REG_READ3(long, "sys_timerfd",
+ int, fd, int, clockid, const struct itimerspec *, tmr);
+ PRE_MEM_READ("timerfd(tmr)", ARG3,
+ sizeof(struct vki_itimerspec) );
+ if ((Word)ARG1 != -1L && !ML_(fd_allowed)(ARG1, "timerfd", tid, False))
+ SET_STATUS_Failure( VKI_EBADF );
+ } else {
+ /* 2.6.24 and later kernels: timerfd_create system call. */
+ PRINT("sys_timerfd_create (%ld, %ld )", ARG1, ARG2);
+ PRE_REG_READ2(long, "timerfd_create", int, clockid, int, flags);
+ }
+}
+POST(sys_timerfd_create)
+{
+ if (linux_kernel_2_6_22())
+ {
+ /* 2.6.22 kernel: timerfd system call. */
+ if (!ML_(fd_allowed)(RES, "timerfd", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ ML_(record_fd_open_nameless) (tid, RES);
+ }
+ }
+ else
+ {
+ /* 2.6.24 and later kernels: timerfd_create system call. */
+ if (!ML_(fd_allowed)(RES, "timerfd_create", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ ML_(record_fd_open_nameless) (tid, RES);
+ }
+ }
+}
+
+PRE(sys_timerfd_gettime)
+{
+ PRINT("sys_timerfd_gettime ( %d, %p )", ARG1, ARG2);
+ PRE_REG_READ2(long, "timerfd_gettime",
+ int, ufd,
+ struct vki_itimerspec*, otmr);
+ if (!ML_(fd_allowed)(ARG1, "timerfd_gettime", tid, False))
+ SET_STATUS_Failure(VKI_EBADF);
+ else
+ PRE_MEM_WRITE("timerfd_gettime(result)",
+ ARG2, sizeof(struct vki_itimerspec));
+}
+POST(sys_timerfd_gettime)
+{
+ if (RES == 0)
+ POST_MEM_WRITE(ARG2, sizeof(struct vki_itimerspec));
+}
+
+PRE(sys_timerfd_settime)
+{
+ PRINT("sys_timerfd_settime ( %d, %d, %p, %p )", ARG1, ARG2, ARG3, ARG4);
+ PRE_REG_READ4(long, "timerfd_settime",
+ int, ufd,
+ int, flags,
+ const struct vki_itimerspec*, utmr,
+ struct vki_itimerspec*, otmr);
+ if (!ML_(fd_allowed)(ARG1, "timerfd_settime", tid, False))
+ SET_STATUS_Failure(VKI_EBADF);
+ else
+ {
+ PRE_MEM_READ("timerfd_settime(result)",
+ ARG3, sizeof(struct vki_itimerspec));
+ if (ARG4)
+ {
+ PRE_MEM_WRITE("timerfd_settime(result)",
+ ARG4, sizeof(struct vki_itimerspec));
+ }
+ }
+}
+POST(sys_timerfd_settime)
+{
+ if (RES == 0 && ARG4 != 0)
+ POST_MEM_WRITE(ARG4, sizeof(struct vki_itimerspec));
+}
+
+/* ---------------------------------------------------------------------
capabilities wrappers
------------------------------------------------------------------ */
@@ -2220,6 +2375,27 @@
}
#endif
+PRE(sys_signalfd)
+{
+ PRINT("sys_signalfd ( %d, %p, %llu )", (Int)ARG1, ARG2, (ULong) ARG3);
+ PRE_REG_READ3(long, "sys_signalfd",
+ int, fd, vki_sigset_t *, sigmask, vki_size_t, sigsetsize);
+ PRE_MEM_READ( "signalfd(sigmask)", ARG2, sizeof(vki_sigset_t) );
+ if ((int)ARG1 != -1 && !ML_(fd_allowed)(ARG1, "signalfd", tid, False))
+ SET_STATUS_Failure( VKI_EBADF );
+}
+POST(sys_signalfd)
+{
+ if (!ML_(fd_allowed)(RES, "signalfd", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ ML_(record_fd_open_nameless) (tid, RES);
+ }
+}
+
+
/* ---------------------------------------------------------------------
rt_sig* wrappers
------------------------------------------------------------------ */
@@ -2540,11 +2716,23 @@
PRINT("sys_futimesat ( %d, %p(%s), %p )", ARG1,ARG2,ARG2,ARG3);
PRE_REG_READ3(long, "futimesat",
int, dfd, char *, filename, struct timeval *, tvp);
- PRE_MEM_RASCIIZ( "futimesat(filename)", ARG2 );
+ if (ARG2 != 0)
+ PRE_MEM_RASCIIZ( "futimesat(filename)", ARG2 );
if (ARG3 != 0)
- PRE_MEM_READ( "futimesat(tvp)", ARG3, sizeof(struct vki_timeval) );
+ PRE_MEM_READ( "futimesat(tvp)", ARG3, 2 * sizeof(struct vki_timeval) );
}
+PRE(sys_utimensat)
+{
+ PRINT("sys_utimensat ( %d, %p(%s), %p, 0x%x )", ARG1,ARG2,ARG2,ARG3,ARG4);
+ PRE_REG_READ4(long, "utimensat",
+ int, dfd, char *, filename, struct timespec *, utimes, int, flags);
+ if (ARG2 != 0)
+ PRE_MEM_RASCIIZ( "utimensat(filename)", ARG2 );
+ if (ARG3 != 0)
+ PRE_MEM_READ( "utimensat(tvp)", ARG3, 2 * sizeof(struct vki_timespec) );
+}
+
PRE(sys_newfstatat)
{
PRINT("sys_newfstatat ( %d, %p(%s), %p )", ARG1,ARG2,ARG2,ARG3);
@@ -2823,19 +3011,6 @@
PRE_REG_READ3(int, "ioprio_set", int, which, int, who, int, ioprio);
}
-
-/* XXX I don't think this is really the right place for this.
- Move it elsewhere in this file? */
-PRE(sys_utimensat)
-{
- PRINT("sys_utimensat ( %d, %p(%s), %p )", ARG1,ARG2,ARG2,ARG3);
- PRE_REG_READ3(long, "utimensat",
- int, dfd, char *, filename, struct timespec *, tvp);
- PRE_MEM_RASCIIZ( "utimensat(filename)", ARG2 );
- if (ARG3 != 0)
- PRE_MEM_READ( "utimensat(tvp)", ARG3, sizeof(struct vki_timespec) );
-}
-
#undef PRE
#undef POST
Modified: branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-ppc32-linux.c
===================================================================
--- branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-ppc32-linux.c 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-ppc32-linux.c 2008-05-29 13:32:51 UTC (rev 8148)
@@ -1820,6 +1820,18 @@
LINX_(__NR_faccessat, sys_faccessat), // 298
LINX_(__NR_set_robust_list, sys_set_robust_list), // 299
LINXY(__NR_get_robust_list, sys_get_robust_list), // 300
+// LINX_(__NR_move_pages, sys_ni_syscall), // 301
+// LINX_(__NR_getcpu, sys_ni_syscall), // 302
+ LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 303
+ LINX_(__NR_utimensat, sys_utimensat), // 304
+ LINXY(__NR_signalfd, sys_signalfd), // 305
+ LINXY(__NR_timerfd_create, sys_timerfd_create), // 306
+ LINX_(__NR_eventfd, sys_eventfd), // 307
+// LINX_(__NR_sync_file_range2, sys_ni_syscall), // 308
+// LINX_(__NR_fallocate, sys_ni_syscall), // 309
+// LINXY(__NR_subpage_prot, sys_ni_syscall), // 310
+ LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 311
+ LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 312
};
const UInt ML_(syscall_table_size) =
Modified: branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-ppc64-linux.c
===================================================================
--- branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-ppc64-linux.c 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-ppc64-linux.c 2008-05-29 13:32:51 UTC (rev 8148)
@@ -1475,7 +1475,18 @@
LINX_(__NR_faccessat, sys_faccessat), // 298
LINX_(__NR_set_robust_list, sys_set_robust_list), // 299
LINXY(__NR_get_robust_list, sys_get_robust_list), // 300
-
+// LINX_(__NR_move_pages, sys_ni_syscall), // 301
+// LINX_(__NR_getcpu, sys_ni_syscall), // 302
+ LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 303
+ LINX_(__NR_utimensat, sys_utimensat), // 304
+ LINXY(__NR_signalfd, sys_signalfd), // 305
+ LINXY(__NR_timerfd_create, sys_timerfd_create), // 306
+ LINX_(__NR_eventfd, sys_eventfd), // 307
+// LINX_(__NR_sync_file_range2, sys_ni_syscall), // 308
+// LINX_(__NR_fallocate, sys_ni_syscall), // 309
+// LINXY(__NR_subpage_prot, sys_ni_syscall), // 310
+ LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 311
+ LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 312
};
const UInt ML_(syscall_table_size) =
Modified: branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-x86-linux.c
===================================================================
--- branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-x86-linux.c 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/coregrind/m_syswrap/syswrap-x86-linux.c 2008-05-29 13:32:51 UTC (rev 8148)
@@ -2221,9 +2221,15 @@
// LINX_(__NR_vmsplice, sys_ni_syscall), // 316
// LINX_(__NR_move_pages, sys_ni_syscall), // 317
// LINX_(__NR_getcpu, sys_ni_syscall), // 318
-// LINX_(__NR_epoll_pwait, sys_ni_syscall), // 319
+ LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 319
LINX_(__NR_utimensat, sys_utimensat), // 320
+ LINXY(__NR_signalfd, sys_signalfd), // 321
+ LINXY(__NR_timerfd_create, sys_timerfd_create), // 322
+ LINX_(__NR_eventfd, sys_eventfd), // 323
+// LINX_(__NR_fallocate, sys_ni_syscall), // 324
+ LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 325
+ LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 326
};
const UInt ML_(syscall_table_size) =
Modified: branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-amd64-linux.h
===================================================================
--- branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-amd64-linux.h 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-amd64-linux.h 2008-05-29 13:32:51 UTC (rev 8148)
@@ -364,9 +364,11 @@
#define __NR_utimensat 280
#define __NR_epoll_pwait 281
#define __NR_signalfd 282
-#define __NR_timerfd 283
+#define __NR_timerfd_create 283
#define __NR_eventfd 284
#define __NR_fallocate 285
+#define __NR_timerfd_settime 286
+#define __NR_timerfd_gettime 287
#endif /* __VKI_SCNUMS_AMD64_LINUX_H */
Modified: branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-ppc32-linux.h
===================================================================
--- branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-ppc32-linux.h 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-ppc32-linux.h 2008-05-29 13:32:51 UTC (rev 8148)
@@ -348,13 +348,14 @@
#define __NR_epoll_pwait 303
#define __NR_utimensat 304
#define __NR_signalfd 305
-#define __NR_timerfd 306
+#define __NR_timerfd_create 306
#define __NR_eventfd 307
#define __NR_sync_file_range2 308
#define __NR_fallocate 309
+#define __NR_subpage_prot 310
+#define __NR_timerfd_settime 311
+#define __NR_timerfd_gettime 312
-#define __NR_syscalls 310
-
#endif /* __VKI_SCNUMS_PPC32_LINUX_H */
/*--------------------------------------------------------------------*/
Modified: branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-ppc64-linux.h
===================================================================
--- branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-ppc64-linux.h 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-ppc64-linux.h 2008-05-29 13:32:51 UTC (rev 8148)
@@ -340,10 +340,13 @@
#define __NR_epoll_pwait 303
#define __NR_utimensat 304
#define __NR_signalfd 305
-#define __NR_timerfd 306
+#define __NR_timerfd_create 306
#define __NR_eventfd 307
#define __NR_sync_file_range2 308
#define __NR_fallocate 309
+#define __NR_subpage_prot 310
+#define __NR_timerfd_settime 311
+#define __NR_timerfd_gettime 312
#endif /* __VKI_SCNUMS_PPC64_LINUX_H */
Modified: branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-x86-linux.h
===================================================================
--- branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-x86-linux.h 2008-05-29 12:56:08 UTC (rev 8147)
+++ branches/VALGRIND_3_3_BRANCH/include/vki/vki-scnums-x86-linux.h 2008-05-29 13:32:51 UTC (rev 8148)
@@ -356,9 +356,11 @@
#define __NR_epoll_pwait 319
#define __NR_utimensat 320
#define __NR_signalfd 321
-#define __NR_timerfd 322
+#define __NR_timerfd_create 322
#define __NR_eventfd 323
#define __NR_fallocate 324
+#define __NR_timerfd_settime 325
+#define __NR_timerfd_gettime 326
#endif /* __VKI_SCNUMS_X86_LINUX_H */
|