cvs commit: src/sys/dev/atkbdc atkbd.c src/sys/dev/digi digi.c
src/sys/dev/kbdmux kbdmux.c src/sys/dev/syscons scvidctl.c
syscons.c src/sys/dev/uart uart_kbd_sun.c src/sys/dev/usb
ukbd.c src/sys/dev/vkbd vkbd.c src/sys/fs/procfs procfs_ioctl.c ...
John Baldwin
jhb at freebsd.org
Wed Sep 27 14:03:50 PDT 2006
On Wednesday 27 September 2006 15:57, Ruslan Ermilov wrote:
> ru 2006-09-27 19:57:02 UTC
>
> FreeBSD src repository
>
> Modified files:
> sys/dev/atkbdc atkbd.c
> sys/dev/digi digi.c
> sys/dev/kbdmux kbdmux.c
> sys/dev/syscons scvidctl.c syscons.c
> sys/dev/uart uart_kbd_sun.c
> sys/dev/usb ukbd.c
> sys/dev/vkbd vkbd.c
> sys/fs/procfs procfs_ioctl.c
> sys/kern sys_generic.c tty_pts.c tty_pty.c
> sys/modules/digi/digi Makefile
> sys/modules/if_tap Makefile
> sys/modules/kbdmux Makefile
> sys/modules/procfs Makefile
> sys/modules/ukbd Makefile
> sys/modules/vkbd Makefile
> sys/net if_tap.c if_tap.h
> sys/pc98/cbus pckbd.c
> sys/sys consio.h digiio.h ioccom.h kbio.h
> pioctl.h ttycom.h
> Log:
> Fix our ioctl(2) implementation when the argument is "int". New
> ioctls passing integer arguments should use the _IOWINT() macro.
> This fixes a lot of ioctl's not working on sparc64, most notable
> being keyboard/syscons ioctls.
>
> Full ABI compatibility is provided, with the bonus of fixing the
> handling of old ioctls on sparc64.
Eh? You just changed ioctl values breaking ABI all over the place, e.g.
sys/pioctl.h. The size field changed from 0 to sizeof(int) meaning different
ioctl values and thus ABI breakage. Plus, what if you have:
struct foo {
int bar;
};
#define FOOIO _IOW('y', 0, struct foo)
that's going to have the same issue isn't it? This really just looks like a
big hack and it doesn't help with ABI compat at all. :(
I think instead the various ioctl handlers have to realize that for IOC_VOID
ioctls declared using _IO() data is a (caddr_t *), not an (int *) (the uap
struct for ioctl clearly defines data as a caddr_t). Fix whatever crap you
have to in the kernel to deal with it, but don't change the userland ABI. :(
--
John Baldwin
More information about the cvs-src
mailing list