On Mon, Nov 19, 2018 at 04:27:49PM -0800, Andy Lutomirski wrote:
On Mon, Nov 19, 2018 at 3:07 PM Tycho Andersen [off-list ref] wrote:
quoted
quoted
These tools also care about ioctls. Adding a system call is a pain,
but the solution is to make adding system calls less of a pain, not to
permanently make the Linux ABI worse.
For user-defined values of "worse" :)
I tend to agree with Tycho here. But I'm wondering if it might be
worth considering a better ioctl.
/me dons flame-proof hat
We could do:
long better_ioctl(int fd, u32 nr, const void *inbuf, size_t inlen,
const void *outbuf, size_t outlen);
I'm the writer of this patch so take this with a grain of salt.
I think it is a bad idea to stop this patch and force us to introduce a
new type of ioctl().
An ioctl() is also not easy to use for this task because we want to add
a siginfo_t argument which I actually think provides value and makes
this interface more useful.
and have a central table in the kernel listing all possible nr values
along with which driver they belong to. We could have a sane
signature and get rid of the nr collision problem.
The major problem I see is that u32 isn't really enough to have a sane
way to allow out-of-tree drivers to use this, and that we can't
readily use anything bigger than u32 without indirection because we're
out of syscall argument space.