--On Sunday, October 10, 2004 17:51:17 -0400 Sam Hartman <[EMAIL PROTECTED]> wrote:
> The set of ioctls that are converted from 32-bit applications to a > 64-bit kernel is statically specified in fs/compat_ioctl.c and > arch/ppc64/kernel/ioctl32.c. The ioctl_start array that is defined in ioctl32.c is not where compat_sys_ioctl looks up the ioctl numbers. init_sys32_ioctl() uses ioctl_start to initialize the hash table that compat_sys_ioctl does use. At least in 2.6.8.1, the contents of the hash table can be extended by calling the exported register_ioctl32_conversion() function. The downside of the hash table approach is that ioctl number collisions now cause problems*, and so if a CAPI_REGISTER or SNDCTL_COPR_LOAD conversion function was ever written, it would conflict with our conversion function. * Because ioctl is normally dispatched through the (struct file *)->f_op structure, conflicting ioctl commands do not otherwise cause problems on linux unless they are both applicable to some type of file. However, compat_sys_ioctl dispatches to compatibility handlers by matching only the cmd value.
p7sHXxfA0PcNG.p7s
Description: S/MIME cryptographic signature
