(Illustration by Gaich Muramatsu)
> > Similar change in ViceIoctl, caddr_t -> u_int64_t. > > The caddr_t and char* fields in coda_ioctl_in coda_ioctl_out and > coda_readlink_out are not actual pointers, and probably should be > replaced with u_int32_t. I just found a (funny) comment in > coda-src/venus/worker.cc, > > /* readlink.data is an offset, with the wrong type .. sorry */ > > You probably need to add (or remove) casts to fix some compiler errors > when rebuilding venus with these changes. Well, I did all the necessary changes - but the result stayed the same; so I did some more debugging and got to the following results: - 32-bit ioctls on sparc64, parisc, s390x, ppc64, x86_64 won't work with the current coda-kernel-code, since compat_sys_ioctl needs the ioctls to be registered using register_ioctl32_conversion - I added those calls and the necessary conversion-function to psdev.c - registering _VICEIOCTL(0) - _VICEIOCTL(255) - that didn't help either, since the size-part of the ioctl-cmd is modified in kerndep/pioctl.c - and thus the registered ioctls are useless. So my question is: Why is this modification necessary? Couldn't _VICEIOCTL simply be modified to use "struct PioctlData" instead of "struct ViceIoctl"? Regards, MichaelReceived on 2004-08-08 21:14:58