freebsd-skq/sys/compat/svr4
davidxu 3fbdb3c215 1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most
changes in MD code are trivial, before this change, trapsignal and
   sendsig use discrete parameters, now they uses member fields of
   ksiginfo_t structure. For sendsig, this change allows us to pass
   POSIX realtime signal value to user code.

2. Remove cpu_thread_siginfo, it is no longer needed because we now always
   generate ksiginfo_t data and feed it to libpthread.

3. Add p_sigqueue to proc structure to hold shared signals which were
   blocked by all threads in the proc.

4. Add td_sigqueue to thread structure to hold all signals delivered to
   thread.

5. i386 and amd64 now return POSIX standard si_code, other arches will
   be fixed.

6. In this sigqueue implementation, pending signal set is kept as before,
   an extra siginfo list holds additional siginfo_t data for signals.
   kernel code uses psignal() still behavior as before, it won't be failed
   even under memory pressure, only exception is when deleting a signal,
   we should call sigqueue_delete to remove signal from sigqueue but
   not SIGDELSET. Current there is no kernel code will deliver a signal
   with additional data, so kernel should be as stable as before,
   a ksiginfo can carry more information, for example, allow signal to
   be delivered but throw away siginfo data if memory is not enough.
   SIGKILL and SIGSTOP have fast path in sigqueue_add, because they can
   not be caught or masked.
   The sigqueue() syscall allows user code to queue a signal to target
   process, if resource is unavailable, EAGAIN will be returned as
   specification said.
   Just before thread exits, signal queue memory will be freed by
   sigqueue_flush.
   Current, all signals are allowed to be queued, not only realtime signals.

Earlier patch reviewed by: jhb, deischen
Tested on: i386, amd64
2005-10-14 12:43:47 +00:00
..
imgact_svr4.c - Change the vm_mmap() function to accept an objtype_t parameter specifying 2005-04-01 20:00:11 +00:00
Makefile
svr4_acl.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_dirent.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_errno.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_exec.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_fcntl.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_fcntl.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_filio.c Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_filio.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_fuser.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_hrt.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_ioctl.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_ioctl.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_ipc.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_ipc.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_misc.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_mman.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_proto.h Regen. 2005-07-13 20:35:09 +00:00
svr4_resource.c Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_resource.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_siginfo.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_signal.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_signal.h 1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most 2005-10-14 12:43:47 +00:00
svr4_socket.c Lock Giant in svr4_add_socket() so that the various svr4_*stat() calls 2005-07-07 19:27:29 +00:00
svr4_socket.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_sockio.c Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
svr4_sockio.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_sockmod.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_stat.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_stat.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_statvfs.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_stream.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_stropts.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_syscall.h Regen. 2005-07-13 20:35:09 +00:00
svr4_syscallnames.c Regen. 2005-07-13 20:35:09 +00:00
svr4_sysconfig.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_sysent.c Regen. 2005-07-13 20:35:09 +00:00
svr4_systeminfo.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_sysvec.c fixup signal mapping: 2005-02-25 19:34:10 +00:00
svr4_termios.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_termios.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_time.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_timod.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_ttold.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_ttold.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_types.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_ucontext.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_ulimit.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_ustat.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_util.h Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
svr4_utsname.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4_wait.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
svr4.h - Stop hardcoding #define's for options and use the appropriate 2005-07-13 15:14:33 +00:00
syscalls.conf GC unused 'syshide' override to /dev/null. This was here to disable 2003-12-24 00:32:07 +00:00
syscalls.master Make a pass through all the compat ABIs sychronizing the MP safe flags 2005-07-13 20:32:42 +00:00