(Illustration by Gaich Muramatsu)
> > > As I took a closer look into the sources, I got pretty sure, that my > > problem lies in the different pointer-sizes when having a 32-bit userland > > and a 64-bit kernel. Could somebody confirm that? > > That would cause trouble, yes. > > > The structs ViceIoctl and PioctlData both contain pointers - but what > > would be a good solution for that problem? > > If I follow (which I'm not sure), you are saying that structures which > are passed by reference across the user/kernel boundary contain > pointers to other structures? This is a real problem, because with a > 64-bit venus we can't assume the high 4 bytes are zero. A kludge > would be to define then as uint32_t, and cast back to pointers in the > kernel. With a 32-bit venus, you'll get the right answer since there > of course are no addresses >32 bits. Well, but this absolutely not portable to pure 64-bit Systems - but what about using u_int64_t? I'll try... But is this the preferred solution for such problems? Are there any better solutions? Regards, MichaelReceived on 2004-08-06 03:45:21