Coda File System

Re: 64-bit issues

From: Michael Tautschnig <>
Date: Mon, 9 Aug 2004 03:09:07 +0200 (CEST)
> 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/,
>     /* 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

Received on 2004-08-08 21:14:58