[2251] in Release_Engineering

home help back first fref pref prev next nref lref last post

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

home help back first fref pref prev next nref lref last post