introduce-linux-ia64-port-20010806
authorChas Williams <chas@cmf.nrl.navy.mil>
Tue, 7 Aug 2001 01:11:25 +0000 (01:11 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 7 Aug 2001 01:11:25 +0000 (01:11 +0000)
commita1b425f76746f9e56605eafd7c495ef21b84ad45
tree9e4446e680f7f26d46ae5c1d1a9d4bfc4a81cbad
parent77d10b6d69fae4343d0c96ded4350eb4d0f0d7fd
introduce-linux-ia64-port-20010806

"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."

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================

don't leak into not ia64 port
18 files changed:
configure.in
src/afs/LINUX/osi_alloc.c
src/afs/LINUX/osi_groups.c
src/afs/LINUX/osi_machdep.h
src/afs/LINUX/osi_module.c
src/afs/afs_call.c
src/afs/afs_pioctl.c
src/config/afs_sysnames.h
src/config/param.ia64_linux24.h [new file with mode: 0644]
src/config/param.ia64_linux24_usr.h [new file with mode: 0644]
src/des/andrew-conf.h
src/des/conf-ia64-linux.h [new file with mode: 0644]
src/des/crypt.c
src/dir/buffer.c
src/libafs/MakefileProto.LINUX.in
src/lwp/lwp.h
src/lwp/process.c
src/rx/rx.h