Home | History | Annotate | Download | only in common
History log of /src/sys/compat/linux/common/linux_sigaction.c
RevisionDateAuthorComments
 1.36  23-Sep-2021  ryo add support COMPAT_LINUX for aarch64
 1.35  07-Jan-2018  christos Ignore signal 64 for now (go uses it)
XXX: pullup-8
 1.34  17-Oct-2008  njoly g/c amd64 ifndef/endif.
 1.33  28-Apr-2008  martin branches: 1.33.2; 1.33.6;
Remove clause 3 and 4 from TNF licenses
 1.32  20-Dec-2007  dsl branches: 1.32.6; 1.32.8; 1.32.10;
Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
 1.31  19-Oct-2007  njoly branches: 1.31.4; 1.31.8;
Add compat_linux and exec_linux_elf lkm support for amd64:
- Add needed COMPAT_OSSAUDIO to GENERIC.
- Add missing includes needed by linux_syscallargs.h.
- Add lkm building.
 1.30  09-Feb-2007  ad branches: 1.30.18; 1.30.20; 1.30.24;
Merge newlock2 to head.
 1.29  16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.28  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.27  11-Dec-2005  christos branches: 1.27.20; 1.27.22;
merge ktrace-lwp.
 1.26  03-May-2005  manu branches: 1.26.2;
First work on COMPAT_LINUX/amd64
Process startup and dynamiclinking work, but processes hang due to
Linux arch_prctl(2) not being really supported yet.
 1.25  18-Jan-2003  thorpej branches: 1.25.2;
Merge the nathanw_sa branch.
 1.24  04-Jul-2002  thorpej Add kernel support for having userland provide the signal trampoline:

* struct sigacts gets a new sigact_sigdesc structure, which has the
sigaction and the trampoline/version. Version 0 means "legacy kernel
provided trampoline". Other versions are coordinated with machine-
dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions. Instead,
sendsig() looks up the handler by peeking in the sigacts for the
process getting the signal (since it has to look in there for the
trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later. Kernel
version not bumped; we will ride the 1.6C bump made recently.
 1.23  31-Mar-2002  christos branches: 1.23.2;
make signal array handling uniform, and put signal arrays in a separate
file. This is simular to errno array handling.
 1.22  15-Feb-2002  christos - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.21  13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.20  09-Aug-2000  tv branches: 1.20.2; 1.20.4;
Pretend to do something useful (just fill in oldsigaction with SIG_IGN and
zeroes) if the mapped signal number comes up zero. Previously, sigaction1()
would return an error, confusing some linux apps trying to set handlers for
"all" signals.
 1.19  30-Mar-2000  augustss Kill register declarations.
 1.18  04-Dec-1999  tron Add bound checks in emulation of sigaction(2). This fixes a part of
PR kern/8904 by Dave Sainty.
 1.17  07-Oct-1998  erh branches: 1.17.12; 1.17.18;
This is used on the alpha. It is called osf_sigaction under linux because of the format of the sigaction structure but it acts the same.
 1.16  04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.15  03-Oct-1998  christos Attempt to fix the mess.
 1.14  01-Oct-1998  erh Split compat/linux/linux_signal.c into i386, common and multi-architecture parts.
 1.13  29-Sep-1998  tv Bracket stray printf()s by #ifdef DEBUG.
 1.12  11-Sep-1998  mycroft Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
 1.11  09-Aug-1998  perry bzero->memset, bcopy->memcpy, bcmp->memcmp
 1.10  04-Apr-1996  christos - Add missing prototypes
- Fix bugs with reversed arguments that prototyping discovered
 1.9  07-Oct-1995  mycroft Prefix names of system call implementation functions with `sys_'.
 1.8  19-Sep-1995  thorpej Make system calls conform to a standard prototype and bring those
prototypes into scope.
 1.7  14-Aug-1995  mycroft Move signal types into signal.h.
 1.6  13-Aug-1995  mycroft Convert SA_NOMASK and SA_ONESHOT.
Clean up this code a bit.
 1.5  24-Jun-1995  christos Use compat_util.[ch].
 1.4  22-Jun-1995  fvdl * Changed to use generic ELF code from kern/exec_elf.c (which was taken
from the svr4 exec code plus the linux compat mods)
* Include file change
* Add multicast sockopts (from John Brezak)
 1.3  10-Mar-1995  fvdl Add the Linux pause() system call. Fix the arguments to sigsuspend().
 1.2  08-Mar-1995  fvdl Fix typo in comment.
 1.1  28-Feb-1995  fvdl Added Linux compat code.
 1.17.18.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.17.12.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.20.4.4  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.20.4.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.20.4.2  16-Mar-2002  jdolecek Catch up with -current.
 1.20.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.20.2.8  01-Aug-2002  nathanw Catch up to -current.
 1.20.2.7  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.20.2.6  29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.20.2.5  17-Apr-2002  nathanw Catch up to -current.
 1.20.2.4  28-Feb-2002  nathanw Catch up to -current.
 1.20.2.3  14-Nov-2001  nathanw Catch up to -current.
 1.20.2.2  30-Aug-2001  nathanw #include <sys/lwp.h>
 1.20.2.1  05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.23.2.1  15-Jul-2002  gehenna catch up with -current.
 1.25.2.1  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.26.2.4  21-Jan-2008  yamt sync with head
 1.26.2.3  27-Oct-2007  yamt sync with head.
 1.26.2.2  26-Feb-2007  yamt sync with head.
 1.26.2.1  30-Dec-2006  yamt sync with head.
 1.27.22.2  10-Dec-2006  yamt sync with head.
 1.27.22.1  22-Oct-2006  yamt sync with head
 1.27.20.3  30-Jan-2007  ad Remove support for SA. Ok core@.
 1.27.20.2  18-Nov-2006  ad Sync with head.
 1.27.20.1  24-Oct-2006  ad - Redo LWP locking slightly and fix some races.
- Fix some locking botches.
- Make signal mask / stack per-proc for SA processes.
- Add _lwp_kill().
 1.30.24.1  25-Oct-2007  bouyer Sync with HEAD.
 1.30.20.2  09-Jan-2008  matt sync with HEAD
 1.30.20.1  06-Nov-2007  matt sync with HEAD
 1.30.18.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.31.8.1  02-Jan-2008  bouyer Sync with HEAD
 1.31.4.1  26-Dec-2007  ad Sync with head.
 1.32.10.2  04-May-2009  yamt sync with head.
 1.32.10.1  16-May-2008  yamt sync with head.
 1.32.8.1  18-May-2008  yamt sync with head.
 1.32.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.32.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.33.6.1  19-Oct-2008  haad Sync with HEAD.
 1.33.2.2  14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.33.2.1  10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.

RSS XML Feed