Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
valgrind
r8730.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File r8730.diff of Package valgrind
------------------------------------------------------------------------ r8730 | sewardj | 2008-11-05 12:20:59 +0100 (Mi, 05 Nov 2008) | 3 lines Support sys_pipe2 on {amd64,x86}-linux. Also, update syscall numbers for all supported Linuxes to those in linux-2.6.28-rc3. ------------------------------------------------------------------------ Index: include/vki/vki-scnums-amd64-linux.h =================================================================== --- include/vki/vki-scnums-amd64-linux.h (revision 8729) +++ include/vki/vki-scnums-amd64-linux.h (revision 8730) @@ -369,6 +369,13 @@ #define __NR_fallocate 285 #define __NR_timerfd_settime 286 #define __NR_timerfd_gettime 287 +#define __NR_paccept 288 +#define __NR_signalfd4 289 +#define __NR_eventfd2 290 +#define __NR_epoll_create1 291 +#define __NR_dup3 292 +#define __NR_pipe2 293 +#define __NR_inotify_init1 294 #endif /* __VKI_SCNUMS_AMD64_LINUX_H */ Index: include/vki/vki-scnums-x86-linux.h =================================================================== --- include/vki/vki-scnums-x86-linux.h (revision 8729) +++ include/vki/vki-scnums-x86-linux.h (revision 8730) @@ -361,6 +361,12 @@ #define __NR_fallocate 324 #define __NR_timerfd_settime 325 #define __NR_timerfd_gettime 326 +#define __NR_signalfd4 327 +#define __NR_eventfd2 328 +#define __NR_epoll_create1 329 +#define __NR_dup3 330 +#define __NR_pipe2 331 +#define __NR_inotify_init1 332 #endif /* __VKI_SCNUMS_X86_LINUX_H */ Index: include/vki/vki-scnums-ppc32-linux.h =================================================================== --- include/vki/vki-scnums-ppc32-linux.h (revision 8729) +++ include/vki/vki-scnums-ppc32-linux.h (revision 8730) @@ -355,6 +355,12 @@ #define __NR_subpage_prot 310 #define __NR_timerfd_settime 311 #define __NR_timerfd_gettime 312 +#define __NR_signalfd4 313 +#define __NR_eventfd2 314 +#define __NR_epoll_create1 315 +#define __NR_dup3 316 +#define __NR_pipe2 317 +#define __NR_inotify_init1 318 #endif /* __VKI_SCNUMS_PPC32_LINUX_H */ Index: include/vki/vki-scnums-ppc64-linux.h =================================================================== --- include/vki/vki-scnums-ppc64-linux.h (revision 8729) +++ include/vki/vki-scnums-ppc64-linux.h (revision 8730) @@ -347,6 +347,12 @@ #define __NR_subpage_prot 310 #define __NR_timerfd_settime 311 #define __NR_timerfd_gettime 312 +#define __NR_signalfd4 313 +#define __NR_eventfd2 314 +#define __NR_epoll_create1 315 +#define __NR_dup3 316 +#define __NR_pipe2 317 +#define __NR_inotify_init1 318 #endif /* __VKI_SCNUMS_PPC64_LINUX_H */ Index: coregrind/m_syswrap/syswrap-linux.c =================================================================== --- coregrind/m_syswrap/syswrap-linux.c (revision 8729) +++ coregrind/m_syswrap/syswrap-linux.c (revision 8730) @@ -2235,12 +2235,38 @@ PRE(sys_pipe) POST(sys_pipe) { Int *p = (Int *)ARG1; - if (!ML_(fd_allowed)(p[0], "pipe", tid, True) || !ML_(fd_allowed)(p[1], "pipe", tid, True)) { VG_(close)(p[0]); VG_(close)(p[1]); SET_STATUS_Failure( VKI_EMFILE ); + } else { + POST_MEM_WRITE( ARG1, 2*sizeof(int) ); + if (VG_(clo_track_fds)) { + ML_(record_fd_open_nameless)(tid, p[0]); + ML_(record_fd_open_nameless)(tid, p[1]); + } + } +} + +/* pipe2 (a kernel 2.6.twentysomething invention) is like pipe, except + there's a second arg containing flags to be applied to the new file + descriptors. It hardly seems worth the effort to factor out the + duplicated code, hence: */ +PRE(sys_pipe2) +{ + PRINT("sys_pipe2 ( %#lx, %#lx )", ARG1, ARG2); + PRE_REG_READ2(int, "pipe", int *, filedes, long, flags); + PRE_MEM_WRITE( "pipe2(filedes)", ARG1, 2*sizeof(int) ); +} +POST(sys_pipe2) +{ + Int *p = (Int *)ARG1; + if (!ML_(fd_allowed)(p[0], "pipe2", tid, True) || + !ML_(fd_allowed)(p[1], "pipe2", tid, True)) { + VG_(close)(p[0]); + VG_(close)(p[1]); + SET_STATUS_Failure( VKI_EMFILE ); } else { POST_MEM_WRITE( ARG1, 2*sizeof(int) ); if (VG_(clo_track_fds)) { Index: coregrind/m_syswrap/priv_syswrap-linux.h =================================================================== --- coregrind/m_syswrap/priv_syswrap-linux.h (revision 8729) +++ coregrind/m_syswrap/priv_syswrap-linux.h (revision 8730) @@ -206,6 +206,7 @@ DECL_TEMPLATE(linux, sys_sched_getaffini // Also, some archs on Linux do not match the generic wrapper for sys_pipe. DECL_TEMPLATE(linux, sys_munlockall); DECL_TEMPLATE(linux, sys_pipe); +DECL_TEMPLATE(linux, sys_pipe2); DECL_TEMPLATE(linux, sys_quotactl); DECL_TEMPLATE(linux, sys_waitid); Index: coregrind/m_syswrap/syswrap-amd64-linux.c =================================================================== --- coregrind/m_syswrap/syswrap-amd64-linux.c (revision 8729) +++ coregrind/m_syswrap/syswrap-amd64-linux.c (revision 8730) @@ -1350,14 +1350,24 @@ const SyscallTableEntry ML_(syscall_tabl 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 + // (__NR_paccept, sys_ni_syscall) // 288 + // (__NR_signalfd4, sys_ni_syscall) // 289 + + // (__NR_eventfd2, sys_ni_syscall) // 290 + // (__NR_epoll_create1, sys_ni_syscall) // 291 + // (__NR_dup3, sys_ni_syscall) // 292 + LINXY(__NR_pipe2, sys_pipe2) // 293 + // (__NR_inotify_init1, sys_ni_syscall) // 294 }; const UInt ML_(syscall_table_size) = Index: coregrind/m_syswrap/syswrap-x86-linux.c =================================================================== --- coregrind/m_syswrap/syswrap-x86-linux.c (revision 8729) +++ coregrind/m_syswrap/syswrap-x86-linux.c (revision 8730) @@ -2231,8 +2231,16 @@ const SyscallTableEntry ML_(syscall_tabl 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 + // (__NR_signalfd4, sys_ni_syscall) // 327 + // (__NR_eventfd2, sys_ni_syscall) // 328 + // (__NR_epoll_create1, sys_ni_syscall) // 329 + + // (__NR_dup3, sys_ni_syscall) // 330 + LINXY(__NR_pipe2, sys_pipe2) // 331 + // (__NR_inotify_init1, sys_ni_syscall) // 332 }; const UInt ML_(syscall_table_size) =
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor