One thing to bear in mind is the possibility of 32-bit client programs
running on a 64-bit platform, so your user-space driver will need be be
aware of the flavour of the client, and parse the ioctl arguments (and
in particular, pointers) appropriately.
That's true of a kernel implementation too, of course.
--
Roger
--