linux-mips
[Top] [All Lists]

Re: 64-bit and N32 kernel interfaces

To: linux-mips@linux-mips.org
Subject: Re: 64-bit and N32 kernel interfaces
From: Ralf Baechle <ralf@linux-mips.org>
Date: Mon, 16 Sep 2002 15:01:52 +0200
In-reply-to: <20020904155645.A31893@linux-mips.org>; from ralf@linux-mips.org on Wed, Sep 04, 2002 at 03:56:45PM +0200
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20020904155645.A31893@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.2.5.1i
On Wed, Sep 04, 2002 at 03:56:45PM +0200, Ralf Baechle wrote:

Additional changes I've done to my working version:

> 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.
> 
> Suggestions, comments etc?

  Ralf

<Prev in Thread] Current Thread [Next in Thread>