[2251] in Release_Engineering
RT: syscall table
daemon@ATHENA.MIT.EDU (Richard Basch)
Sat Apr 14 06:19:39 1990
Date: Sat, 14 Apr 90 06:19:23 -0400
To: release@MIT.EDU
Cc: rel-eng@MIT.EDU
From: Richard Basch <probe@MIT.EDU>
In order to achieve binary compatibility with the rest of the world, on
the AFS front and the normal NFS front, I have discovered that only
minor changes are required to the RT syscall table to bring us up to
sync with the Dec '88 AOS release.
I have grouped the changes in two categories. The first category is a
list of conflicts. The second shows changes that the old compatibility
version can be kept without problems (and we can phase it out after
time).
There shouldn't be a problem with the first group, as afs_call is a
privileged call (called by root, and I believe is only used by afsd,
since I can't find any type of "fs" command that could use it). Since
it is a root-only command and used so rarely, it is not a problem.
mount() is used a bit more, but everything that does a mount is on the
root, so that won't be a problem:
/etc/mount
/bin/athena/attach
and since /etc/afsd is on the root, that isn't a problem either.
Thus, I propose we change bring ourselves in sync with the rest of the
AOS world, quite trivially, and also be binary compatible with Transarc
and other sites running RT AOS version 4 (Dec. 88). To bring us in
sync, I propose the full rebuild change the defaults to be the new
syscalls and leave the second group of syscalls that do not have
conflicts for our current binaries to continue to operate.
# ours theirs
170 afs_call getdirentries
181 mount afs_call
161 vdspin (we don't have this)
162 vdspind (we don't have this)
163 vdstats (we don't have this)
169 nfs_svc
170 getdirentries
171 statfs
172 fstatfs
173 unmount
174 async_daemon
175 nfs_getfh
176 getdomainname
177 setdomainname
178 quotactl
179 exportfs
180 mount (they call it smount)
182 nfs_mapctl
183 nfs_svc
184 getdirentries
185 statfs
186 fstatfs
187 unmount
188 async_daemon
189 nfs_getfh
190 getdomainname
191 setdomainname
192 exportfs
193 quotactl
Thus, syscalls 183-193 can remain for compatibility (182 needs to stay
or be moved... probably moving it to a safe number like 195 would not be
a bad idea, but this should be considered carefully, and can be done for
the Fall release).
The impact on the development community should be zero, unless they have
things that do mounts (or privileged AFS operations, such as starting it
up, setting up callbacks, etc.)
If we do adopt this change, the release has to be built with care... the
first thing that must be modified is:
sys/h/syscall.h
sys/sys/init_sysent.c
Then, the C library can be built ("buildlib" sets up /usr/include/sys
and thus <sys/syscall.h> prior to building the library... I guess I did
a more thorough job with the build dependencies than I had thought).
I should add as a closing remark that I also had John Carr looking at
this to make sure I wasn't off my rocker. :)
-Richard