From: "Randy.Dunlap" This is the next syscalls update. Built on ia32, ia64, and x86_64(X-build). Andi, would you look at the changes to include/asm-x86_64/unistd.h please? I'm not terribly happy with them, but it took several iterations to get the compiler happy with it. What's left: - include/linux/fs.h: sys_open, sys_close - fixing all uses of __KERNEL_SYSCALLS__ --- arch/cris/kernel/sys_cris.c | 1 + arch/mips/kernel/syscall.c | 1 + arch/parisc/kernel/ioctl32.c | 2 ++ arch/ppc64/kernel/ioctl32.c | 1 + arch/ppc64/kernel/syscalls.c | 1 + arch/s390/kernel/s390_ksyms.c | 1 + arch/sparc64/kernel/ioctl32.c | 1 + arch/um/kernel/syscall_kern.c | 1 + arch/v850/kernel/syscalls.c | 1 + arch/x86_64/ia32/ipc32.c | 1 + arch/x86_64/ia32/ptrace32.c | 1 + arch/x86_64/kernel/sys_x86_64.c | 1 + fs/compat_ioctl.c | 1 + fs/nfsd/export.c | 1 + fs/nfsd/nfsctl.c | 1 + include/asm-x86_64/compat.h | 1 + include/asm-x86_64/unistd.h | 9 ++++++++- include/linux/eventpoll.h | 7 ------- include/linux/futex.h | 4 ---- include/linux/ioctl32.h | 2 -- include/linux/mm.h | 2 -- include/linux/nfsd/syscall.h | 1 - include/linux/sched.h | 2 -- include/linux/shm.h | 5 ----- include/linux/socket.h | 4 ---- include/linux/syscalls.h | 15 +++++++++++++-- kernel/fork.c | 1 + kernel/module.c | 1 + mm/mmap.c | 1 + 29 files changed, 41 insertions(+), 30 deletions(-) diff -puN arch/cris/kernel/sys_cris.c~add-syscalls_h-8 arch/cris/kernel/sys_cris.c --- 25/arch/cris/kernel/sys_cris.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/cris/kernel/sys_cris.c 2004-02-14 23:22:15.000000000 -0800 @@ -11,6 +11,7 @@ #include #include +#include #include #include #include diff -puN arch/mips/kernel/syscall.c~add-syscalls_h-8 arch/mips/kernel/syscall.c --- 25/arch/mips/kernel/syscall.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/mips/kernel/syscall.c 2004-02-14 23:22:15.000000000 -0800 @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff -puN arch/parisc/kernel/ioctl32.c~add-syscalls_h-8 arch/parisc/kernel/ioctl32.c --- 25/arch/parisc/kernel/ioctl32.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/parisc/kernel/ioctl32.c 2004-02-14 23:22:15.000000000 -0800 @@ -8,6 +8,8 @@ * ioctls. */ +#include + #define INCLUDES #include "compat_ioctl.c" diff -puN arch/ppc64/kernel/ioctl32.c~add-syscalls_h-8 arch/ppc64/kernel/ioctl32.c --- 25/arch/ppc64/kernel/ioctl32.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/ppc64/kernel/ioctl32.c 2004-02-14 23:22:15.000000000 -0800 @@ -23,6 +23,7 @@ #define INCLUDES #include "compat_ioctl.c" #include +#include #include #define CODE diff -puN arch/ppc64/kernel/syscalls.c~add-syscalls_h-8 arch/ppc64/kernel/syscalls.c --- 25/arch/ppc64/kernel/syscalls.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/ppc64/kernel/syscalls.c 2004-02-14 23:22:15.000000000 -0800 @@ -22,6 +22,7 @@ #include #include +#include #include #include #include diff -puN arch/s390/kernel/s390_ksyms.c~add-syscalls_h-8 arch/s390/kernel/s390_ksyms.c --- 25/arch/s390/kernel/s390_ksyms.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/s390/kernel/s390_ksyms.c 2004-02-14 23:22:15.000000000 -0800 @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff -puN arch/sparc64/kernel/ioctl32.c~add-syscalls_h-8 arch/sparc64/kernel/ioctl32.c --- 25/arch/sparc64/kernel/ioctl32.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/sparc64/kernel/ioctl32.c 2004-02-14 23:22:15.000000000 -0800 @@ -12,6 +12,7 @@ #define INCLUDES #include "compat_ioctl.c" #include +#include #include #include #include diff -puN arch/um/kernel/syscall_kern.c~add-syscalls_h-8 arch/um/kernel/syscall_kern.c --- 25/arch/um/kernel/syscall_kern.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/um/kernel/syscall_kern.c 2004-02-14 23:22:15.000000000 -0800 @@ -11,6 +11,7 @@ #include "linux/msg.h" #include "linux/shm.h" #include "linux/sys.h" +#include "linux/syscalls.h" #include "linux/unistd.h" #include "linux/slab.h" #include "linux/utime.h" diff -puN arch/v850/kernel/syscalls.c~add-syscalls_h-8 arch/v850/kernel/syscalls.c --- 25/arch/v850/kernel/syscalls.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/v850/kernel/syscalls.c 2004-02-14 23:22:15.000000000 -0800 @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff -puN arch/x86_64/ia32/ipc32.c~add-syscalls_h-8 arch/x86_64/ia32/ipc32.c --- 25/arch/x86_64/ia32/ipc32.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/x86_64/ia32/ipc32.c 2004-02-14 23:22:15.000000000 -0800 @@ -1,5 +1,6 @@ #include #include +#include #include #include #include diff -puN arch/x86_64/ia32/ptrace32.c~add-syscalls_h-8 arch/x86_64/ia32/ptrace32.c --- 25/arch/x86_64/ia32/ptrace32.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/x86_64/ia32/ptrace32.c 2004-02-14 23:22:15.000000000 -0800 @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff -puN arch/x86_64/kernel/sys_x86_64.c~add-syscalls_h-8 arch/x86_64/kernel/sys_x86_64.c --- 25/arch/x86_64/kernel/sys_x86_64.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/arch/x86_64/kernel/sys_x86_64.c 2004-02-14 23:22:15.000000000 -0800 @@ -4,6 +4,7 @@ #include #include +#include #include #include #include diff -puN fs/compat_ioctl.c~add-syscalls_h-8 fs/compat_ioctl.c --- 25/fs/compat_ioctl.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/fs/compat_ioctl.c 2004-02-14 23:22:15.000000000 -0800 @@ -62,6 +62,7 @@ #include #include #include +#include #include #include #include diff -puN fs/nfsd/export.c~add-syscalls_h-8 fs/nfsd/export.c --- 25/fs/nfsd/export.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/fs/nfsd/export.c 2004-02-14 23:22:15.000000000 -0800 @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff -puN fs/nfsd/nfsctl.c~add-syscalls_h-8 fs/nfsd/nfsctl.c --- 25/fs/nfsd/nfsctl.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/fs/nfsd/nfsctl.c 2004-02-14 23:22:15.000000000 -0800 @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff -puN include/asm-x86_64/compat.h~add-syscalls_h-8 include/asm-x86_64/compat.h --- 25/include/asm-x86_64/compat.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/asm-x86_64/compat.h 2004-02-14 23:22:15.000000000 -0800 @@ -28,6 +28,7 @@ typedef u16 compat_ipc_pid_t; typedef s32 compat_daddr_t; typedef u32 compat_caddr_t; typedef __kernel_fsid_t compat_fsid_t; +typedef u32 compat_timer_t; typedef s32 compat_int_t; typedef s32 compat_long_t; diff -puN include/asm-x86_64/unistd.h~add-syscalls_h-8 include/asm-x86_64/unistd.h --- 25/include/asm-x86_64/unistd.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/asm-x86_64/unistd.h 2004-02-14 23:22:15.000000000 -0800 @@ -710,10 +710,17 @@ asmlinkage long sys_clone(unsigned long asmlinkage long sys_fork(struct pt_regs regs); asmlinkage long sys_vfork(struct pt_regs regs); asmlinkage long sys_pipe(int *fildes); + +#endif /* __KERNEL_SYSCALLS__ */ + +#ifndef __ASSEMBLY__ + +#include + asmlinkage long sys_ptrace(long request, long pid, unsigned long addr, long data); -#endif /* __KERNEL_SYSCALLS__ */ +#endif /* __ASSEMBLY__ */ #endif /* __NO_STUBS */ diff -puN include/linux/eventpoll.h~add-syscalls_h-8 include/linux/eventpoll.h --- 25/include/linux/eventpoll.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/eventpoll.h 2004-02-14 23:22:15.000000000 -0800 @@ -49,13 +49,6 @@ struct epoll_event { struct file; -/* Kernel space functions implementing the user space "epoll" API */ -asmlinkage long sys_epoll_create(int size); -asmlinkage long sys_epoll_ctl(int epfd, int op, int fd, - struct epoll_event __user *event); -asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events, - int maxevents, int timeout); - #ifdef CONFIG_EPOLL /* Used to initialize the epoll bits inside the "struct file" */ diff -puN include/linux/futex.h~add-syscalls_h-8 include/linux/futex.h --- 25/include/linux/futex.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/futex.h 2004-02-14 23:22:15.000000000 -0800 @@ -10,10 +10,6 @@ #define FUTEX_REQUEUE (3) -asmlinkage long sys_futex(u32 __user *uaddr, int op, int val, - struct timespec __user *utime, u32 __user *uaddr2); - - long do_futex(unsigned long uaddr, int op, int val, unsigned long timeout, unsigned long uaddr2, int val2); diff -puN include/linux/ioctl32.h~add-syscalls_h-8 include/linux/ioctl32.h --- 25/include/linux/ioctl32.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/ioctl32.h 2004-02-14 23:22:15.000000000 -0800 @@ -3,8 +3,6 @@ struct file; -extern long sys_ioctl(unsigned int, unsigned int, unsigned long); - /* * Register an 32bit ioctl translation handler for ioctl cmd. * diff -puN include/linux/mm.h~add-syscalls_h-8 include/linux/mm.h --- 25/include/linux/mm.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/mm.h 2004-02-14 23:22:15.000000000 -0800 @@ -455,8 +455,6 @@ extern int install_file_pte(struct mm_st extern int handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access); extern int make_pages_present(unsigned long addr, unsigned long end); extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write); -extern long sys_remap_file_pages(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long nonblock); -extern long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice); void put_dirty_page(struct task_struct *tsk, struct page *page, unsigned long address, pgprot_t prot); diff -puN include/linux/nfsd/syscall.h~add-syscalls_h-8 include/linux/nfsd/syscall.h --- 25/include/linux/nfsd/syscall.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/nfsd/syscall.h 2004-02-14 23:22:15.000000000 -0800 @@ -115,7 +115,6 @@ union nfsctl_res { /* * Kernel syscall implementation. */ -extern asmlinkage long sys_nfsservctl(int, struct nfsctl_arg __user *, void __user *); extern int exp_addclient(struct nfsctl_client *ncp); extern int exp_delclient(struct nfsctl_client *ncp); extern int exp_export(struct nfsctl_export *nxp); diff -puN include/linux/sched.h~add-syscalls_h-8 include/linux/sched.h --- 25/include/linux/sched.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/sched.h 2004-02-14 23:22:15.000000000 -0800 @@ -822,8 +822,6 @@ extern task_t *child_reaper; extern int do_execve(char *, char __user * __user *, char __user * __user *, struct pt_regs *); extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *); extern struct task_struct * copy_process(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *); -extern asmlinkage long sys_sched_setscheduler(pid_t pid, int policy, - struct sched_param __user *parm); #ifdef CONFIG_SMP extern void wait_task_inactive(task_t * p); diff -puN include/linux/shm.h~add-syscalls_h-8 include/linux/shm.h --- 25/include/linux/shm.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/shm.h 2004-02-14 23:22:15.000000000 -0800 @@ -90,11 +90,6 @@ struct shmid_kernel /* private to the ke #define SHM_LOCKED 02000 /* segment will not be swapped */ #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */ -long sys_shmat (int shmid, char __user *shmaddr, int shmflg, unsigned long *addr); -asmlinkage long sys_shmget (key_t key, size_t size, int flag); -asmlinkage long sys_shmdt (char __user *shmaddr); -asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf); - #endif /* __KERNEL__ */ #endif /* _LINUX_SHM_H_ */ diff -puN include/linux/socket.h~add-syscalls_h-8 include/linux/socket.h --- 25/include/linux/socket.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/socket.h 2004-02-14 23:22:15.000000000 -0800 @@ -245,10 +245,6 @@ struct ucred { #define MSG_CMSG_COMPAT 0 /* We never have 32 bit fixups */ #endif -extern asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags); -extern asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags); - - /* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */ #define SOL_IP 0 diff -puN include/linux/syscalls.h~add-syscalls_h-8 include/linux/syscalls.h --- 25/include/linux/syscalls.h~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/include/linux/syscalls.h 2004-02-14 23:22:15.000000000 -0800 @@ -35,6 +35,7 @@ struct rusage; struct sched_param; struct semaphore; struct sembuf; +struct shmid_ds; struct sockaddr; struct stat; struct stat64; @@ -251,7 +252,14 @@ asmlinkage long sys_mprotect(unsigned lo asmlinkage unsigned long sys_mremap(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr); +long sys_remap_file_pages(unsigned long start, unsigned long size, + unsigned long prot, unsigned long pgoff, + unsigned long flags); +long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice); asmlinkage long sys_munmap(unsigned long addr, size_t len); +asmlinkage long sys_mlock(unsigned long start, size_t len); +asmlinkage long sys_munlock(unsigned long start, size_t len); + asmlinkage long sys_pivot_root(const char __user *new_root, const char __user *put_old); asmlinkage long sys_chroot(const char __user *filename); @@ -385,8 +393,7 @@ asmlinkage long sys_sendmsg(int fd, stru asmlinkage long sys_recv(int, void *, size_t, unsigned); asmlinkage long sys_recvfrom(int, void *, size_t, unsigned, struct sockaddr *, int *); -asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, - unsigned int flags); +asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags); asmlinkage long sys_socket(int, int, int); asmlinkage long sys_socketpair(int, int, int, int [2]); asmlinkage long sys_socketcall(int call, unsigned long __user *args); @@ -429,6 +436,10 @@ asmlinkage long sys_semctl(int semid, in asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops, unsigned nsops, const struct timespec __user *timeout); +long sys_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr); +asmlinkage long sys_shmget(key_t key, size_t size, int flag); +asmlinkage long sys_shmdt(char __user *shmaddr); +asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf); asmlinkage long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn); asmlinkage long sys_pciconfig_read(unsigned long bus, unsigned long dfn, diff -puN kernel/fork.c~add-syscalls_h-8 kernel/fork.c --- 25/kernel/fork.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/kernel/fork.c 2004-02-14 23:22:15.000000000 -0800 @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include diff -puN kernel/module.c~add-syscalls_h-8 kernel/module.c --- 25/kernel/module.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/kernel/module.c 2004-02-14 23:22:15.000000000 -0800 @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff -puN mm/mmap.c~add-syscalls_h-8 mm/mmap.c --- 25/mm/mmap.c~add-syscalls_h-8 2004-02-14 23:22:15.000000000 -0800 +++ 25-akpm/mm/mmap.c 2004-02-14 23:22:15.000000000 -0800 @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include _