Re: dynamic size for ioctl parameter

Minix is no different. Message size is fixed (and very limited). I don't
know the exact size, but it's less than 100 bytes. If you want to pass
larger amounts of data (such as character buffers), you'll need to put a
pointer and a buffer size into the message and then use kernel calls
and/or kernel routines to read/copy the data after the context switch.
Look at the implementation of the read() system call for examples.

Re: dynamic size for ioctl parameter

>

yeah
> Minix is no different. Message size is fixed (and very limited). I don't
> know the exact size, but it's less than 100 bytes. If you want to pass
> larger amounts of data (such as character buffers), you'll need to put a
> pointer and a buffer size into the message and then use kernel calls
> and/or kernel routines to read/copy the data after the context switch.
> Look at the implementation of the read() system call for examples.

i think, this is the way ioctl requests work. after a ioctl call minix
assembles a (small) message (with pointer and size as mentioned from
you) and you copy your request parameter by sys_safecopyfrom().
other way around, back to the upper problem, i guess eg struct A can
have arbitrary (huge) constant size, but not dynamic.

i'm going to add a constant size char buffer to struct A, which is big
enough to hold any possible parameter.