Re: raw1394_request user/kernel space size differences
Brought to you by:
aeb,
bencollins
From: Andreas B. <and...@mu...> - 2000-05-28 21:02:23
|
On Sat, May 27, 2000 at 01:08:08AM -0400, Ben Collins wrote: > 1) Convert to using ioctl's and have the archs that have 32/64 userspace do > translations (just as sparc64 does now in arch/sparc64/kernel/ioctl32.c) > > 2) The ATM code uses this (from include/linux/atmapi.h): > > typedef struct { unsigned char _[8]; } atm_kptr_t; > > ...to abstract the pointers. I'm not sure how it's used, but Dave pointed me > in this direction (albeit, he prefered the ioctl method). Either method > will most likely require changes in the API for /dev/raw1394, libraw1394 > internals and some special code in the kernel for the 32/64 mixed archs. > > Let me know which is prefered and I can start working to code the needed > changes if wanted. I'd rather avoid ioctls and have the pointer fields in kernel pointer size. For that, an autoconf macro needs to be written which determines if we're compiling for 32/64 environments and make those fields 64 bits wide. Setting these fields cast from quadlet_t*. I don't think there is an easy way to determine 32/64, we'd probably have to distinguish by known architecture names. [time passes...] Actually, I have implemented a simple but effective fix now. Kernel side doesn't change, libraw1394 casts pointers to kernel pointer width if neccessary. For now configure requires --enable-32-64 on the command line, there is no automated way to recognize a splitted environment. Update libraw1394 from CVS, run autoheader and autoconf at least (if you have the other stuff lying around already), then "./configure --enable-32-64", make and test it. -- Andreas E. Bombe <and...@mu...> DSA key 0x04880A44 http://home.pages.de/~andreas.bombe/ http://linux1394.sourceforge.net/ |