Messages in this thread | | | Date | Mon, 26 Mar 2012 21:49:46 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 2/6] trace: add support for 32 bit compat syscalls on x86_64 |
| |
On 03/26/2012 11:39 AM, Vaibhav Nagarnaik wrote: > +/* > + * syscall metadata for 32 bit compatible system calls > + * > + * The metadata entries are in the same order as the system call table > + * but this is just to make it easier to check them for completeness > + * and correctness. > + */ > + > +COMPAT_SYSCALL_METADATA0(restart_syscall) > +COMPAT_SYSCALL_METADATA1(exit, int, error_code) [...] > +COMPAT_SYSCALL_METADATA5(recvmmsg, int, fd, struct mmsghdr __user *, mmsg, unsigned int, vlen, unsigned int, flags, struct timespec __user *, timeout)
> +/* > + * This is truly horrible.
Yes, it is. How on Earth do you expect the above to ever be maintained?
> + * > + * There is no header file that defines a *complete* set of 32 bit system > + * call numbers (unistd_32.h only defines ones that are currently exported > + * to user space and omits lots of old system calls that are still implemented > + * by the kernel.
> + * There is also no table that can be used to map a system call number into > + * the canonical name of that system call.
arch/x86/syscalls has all of those. If it's not in there, it doesn't exist, because that's where the system call table comes from.
-hpa
| |