opnsense-src/sys/compat/linux
Alexander Leidinger 9b44bfc556 Add the linux 2.6.x stuff (not used by default!):
- TLS - complete
 - pid/tid mangling - complete
 - thread area - complete
 - futexes - complete with issues
 - clone() extension - complete with some possible minor issues
 - mq*/timer*/clock* stuff - complete but untested and the mq* stuff is
   disabled when not build as part of the kernel with native FreeBSD mq*
   support (module support for this will come later)

Tested with:
 - linux-firefox - works, tested
 - linux-opera - works, tested
 - linux-realplay - doesnt work, issue with futexes
 - linux-skype - doesnt work, issue with futexes
 - linux-rt2-demo - works, tested
 - linux-acroread - doesnt work, unknown reason (coredump) and sometimes
   issue with futexes
 - various unix utilities in linux-base-gentoo3 and linux-base-fc4:
   everything tried worked

On amd64 not everything is supported like on i386, the catchup is planned for
later when the remaining bugs in the new functions are fixed.

To test this new stuff, you have to run
	sysctl compat.linux.osrelease=2.6.16
to switch back use
	sysctl compat.linux.osrelease=2.4.2

Don't switch while running a linux program, strange things may or may not
happen.

Sponsored by:			Google SoC 2006
Submitted by:			rdivacky
Some suggestions/help by:	jhb, kib, manu@NetBSD.org, netchild
2006-08-15 12:54:30 +00:00
..
linux_emul.c Add some new files needed for linux 2.6.x compatibility. 2006-08-15 12:20:59 +00:00
linux_emul.h Add some new files needed for linux 2.6.x compatibility. 2006-08-15 12:20:59 +00:00
linux_file.c - Add conditional VFS Giant locking to getdents_common() (linux ABIs), 2006-07-11 20:52:08 +00:00
linux_futex.c Add some new files needed for linux 2.6.x compatibility. 2006-08-15 12:20:59 +00:00
linux_futex.h Add some new files needed for linux 2.6.x compatibility. 2006-08-15 12:20:59 +00:00
linux_getcwd.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_ioctl.c - Protect the list of linux ioctl handlers with an sx lock. 2006-07-06 21:42:36 +00:00
linux_ioctl.h Now that we don't have a linuxolator on alpha anymore: 2006-05-10 20:38:16 +00:00
linux_ipc.c Rework kern_semctl a bit to always assume the UIO_SYSSPACE case. This 2006-07-08 19:51:38 +00:00
linux_ipc.h Changes to MI Linux emulation code necessary to run 32-bit Linux binaries 2004-08-16 07:28:16 +00:00
linux_mib.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_mib.h Remove linux_mib_destroy() (which I actually added in between 5.0 and 5.1) 2005-12-15 16:30:41 +00:00
linux_misc.c Add the linux 2.6.x stuff (not used by default!): 2006-08-15 12:54:30 +00:00
linux_signal.c Add the linux 2.6.x stuff (not used by default!): 2006-08-15 12:54:30 +00:00
linux_signal.h Remove __P. 2002-03-20 05:48:58 +00:00
linux_socket.c Don't free the sockaddr in kern_bind() and kern_connect() as not all 2006-07-19 18:28:52 +00:00
linux_socket.h Fix typo in the BSD copyright: s/withough/without/ 2002-06-02 20:05:59 +00:00
linux_stats.c Fix file leaking in translate_path_major_minor. 2006-05-16 17:57:00 +00:00
linux_sysctl.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_sysproto.h Handle unimplemented syscall by instantly returning ENOSYS instead of sending 2005-03-07 00:18:06 +00:00
linux_time.c Add some new files needed for linux 2.6.x compatibility. 2006-08-15 12:20:59 +00:00
linux_uid16.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_util.c Add the linux 2.6.x stuff (not used by default!): 2006-08-15 12:54:30 +00:00
linux_util.h Axe the stackgap macros as the Linux ABIs no longer use the stackgap. 2006-06-27 18:30:49 +00:00