OpenAFS CVS Commit: openafs/src/dir by shadow

cvs@GRAND.CENTRAL.ORG cvs@GRAND.CENTRAL.ORG
Mon, 06 Aug 2001 20:05:01 EDT


Update of /cvs/openafs/src/dir
In directory GRAND.CENTRAL.ORG:/data/sb/openafs/src/dir

Modified Files:
	buffer.c 
Log Message:
DELTA introduce-linux-ia64-port-20010806
AUTHOR chas@cmf.nrl.navy.mil

"no special instructions this time other than you need a rather recent
glibc (turbolinux beta5 or redhat 7.1) since the afs userland utilities
use ucontext() instead of setjmp()/longjmp().  this is probably the weakest
part of the port since lwp is somewhat difficult to test rigorously.

you can insmod the afs module now (and rmmod if you like)  why so difficult?
function pointers are really pointers to a function descriptor that contains
the function pointer and global pointer.  the syscall table (being written
in assembler) only contains function pointers.  it doesnt setup the gp.
modules and kernels do not share the same gp.  so if you want the syscall
to go to a module, you need to setup the gp and then call your module's
routine.  be sure to restore the gp after returning from your routine :)
i also converted to the 'new style' module_init() -- only used on kernel
versions 2.4.0 and up.  this does the right thing if you happen to be
linked directly with the kernel.

klog has been fixed (afs's crypt() function is sensitive to sizeof(long) --
des/crypt.c should probably use 'afs_int32', not 'long' or 'int')

in case it matters, my platform is a b3-stepping running beta5 of turbolinux."


--- DELTA config follows ---
introduce-linux-ia64-port-20010806 openafs/src/dir/buffer.c 1.4 1.5