diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-08-02 20:04:56 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-08-02 20:04:56 +0000 |
commit | 7b19af689144b165a6c9ddc8445e2762c979c04b (patch) | |
tree | 98b052fbb76d367d23270527536e769ae7ff43de /sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c | |
parent | 249fd241a225b3b3723e55f7051ed4c7bf726e78 (diff) | |
download | glibc-7b19af689144b165a6c9ddc8445e2762c979c04b.tar glibc-7b19af689144b165a6c9ddc8445e2762c979c04b.tar.gz glibc-7b19af689144b165a6c9ddc8445e2762c979c04b.tar.bz2 glibc-7b19af689144b165a6c9ddc8445e2762c979c04b.zip |
Update.
1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction):
Only allow rt signal frames. No SA_SIGINFO signals will have the
siginfo_t just not filled out with SI_NOINFO code.
* sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
(register_dump): Take the above change into account.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
(rt_signal_frame): Likewise.
* sysdeps/unix/sysv/linux/sparc/getsysstats.c: New file.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c index cd86f48602..cbfc248c8e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c @@ -32,24 +32,18 @@ extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *, size_t); static void __rt_sigreturn_stub (void); -static void __sigreturn_stub (void); int __sigaction (int sig, __const struct sigaction *act, struct sigaction *oact) { int ret; struct kernel_sigaction kact, koact; - unsigned long stub = 0; + unsigned long stub = ((unsigned long) &__rt_sigreturn_stub) - 8; if (act) { kact.k_sa_handler = act->sa_handler; memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t)); - if (((kact.sa_flags = act->sa_flags) & SA_SIGINFO) != 0) - stub = (unsigned long) &__rt_sigreturn_stub; - else - stub = (unsigned long) &__sigreturn_stub; - stub -= 8; kact.sa_restorer = NULL; } @@ -79,12 +73,3 @@ __rt_sigreturn_stub (void) : /* no outputs */ : "i" (__NR_rt_sigreturn)); } - -static void -__sigreturn_stub (void) -{ - __asm__ ("mov %0, %%g1\n\t" - "ta 0x6d\n\t" - : /* no outputs */ - : "i" (__NR_sigreturn)); -} |