freebsd-skq/sys/compat
Tijl Coosemans 8fc08087a1 On amd64 both Linux compat modules, linux.ko and linux64.ko, provide
linux_ioctl_(un)register_handler that allows other driver modules to
register ioctl handlers.  The ioctl syscall implementation in each Linux
compat module iterates over the list of handlers and forwards the call to
the appropriate driver.  Because the registration functions have the same
name in each module it is not possible for a driver to support both 32 and
64 bit linux compatibility.

Move the list of ioctl handlers to linux_common.ko so it is shared by
both Linux modules and all drivers receive both 32 and 64 bit ioctl calls
with one registration.  These ioctl handlers normally forward the call
to the FreeBSD ioctl handler which can handle both 32 and 64 bit.

Keep the special COMPAT_LINUX32 ioctl handlers in linux.ko in a separate
list for now and let the ioctl syscall iterate over that list first.
Later, COMPAT_LINUX32 support can be added to the 64 bit ioctl handlers
via a runtime check for ILP32 like is done for COMPAT_FREEBSD32 and then
this separate list would disappear again.  That is a much bigger effort
however and this commit is meant to be MFCable.

This enables linux64 support in x11/nvidia-driver*.

PR:		206711
Reviewed by:	kib
MFC after:	3 days
2018-11-06 13:51:08 +00:00
..
cloudabi Implement O_BENEATH and AT_BENEATH. 2018-10-25 22:16:34 +00:00
cloudabi32 Regenerated assorted syscall related files after: 2018-10-09 20:42:17 +00:00
cloudabi64 Regenerated assorted syscall related files after: 2018-10-09 20:42:17 +00:00
freebsd32 Regen after r340080: Add const to input-only char * arguments. 2018-11-02 20:56:19 +00:00
ia32 Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
linprocfs Fix output of linprocfs stat entry 2018-06-22 00:02:05 +00:00
linsysfs Create PCI_MATCH and pci_match_device 2018-07-07 15:25:11 +00:00
linux On amd64 both Linux compat modules, linux.ko and linux64.ko, provide 2018-11-06 13:51:08 +00:00
linuxkpi/common linuxkpi: Add GFP flags needed for ttm drivers 2018-11-01 15:30:01 +00:00
ndis Eliminate kmem_alloc_contig()'s unused arena parameter. 2018-08-20 15:57:27 +00:00
netbsd sys/compat: further adoption of SPDX licensing ID tags. 2017-11-27 15:13:23 +00:00
x86bios x86bios: use M_NOWAIT with mallocs 2018-09-13 07:04:00 +00:00