freebsd-skq/sys/powerpc/aim
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
..
clock.c - add wall_cmos_clock and adjkerntz variables, required by msdosfs 2005-02-04 01:41:38 +00:00
copyinout.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
interrupt.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
locore.S /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
machdep.c 1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most 2005-10-14 12:43:47 +00:00
mmu_oea.c Fix boot-time hang/panic on G3 systems when modifying IBAT0 in 2005-09-10 21:03:10 +00:00
nexus.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ofw_machdep.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ofwmagic.S Instead of "OpenFirmware", "openfirmware", etc. use the official spelling 2004-08-16 15:45:27 +00:00
swtch.S /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
trap_subr.S Temporary band-aid to fix hang when a process exec's Altivec instructions. 2005-07-30 11:14:31 +00:00
trap.c 1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most 2005-10-14 12:43:47 +00:00
uio_machdep.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
uma_machdep.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_machdep.c Validate if the value written into {FS,GS}.base is a canonical 2005-07-10 23:31:11 +00:00