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:
> > 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
__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).