freebsd-skq/sys/compat/freebsd32
kib 08e5013938 Current pselect(3) is implemented in usermode and thus vulnerable to
well-known race condition, which elimination was the reason for the
function appearance in first place. If sigmask supplied as argument to
pselect() enables a signal, the signal might be delivered before thread
called select(2), causing lost wakeup. Reimplement pselect() in kernel,
making change of sigmask and sleep atomic.

Since signal shall be delivered to the usermode, but sigmask restored,
set TDP_OLDMASK and save old mask in td_oldsigmask. The TDP_OLDMASK
should be cleared by ast() in case signal was not gelivered during
syscall execution.

Reviewed by:	davidxu
Tested by:	pho
MFC after:	1 month
2009-10-27 10:55:34 +00:00
..
freebsd32_ioctl.c Emulate the FIODGNAME ioctl in our 32-bit emulator. 2009-03-29 20:09:51 +00:00
freebsd32_ioctl.h Emulate the FIODGNAME ioctl in our 32-bit emulator. 2009-03-29 20:09:51 +00:00
freebsd32_ipc.h Change the ABI of some of the structures used by the SYSV IPC API: 2009-06-24 21:10:52 +00:00
freebsd32_misc.c Current pselect(3) is implemented in usermode and thus vulnerable to 2009-10-27 10:55:34 +00:00
freebsd32_proto.h Regenerate system call files following r197636. 2009-09-30 08:48:59 +00:00
freebsd32_signal.h Add 32-bit compat support for AIO. 2008-12-11 00:58:05 +00:00
freebsd32_syscall.h Regenerate system call files following r197636. 2009-09-30 08:48:59 +00:00
freebsd32_syscalls.c Regenerate system call files following r197636. 2009-09-30 08:48:59 +00:00
freebsd32_sysent.c Regenerate system call files following r197636. 2009-09-30 08:48:59 +00:00
freebsd32_util.h Add support for installing 32-bit system calls from kernel modules. This 2008-09-25 20:50:21 +00:00
freebsd32.h Rename implementation function for freebsd32 sysarch(2) to allow for 2009-04-01 13:11:50 +00:00
Makefile
syscalls.conf - Remove unused sysvec variables from various syscalls.conf. 2006-08-15 17:25:55 +00:00
syscalls.master Current pselect(3) is implemented in usermode and thus vulnerable to 2009-10-27 10:55:34 +00:00