📄 signal.h
字号:
#ifndef _ASMAXP_SIGNAL_H#define _ASMAXP_SIGNAL_H#include <linux/types.h>/* Avoid too many header ordering problems. */struct siginfo;#ifdef __KERNEL__/* Digital Unix defines 64 signals. Most things should be clean enough to redefine this at will, if care is taken to make libc match. */#define _NSIG 64#define _NSIG_BPW 64#define _NSIG_WORDS (_NSIG / _NSIG_BPW)typedef unsigned long old_sigset_t; /* at least 32 bits */typedef struct { unsigned long sig[_NSIG_WORDS];} sigset_t;#else/* Here we must cater to libcs that poke about in kernel headers. */#define NSIG 32typedef unsigned long sigset_t;#endif /* __KERNEL__ *//* * Linux/AXP has different signal numbers that Linux/i386: I'm trying * to make it OSF/1 binary compatible, at least for normal binaries. */#define SIGHUP 1#define SIGINT 2#define SIGQUIT 3#define SIGILL 4#define SIGTRAP 5#define SIGABRT 6#define SIGEMT 7#define SIGFPE 8#define SIGKILL 9#define SIGBUS 10#define SIGSEGV 11#define SIGSYS 12#define SIGPIPE 13#define SIGALRM 14#define SIGTERM 15#define SIGURG 16#define SIGSTOP 17#define SIGTSTP 18#define SIGCONT 19#define SIGCHLD 20#define SIGTTIN 21#define SIGTTOU 22#define SIGIO 23#define SIGXCPU 24#define SIGXFSZ 25#define SIGVTALRM 26#define SIGPROF 27#define SIGWINCH 28#define SIGINFO 29#define SIGUSR1 30#define SIGUSR2 31#define SIGPOLL SIGIO#define SIGPWR SIGINFO#define SIGIOT SIGABRT/* These should not be considered constants from userland. */#define SIGRTMIN 32#define SIGRTMAX (_NSIG-1)/* * SA_FLAGS values: * * SA_ONSTACK indicates that a registered stack_t will be used. * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the * SA_RESTART flag to get restarting signals (which were the default long ago) * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. * SA_RESETHAND clears the handler when the signal is delivered. * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. * SA_NODEFER prevents the current signal from being masked in the handler. * * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single * Unix names RESETHAND and NODEFER respectively. */#define SA_ONSTACK 0x00000001#define SA_RESTART 0x00000002#define SA_NOCLDSTOP 0x00000004#define SA_NODEFER 0x00000008#define SA_RESETHAND 0x00000010#define SA_NOCLDWAIT 0x00000020 /* not supported yet */#define SA_SIGINFO 0x00000040#define SA_ONESHOT SA_RESETHAND#define SA_NOMASK SA_NODEFER#define SA_INTERRUPT 0x20000000 /* dummy -- ignored *//* * sigaltstack controls */#define SS_ONSTACK 1#define SS_DISABLE 2#define MINSIGSTKSZ 4096#define SIGSTKSZ 16384#ifdef __KERNEL__/* * These values of sa_flags are used only by the kernel as part of the * irq handling routines. * * SA_INTERRUPT is also used by the irq handling routines. * SA_SHIRQ is for shared interrupt support on PCI and EISA. */#define SA_PROBE SA_ONESHOT#define SA_SAMPLE_RANDOM SA_RESTART#define SA_SHIRQ 0x40000000#endif#define SIG_BLOCK 1 /* for blocking signals */#define SIG_UNBLOCK 2 /* for unblocking signals */#define SIG_SETMASK 3 /* for setting the signal mask *//* Type of a signal handler. */typedef void (*__sighandler_t)(int);#define SIG_DFL ((__sighandler_t)0) /* default signal handling */#define SIG_IGN ((__sighandler_t)1) /* ignore signal */#define SIG_ERR ((__sighandler_t)-1) /* error return from signal */#ifdef __KERNEL__struct osf_sigaction { __sighandler_t sa_handler; old_sigset_t sa_mask; int sa_flags;};struct sigaction { __sighandler_t sa_handler; unsigned long sa_flags; sigset_t sa_mask; /* mask last for extensibility */};struct k_sigaction { struct sigaction sa; void (*ka_restorer)(void);};#else/* Here we must cater to libcs that poke about in kernel headers. */struct sigaction { union { __sighandler_t _sa_handler; void (*_sa_sigaction)(int, struct siginfo *, void *); } _u; sigset_t sa_mask; int sa_flags;};#define sa_handler _u._sa_handler#define sa_sigaction _u._sa_sigaction#endif /* __KERNEL__ */typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size;} stack_t;/* sigstack(2) is deprecated, and will be withdrawn in a future version of the X/Open CAE Specification. Use sigaltstack instead. It is only implemented here for OSF/1 compatibility. */struct sigstack { void *ss_sp; int ss_onstack;};#ifdef __KERNEL__#include <asm/sigcontext.h>#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -