freebsd-dev/sys/compat/linux
John Baldwin b1ee5b654d Rework kern_semctl a bit to always assume the UIO_SYSSPACE case. This
mostly consists of pushing a few copyin's and copyout's up into
__semctl() as all the other callers were already doing the UIO_SYSSPACE
case.  This also changes kern_semctl() to set the return value in a passed
in pointer to a register_t rather than td->td_retval[0] directly so that
callers can only set td->td_retval[0] if all the various copyout's succeed.

As a result of these changes, kern_semctl() no longer does copyin/copyout
(except for GETALL/SETALL) so simplify the locking to acquire the semakptr
mutex before the MAC check and hold it all the way until the end of the
big switch statement.  The GETALL/SETALL cases have to temporarily drop it
while they do copyin/malloc and copyout.  Also, simplify the SETALL case to
remove handling for a non-existent race condition.
2006-07-08 19:51:38 +00:00
..
linux_file.c Now that we don't have a linuxolator on alpha anymore: 2006-05-10 20:38:16 +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 The linux times syscall can be called with a NULL pointer, so keep cool 2006-06-23 18:49:38 +00:00
linux_signal.c Now that we don't have a linuxolator on alpha anymore: 2006-05-10 20:38:16 +00:00
linux_signal.h
linux_socket.c Now that we don't have a linuxolator on alpha anymore: 2006-05-10 20:38:16 +00:00
linux_socket.h
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_uid16.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_util.c Enhance the Linux emulation layer to make MegaRAID SAS managements tool happy. 2006-05-05 16:10:45 +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