summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.syscall/signal.c
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2007-10-10 13:58:43 -0400
committerFrank Ch. Eigler <fche@elastic.org>2007-10-10 13:58:43 -0400
commit36c24cdba10c3d20638c78b52cc8e327a3a0b82d (patch)
tree24cbeb006365fdaa21dbf9cf3b44eae055684123 /testsuite/systemtap.syscall/signal.c
parent38d7fc30b108ec4a9e74ddb33d945cce1bd5c4c6 (diff)
parentd319669c3f77a3e451f1cad845471433e6d0dbfa (diff)
downloadsystemtap-steved-36c24cdba10c3d20638c78b52cc8e327a3a0b82d.tar.gz
systemtap-steved-36c24cdba10c3d20638c78b52cc8e327a3a0b82d.tar.xz
systemtap-steved-36c24cdba10c3d20638c78b52cc8e327a3a0b82d.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'testsuite/systemtap.syscall/signal.c')
-rw-r--r--testsuite/systemtap.syscall/signal.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/testsuite/systemtap.syscall/signal.c b/testsuite/systemtap.syscall/signal.c
index e125e4a1..2c0abe38 100644
--- a/testsuite/systemtap.syscall/signal.c
+++ b/testsuite/systemtap.syscall/signal.c
@@ -2,56 +2,54 @@
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
+#include <string.h>
#include <sys/syscall.h>
-#ifdef SYS_signal
static void
sig_act_handler(int signo)
{
}
-#endif
int main()
{
-#ifdef SYS_signal
sigset_t mask;
struct sigaction sa;
pid_t pid;
+#ifdef SYS_signal
syscall(SYS_signal, SIGUSR1, SIG_IGN);
- // signal (SIGUSR1, 0x0+1) = 0
+ // signal (SIGUSR1, SIG_IGN)
- syscall(SYS_signal, SIGUSR1, SIG_DFL);
- // signal (SIGUSR1, 0x0+) = 1
+ syscall (SYS_signal, SIGUSR1, SIG_DFL);
+ // signal (SIGUSR1, SIG_DFL) = 1
- syscall(SYS_signal, SIGUSR1, sig_act_handler);
+ syscall (SYS_signal, SIGUSR1, sig_act_handler);
// signal (SIGUSR1, XXXX) = 0
+#endif
sigemptyset(&mask);
- sigaddset(&mask, SIGUSR1);
- syscall(SYS_sigprocmask,SIG_BLOCK, &mask, NULL);
+ sigaddset(&mask, SIGUSR2);
+
+#ifdef SYS_sigprocmask
+ syscall (SYS_sigprocmask, SIG_BLOCK, &mask, NULL);
// sigprocmask (SIG_BLOCK, XXXX, 0x0+) = 0
- syscall(SYS_sigprocmask,SIG_UNBLOCK, &mask, NULL);
+ syscall (SYS_sigprocmask, SIG_UNBLOCK, &mask, NULL);
// sigprocmask (SIG_UNBLOCK, XXXX, 0x0+) = 0
+#endif
+ memset(&sa, 0, sizeof(sa));
+ sigfillset(&sa.sa_mask);
sa.sa_handler = SIG_IGN;
- sigemptyset(&sa.sa_mask);
- sigaddset(&sa.sa_mask, SIGALRM);
- sa.sa_flags = 0;
- syscall(SYS_sigaction,SIGUSR1, &sa, NULL);
- // sigaction (SIGUSR1, XXXX, 0x0+) = 0
-
- /* syscall(SYS_kill,0,SIGUSR1);
- kill (0, SIGUSR1) = 0
-
- pid = getpid();
- getpid () = NNNN
+#ifdef SYS_sigaction
+ syscall (SYS_sigaction, SIGUSR1, &sa, NULL);
+ // sigaction (SIGUSR1, {SIG_IGN}, 0x0+) = 0
+ #endif
- syscall(SYS_tgkill,pid,pid,SIGUSR1);
- tgkill (NNNN, NNNN, SIGUSR1) = 0
- */
+#ifdef SYS_tgkill
+ syscall(SYS_tgkill, 1234, 5678, 0);
+ // tgkill (1234, 5678, SIG_0)
#endif
return 0;