On Mon, Sep 16, 2002 at 03:01:52PM +0200, Ralf Baechle wrote: More chainswing ... > > As first think I want to get rid of all the historic crap we have in > > our syscall tables for the 64-bit syscalls. Let's start here: > > > > #define __NR_syscall (__NR_Linux + 0) > > > > Deprecated because can be implemented in userspace. > > > > #define __NR_ioperm (__NR_Linux + 101) > > #define __NR_iopl (__NR_Linux + 110) > > #define __NR_vm86 (__NR_Linux + 113) > > > > i386 braindamage we're never going to support. So why have it in our > > syscall table? > > > > #define __NR_unused59 (__NR_Linux + 59) > > #define __NR_reserved82 (__NR_Linux + 82) > > #define __NR_unused109 (__NR_Linux + 109) > > #define __NR_unused150 (__NR_Linux + 150) > > > > Unused entries. Why keep them ... > > > > #define __NR_break (__NR_Linux + 17) > > #define __NR_stty (__NR_Linux + 31) > > #define __NR_gtty (__NR_Linux + 32) > > #define __NR_ftime (__NR_Linux + 35) > > #define __NR_prof (__NR_Linux + 44) > > #define __NR_signal (__NR_Linux + 48) > > #define __NR_mpx (__NR_Linux + 56) > > #define __NR_ulimit (__NR_Linux + 58) > > #define __NR_readdir (__NR_Linux + 89) > > #define __NR_profil (__NR_Linux + 98) > > #define __NR_modify_ldt (__NR_Linux + 123) > > One more for the same cathegory: > > #define __NR_lock (__NR_Linux + 53) > > > Slots that data back to day one of UNIX way before Linux was born. > > > > #define __NR_socketcall (__NR_Linux + 102) > > > > Wrapper syscall, obsoleted since quite a while in the 32-bit kernel. > > > > #define __NR_idle (__NR_Linux + 112) > > > > Internal syscall, no longer used. > > > > #define __NR_ipc (__NR_Linux + 117) > > This implies eleven new entries for: > > __NR_semget > __NR_semop > __NR_semctl > __NR_msgget > __NR_msgsnd > __NR_msgrcv > __NR_msgctl > __NR_shmget > __NR_shmat > __NR_shmdt > __NR_shmctl > > > Yet another multiplexor syscall and imho another candidate for getting > > rid of. > > > > #define __NR_oldstat (__NR_Linux + 18) > > #define __NR_umount (__NR_Linux + 22) > > #define __NR_oldfstat (__NR_Linux + 28) > > #define __NR_oldlstat (__NR_Linux + 84) > > > > Superseeded by newer versions. > > > > #define __NR_uselib (__NR_Linux + 86) > > > > a.out support. Do we really want that. > > > > I probably missed a few. The primary purpose of this posting is to get a > > discussion about the 64-bit syscall interface started. It's still not > > cast into stone so we can modify it as we see fit. The entire syscall > > interface is still open for changes, this includes all structures etc. > > Along with a 64-bit ABI we'll also have to deciede about a N32 ABI. llseek, pread64/pwrite64, getdent64 are no longer needed as their standard counterparts are already 64 bit. Modern libc doesn't use the old style signal calls __NR_sigaction, __NR_sigsuspend, __NR_sigpending, __NR_sigprocmask. That means __NR_sigreturn can also go. __NR_sgetmask and __NR_ssetmask are only capable of dealing with signal masks of at most bitsof(long) and thus have become useless and replaced by sigprocmask(2). __NR_waitpid can be implemented on top of wait(2). __NR_stime can be implemented on top of settimeofday(2). __NR_nice can be implemented on top of getpriority / setpriority and was a stupid interface anyway. __NR_recv can be implemented on recvfrom(2) and __NR_send using sendfrom(2). Ralf