Re: [PATCH] introduce kernel_execve function to replace __KERNEL_SYSCALLS__
From: Arnd Bergmann <arnd@arndb.de>
Date: 2006-08-20 20:33:58
Also in:
lkml
On Sunday 20 August 2006 22:11, Björn Steinbrink wrote:
Only one in unistd.h, but throughout the kernel there are quite a few unless I'm missing something here: doener@atjola:~/src/kernel/linux-2.6$ grep \ _syscall * -R | \quoted
grep -v define\\\|undef\\\|clobber | wc -l116
there are only a few direct calls that managed to sneak in after we removed them all some time ago: | arch/sh64/kernel/process.c: _syscall0(int, getpid) | arch/sh64/kernel/process.c: _syscall1(int, getpgid, int, pid) | arch/sh64/kernel/process.c:static __inline__ _syscall2(int,clone,unsigned long,flags,unsigned long,newsp) | arch/sh64/kernel/process.c:static __inline__ _syscall1(int,exit,int,ret) These should be replaced with calls to sys_*, or whatever the other architectures do in order to implement the respective functions. | arch/um/os-Linux/sys-i386/tls.c:static _syscall1(int, get_thread_area, user_desc_t *, u_info); | arch/um/os-Linux/process.c:inline _syscall0(pid_t, getpid) | arch/um/os-Linux/tls.c:static _syscall1(int, get_thread_area, user_desc_t *, u_info); | arch/um/os-Linux/tls.c:static _syscall1(int, set_thread_area, user_desc_t *, u_info); | arch/um/sys-i386/unmap.c:static inline _syscall2(int,munmap,void *,start,size_t,len) | arch/um/sys-i386/unmap.c:static inline _syscall6(void *,mmap2,void *,addr,size_t,len,int,prot,int,flags,int,fd,off_t,offset) | arch/um/sys-x86_64/unmap.c:static inline _syscall2(int,munmap,void *,start,size_t,len) | arch/um/sys-x86_64/unmap.c:static inline _syscall6(void *,mmap,void *,addr,size_t,len,int,prot,int,flags,int,fd,off_t,offset) UML is special, there may be a good reason to use them, if they are not actually kernel syscalls, but instead calls to the host OS. Arnd <><