|
From: <sv...@va...> - 2005-05-17 04:20:34
|
Author: njn Date: 2005-05-17 05:20:31 +0100 (Tue, 17 May 2005) New Revision: 3755 Added: trunk/coregrind/m_syscalls/priv_syscalls-linux.h Modified: trunk/coregrind/linux/core_os.h trunk/coregrind/m_syscalls/Makefile.am trunk/coregrind/m_syscalls/priv_syscalls.h Log: Move linux-only syscall wrappers into m_syscalls. Modified: trunk/coregrind/linux/core_os.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/coregrind/linux/core_os.h 2005-05-17 04:00:11 UTC (rev 3754) +++ trunk/coregrind/linux/core_os.h 2005-05-17 04:20:31 UTC (rev 3755) @@ -32,69 +32,6 @@ #ifndef __LINUX_CORE_OS_H #define __LINUX_CORE_OS_H =20 -// Macros for adding Linux-specific, arch-independent wrappers to a sysc= all -// table. -#define LINX_(const, name) SYS_WRAPPER_ENTRY_X_(vgOS_linux, const, na= me)=20 -#define LINXY(const, name) SYS_WRAPPER_ENTRY_XY(vgOS_linux, const, na= me) - -// The following syscall wrappers are Linux-specific, but arch-independe= nt. -#define VGO_LINUX_SYSCALL_WRAPPER(x) \ - extern UInt VGO_(linux_##x##_flags); \ - extern void VGO_(linux_##x##_before)(ThreadId tid, ThreadState *tst);= \ - extern void VGO_(linux_##x##_after) (ThreadId tid, ThreadState *tst) - -VGO_LINUX_SYSCALL_WRAPPER(sys_exit_group); - -VGO_LINUX_SYSCALL_WRAPPER(sys_mount); -VGO_LINUX_SYSCALL_WRAPPER(sys_oldumount); -VGO_LINUX_SYSCALL_WRAPPER(sys_umount); - -VGO_LINUX_SYSCALL_WRAPPER(sys_llseek); -VGO_LINUX_SYSCALL_WRAPPER(sys_adjtimex); - -VGO_LINUX_SYSCALL_WRAPPER(sys_setfsuid16); -VGO_LINUX_SYSCALL_WRAPPER(sys_setfsgid16); -VGO_LINUX_SYSCALL_WRAPPER(sys_setresuid16); // man page says "non-stand= ard"; -VGO_LINUX_SYSCALL_WRAPPER(sys_getresuid16); -VGO_LINUX_SYSCALL_WRAPPER(sys_setresgid16); // man page says "non-stand= ard" -VGO_LINUX_SYSCALL_WRAPPER(sys_getresgid16); - -VGO_LINUX_SYSCALL_WRAPPER(sys_setfsuid); -VGO_LINUX_SYSCALL_WRAPPER(sys_setfsgid); -VGO_LINUX_SYSCALL_WRAPPER(sys_setresuid); // man page says "non-stand= ard" -VGO_LINUX_SYSCALL_WRAPPER(sys_getresuid); -VGO_LINUX_SYSCALL_WRAPPER(sys_setresgid); // man page says "non-stand= ard" -VGO_LINUX_SYSCALL_WRAPPER(sys_getresgid); - -VGO_LINUX_SYSCALL_WRAPPER(sys_ioperm); -VGO_LINUX_SYSCALL_WRAPPER(sys_syslog); -VGO_LINUX_SYSCALL_WRAPPER(sys_vhangup); -VGO_LINUX_SYSCALL_WRAPPER(sys_sysinfo); -VGO_LINUX_SYSCALL_WRAPPER(sys_personality); -VGO_LINUX_SYSCALL_WRAPPER(sys_sysctl); -VGO_LINUX_SYSCALL_WRAPPER(sys_prctl); - -VGO_LINUX_SYSCALL_WRAPPER(sys_sendfile); -VGO_LINUX_SYSCALL_WRAPPER(sys_sendfile64); -VGO_LINUX_SYSCALL_WRAPPER(sys_futex); - -VGO_LINUX_SYSCALL_WRAPPER(sys_epoll_create); -VGO_LINUX_SYSCALL_WRAPPER(sys_epoll_ctl); -VGO_LINUX_SYSCALL_WRAPPER(sys_epoll_wait); - -VGO_LINUX_SYSCALL_WRAPPER(sys_gettid); -VGO_LINUX_SYSCALL_WRAPPER(sys_tkill); -VGO_LINUX_SYSCALL_WRAPPER(sys_tgkill); - -VGO_LINUX_SYSCALL_WRAPPER(sys_fadvise64); -VGO_LINUX_SYSCALL_WRAPPER(sys_fadvise64_64); - -VGO_LINUX_SYSCALL_WRAPPER(sys_io_setup); -VGO_LINUX_SYSCALL_WRAPPER(sys_io_destroy); -VGO_LINUX_SYSCALL_WRAPPER(sys_io_getevents); -VGO_LINUX_SYSCALL_WRAPPER(sys_io_submit); -VGO_LINUX_SYSCALL_WRAPPER(sys_io_cancel); - #define FUTEX_SEMA 0 =20 #if FUTEX_SEMA Modified: trunk/coregrind/m_syscalls/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/coregrind/m_syscalls/Makefile.am 2005-05-17 04:00:11 UTC (rev 3= 754) +++ trunk/coregrind/m_syscalls/Makefile.am 2005-05-17 04:20:31 UTC (rev 3= 755) @@ -8,6 +8,7 @@ =20 noinst_HEADERS =3D \ priv_syscalls.h \ + priv_syscalls-linux.h \ priv_syscalls-amd64-linux.h \ priv_syscalls-arm-linux.h \ priv_syscalls-x86-linux.h Added: trunk/coregrind/m_syscalls/priv_syscalls-linux.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/coregrind/m_syscalls/priv_syscalls-linux.h 2005-05-17 04:00:11 = UTC (rev 3754) +++ trunk/coregrind/m_syscalls/priv_syscalls-linux.h 2005-05-17 04:20:31 = UTC (rev 3755) @@ -0,0 +1,101 @@ + +/*--------------------------------------------------------------------*/ +/*--- Linux-specific syscalls stuff. priv_syscalls-linux.h ---*/ +/*--------------------------------------------------------------------*/ + +/* + This file is part of Valgrind, a dynamic binary instrumentation + framework. + + Copyright (C) 2000-2005 Nicholas Nethercote + nj...@va... + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307, USA. + + The GNU General Public License is contained in the file COPYING. +*/ + +#ifndef __PRIV_SYSCALLS_LINUX_H +#define __PRIV_SYSCALLS_LINUX_H + +// Macros for adding Linux-specific, arch-independent wrappers to a sysc= all +// table. +#define LINX_(const, name) SYS_WRAPPER_ENTRY_X_(vgOS_linux, const, na= me)=20 +#define LINXY(const, name) SYS_WRAPPER_ENTRY_XY(vgOS_linux, const, na= me) + +// The following syscall wrappers are Linux-specific, but arch-independe= nt. +#define LINUX_SYSCALL_WRAPPER(x) \ + extern UInt VGO_(linux_##x##_flags); \ + extern void VGO_(linux_##x##_before)(ThreadId tid, ThreadState *tst);= \ + extern void VGO_(linux_##x##_after) (ThreadId tid, ThreadState *tst) + +LINUX_SYSCALL_WRAPPER(sys_exit_group); + +LINUX_SYSCALL_WRAPPER(sys_mount); +LINUX_SYSCALL_WRAPPER(sys_oldumount); +LINUX_SYSCALL_WRAPPER(sys_umount); + +LINUX_SYSCALL_WRAPPER(sys_llseek); +LINUX_SYSCALL_WRAPPER(sys_adjtimex); + +LINUX_SYSCALL_WRAPPER(sys_setfsuid16); +LINUX_SYSCALL_WRAPPER(sys_setfsgid16); +LINUX_SYSCALL_WRAPPER(sys_setresuid16); // man page says "non-standard"= ; +LINUX_SYSCALL_WRAPPER(sys_getresuid16); +LINUX_SYSCALL_WRAPPER(sys_setresgid16); // man page says "non-standard" +LINUX_SYSCALL_WRAPPER(sys_getresgid16); + +LINUX_SYSCALL_WRAPPER(sys_setfsuid); +LINUX_SYSCALL_WRAPPER(sys_setfsgid); +LINUX_SYSCALL_WRAPPER(sys_setresuid); // man page says "non-standard" +LINUX_SYSCALL_WRAPPER(sys_getresuid); +LINUX_SYSCALL_WRAPPER(sys_setresgid); // man page says "non-standard" +LINUX_SYSCALL_WRAPPER(sys_getresgid); + +LINUX_SYSCALL_WRAPPER(sys_ioperm); +LINUX_SYSCALL_WRAPPER(sys_syslog); +LINUX_SYSCALL_WRAPPER(sys_vhangup); +LINUX_SYSCALL_WRAPPER(sys_sysinfo); +LINUX_SYSCALL_WRAPPER(sys_personality); +LINUX_SYSCALL_WRAPPER(sys_sysctl); +LINUX_SYSCALL_WRAPPER(sys_prctl); + +LINUX_SYSCALL_WRAPPER(sys_sendfile); +LINUX_SYSCALL_WRAPPER(sys_sendfile64); +LINUX_SYSCALL_WRAPPER(sys_futex); + +LINUX_SYSCALL_WRAPPER(sys_epoll_create); +LINUX_SYSCALL_WRAPPER(sys_epoll_ctl); +LINUX_SYSCALL_WRAPPER(sys_epoll_wait); + +LINUX_SYSCALL_WRAPPER(sys_gettid); +LINUX_SYSCALL_WRAPPER(sys_tkill); +LINUX_SYSCALL_WRAPPER(sys_tgkill); + +LINUX_SYSCALL_WRAPPER(sys_fadvise64); +LINUX_SYSCALL_WRAPPER(sys_fadvise64_64); + +LINUX_SYSCALL_WRAPPER(sys_io_setup); +LINUX_SYSCALL_WRAPPER(sys_io_destroy); +LINUX_SYSCALL_WRAPPER(sys_io_getevents); +LINUX_SYSCALL_WRAPPER(sys_io_submit); +LINUX_SYSCALL_WRAPPER(sys_io_cancel); + +#endif // __PRIV_SYSCALLS_LINUX_H + +/*--------------------------------------------------------------------*/ +/*--- end ---*/ +/*--------------------------------------------------------------------*/ Modified: trunk/coregrind/m_syscalls/priv_syscalls.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/coregrind/m_syscalls/priv_syscalls.h 2005-05-17 04:00:11 UTC (r= ev 3754) +++ trunk/coregrind/m_syscalls/priv_syscalls.h 2005-05-17 04:20:31 UTC (r= ev 3755) @@ -32,8 +32,12 @@ =20 #include "pub_core_options.h" =20 -// This is ugly, but the alternatives (ie. doing it "properly" with -I o= ptions -// and directories and more Makefiles) are even worse. +#if defined(VGO_linux) +# include "priv_syscalls-linux.h" +#else +# error Unknown OS +#endif + #if defined(VGP_amd64_linux) # include "priv_syscalls-amd64-linux.h" #elif defined(VGP_arm_linux) |