Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F166794389
D7616.id19644.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
D7616.id19644.diff
View Options
Index: sys/kern/kern_sig.c
===================================================================
--- sys/kern/kern_sig.c
+++ sys/kern/kern_sig.c
@@ -189,46 +189,46 @@
* The array below categorizes the signals and their default actions
* according to the following properties:
*/
-#define SA_KILL 0x01 /* terminates process by default */
-#define SA_CORE 0x02 /* ditto and coredumps */
-#define SA_STOP 0x04 /* suspend process */
-#define SA_TTYSTOP 0x08 /* ditto, from tty */
-#define SA_IGNORE 0x10 /* ignore by default */
-#define SA_CONT 0x20 /* continue if suspended */
-#define SA_CANTMASK 0x40 /* non-maskable, catchable */
+#define SIGPROP_KILL 0x01 /* terminates process by default */
+#define SIGPROP_CORE 0x02 /* ditto and coredumps */
+#define SIGPROP_STOP 0x04 /* suspend process */
+#define SIGPROP_TTYSTOP 0x08 /* ditto, from tty */
+#define SIGPROP_IGNORE 0x10 /* ignore by default */
+#define SIGPROP_CONT 0x20 /* continue if suspended */
+#define SIGPROP_CANTMASK 0x40 /* non-maskable, catchable */
static int sigproptbl[NSIG] = {
- SA_KILL, /* SIGHUP */
- SA_KILL, /* SIGINT */
- SA_KILL|SA_CORE, /* SIGQUIT */
- SA_KILL|SA_CORE, /* SIGILL */
- SA_KILL|SA_CORE, /* SIGTRAP */
- SA_KILL|SA_CORE, /* SIGABRT */
- SA_KILL|SA_CORE, /* SIGEMT */
- SA_KILL|SA_CORE, /* SIGFPE */
- SA_KILL, /* SIGKILL */
- SA_KILL|SA_CORE, /* SIGBUS */
- SA_KILL|SA_CORE, /* SIGSEGV */
- SA_KILL|SA_CORE, /* SIGSYS */
- SA_KILL, /* SIGPIPE */
- SA_KILL, /* SIGALRM */
- SA_KILL, /* SIGTERM */
- SA_IGNORE, /* SIGURG */
- SA_STOP, /* SIGSTOP */
- SA_STOP|SA_TTYSTOP, /* SIGTSTP */
- SA_IGNORE|SA_CONT, /* SIGCONT */
- SA_IGNORE, /* SIGCHLD */
- SA_STOP|SA_TTYSTOP, /* SIGTTIN */
- SA_STOP|SA_TTYSTOP, /* SIGTTOU */
- SA_IGNORE, /* SIGIO */
- SA_KILL, /* SIGXCPU */
- SA_KILL, /* SIGXFSZ */
- SA_KILL, /* SIGVTALRM */
- SA_KILL, /* SIGPROF */
- SA_IGNORE, /* SIGWINCH */
- SA_IGNORE, /* SIGINFO */
- SA_KILL, /* SIGUSR1 */
- SA_KILL, /* SIGUSR2 */
+ SIGPROP_KILL, /* SIGHUP */
+ SIGPROP_KILL, /* SIGINT */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGQUIT */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGILL */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGTRAP */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGABRT */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGEMT */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGFPE */
+ SIGPROP_KILL, /* SIGKILL */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGBUS */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGSEGV */
+ SIGPROP_KILL|SIGPROP_CORE, /* SIGSYS */
+ SIGPROP_KILL, /* SIGPIPE */
+ SIGPROP_KILL, /* SIGALRM */
+ SIGPROP_KILL, /* SIGTERM */
+ SIGPROP_IGNORE, /* SIGURG */
+ SIGPROP_STOP, /* SIGSTOP */
+ SIGPROP_STOP|SIGPROP_TTYSTOP, /* SIGTSTP */
+ SIGPROP_IGNORE|SIGPROP_CONT, /* SIGCONT */
+ SIGPROP_IGNORE, /* SIGCHLD */
+ SIGPROP_STOP|SIGPROP_TTYSTOP, /* SIGTTIN */
+ SIGPROP_STOP|SIGPROP_TTYSTOP, /* SIGTTOU */
+ SIGPROP_IGNORE, /* SIGIO */
+ SIGPROP_KILL, /* SIGXCPU */
+ SIGPROP_KILL, /* SIGXFSZ */
+ SIGPROP_KILL, /* SIGVTALRM */
+ SIGPROP_KILL, /* SIGPROF */
+ SIGPROP_IGNORE, /* SIGWINCH */
+ SIGPROP_IGNORE, /* SIGINFO */
+ SIGPROP_KILL, /* SIGUSR1 */
+ SIGPROP_KILL, /* SIGUSR2 */
};
static void reschedule_signals(struct proc *p, sigset_t block, int flags);
@@ -755,7 +755,7 @@
* have to restart the process.
*/
if (ps->ps_sigact[_SIG_IDX(sig)] == SIG_IGN ||
- (sigprop(sig) & SA_IGNORE &&
+ (sigprop(sig) & SIGPROP_IGNORE &&
ps->ps_sigact[_SIG_IDX(sig)] == SIG_DFL)) {
/* never to be seen again */
sigqueue_delete_proc(p, sig);
@@ -923,7 +923,7 @@
ps = p->p_sigacts;
mtx_lock(&ps->ps_mtx);
for (i = 1; i <= NSIG; i++) {
- if (sigprop(i) & SA_IGNORE && i != SIGCONT) {
+ if (sigprop(i) & SIGPROP_IGNORE && i != SIGCONT) {
SIGADDSET(ps->ps_sigignore, i);
}
}
@@ -940,7 +940,7 @@
mtx_assert(&ps->ps_mtx, MA_OWNED);
SIGDELSET(ps->ps_sigcatch, sig);
- if ((sigprop(sig) & SA_IGNORE) != 0 && sig != SIGCONT)
+ if ((sigprop(sig) & SIGPROP_IGNORE) != 0 && sig != SIGCONT)
SIGADDSET(ps->ps_sigignore, sig);
ps->ps_sigact[_SIG_IDX(sig)] = SIG_DFL;
SIGDELSET(ps->ps_siginfo, sig);
@@ -969,7 +969,7 @@
while (SIGNOTEMPTY(ps->ps_sigcatch)) {
sig = sig_ffs(&ps->ps_sigcatch);
sigdflt(ps, sig);
- if ((sigprop(sig) & SA_IGNORE) != 0)
+ if ((sigprop(sig) & SIGPROP_IGNORE) != 0)
sigqueue_delete_proc(p, sig);
}
@@ -2154,16 +2154,16 @@
intrval = ERESTART;
mtx_unlock(&ps->ps_mtx);
- if (prop & SA_CONT)
+ if (prop & SIGPROP_CONT)
sigqueue_delete_stopmask_proc(p);
- else if (prop & SA_STOP) {
+ else if (prop & SIGPROP_STOP) {
/*
* If sending a tty stop signal to a member of an orphaned
* process group, discard the signal here if the action
* is default; don't stop the process below if sleeping,
* and don't clear any pending SIGCONT.
*/
- if ((prop & SA_TTYSTOP) &&
+ if ((prop & SIGPROP_TTYSTOP) &&
(p->p_pgrp->pg_jobc == 0) &&
(action == SIG_DFL)) {
if (ksi && (ksi->ksi_flags & KSI_INS))
@@ -2188,7 +2188,7 @@
* except that stopped processes must be continued by SIGCONT.
*/
if (action == SIG_HOLD &&
- !((prop & SA_CONT) && (p->p_flag & P_STOPPED_SIG)))
+ !((prop & SIGPROP_CONT) && (p->p_flag & P_STOPPED_SIG)))
return (ret);
/*
* SIGKILL: Remove procfs STOPEVENTs and ptrace events.
@@ -2228,7 +2228,7 @@
goto runfast;
}
- if (prop & SA_CONT) {
+ if (prop & SIGPROP_CONT) {
/*
* If traced process is already stopped,
* then no further action is necessary.
@@ -2278,7 +2278,7 @@
goto out;
}
- if (prop & SA_STOP) {
+ if (prop & SIGPROP_STOP) {
/*
* If traced process is already stopped,
* then no further action is necessary.
@@ -2325,7 +2325,7 @@
MPASS(action == SIG_DFL);
- if (prop & SA_STOP) {
+ if (prop & SIGPROP_STOP) {
if (p->p_flag & (P_PPWAIT|P_WEXIT))
goto out;
p->p_flag |= P_STOPPED_SIG;
@@ -2394,7 +2394,7 @@
* priority of the idle thread, since we still allow to signal
* kernel processes.
*/
- if (action == SIG_DFL && (prop & SA_KILL) != 0 &&
+ if (action == SIG_DFL && (prop & SIGPROP_KILL) != 0 &&
td->td_priority > PUSER && !TD_IS_IDLETHREAD(td))
sched_prio(td, PUSER);
if (TD_ON_SLEEPQ(td)) {
@@ -2411,7 +2411,7 @@
* asleep, we are finished; the process should not
* be awakened.
*/
- if ((prop & SA_CONT) && action == SIG_DFL) {
+ if ((prop & SIGPROP_CONT) && action == SIG_DFL) {
thread_unlock(td);
PROC_SUNLOCK(p);
sigqueue_delete(&p->p_sigqueue, sig);
@@ -2427,7 +2427,7 @@
* Don't awaken a sleeping thread for SIGSTOP if the
* STOP signal is deferred.
*/
- if ((prop & SA_STOP) != 0 && (td->td_flags & (TDF_SBDRY |
+ if ((prop & SIGPROP_STOP) != 0 && (td->td_flags & (TDF_SBDRY |
TDF_SERESTART | TDF_SEINTR)) == TDF_SBDRY)
goto out;
@@ -2858,10 +2858,10 @@
* if process is member of an orphaned
* process group, ignore tty stop signals.
*/
- if (prop & SA_STOP) {
+ if (prop & SIGPROP_STOP) {
if (p->p_flag & (P_TRACED|P_WEXIT) ||
(p->p_pgrp->pg_jobc == 0 &&
- prop & SA_TTYSTOP))
+ prop & SIGPROP_TTYSTOP))
break; /* == ignore */
if (TD_SBDRY_INTR(td)) {
KASSERT((td->td_flags & TDF_SBDRY) != 0,
@@ -2881,7 +2881,7 @@
PROC_SUNLOCK(p);
mtx_lock(&ps->ps_mtx);
goto next;
- } else if (prop & SA_IGNORE) {
+ } else if (prop & SIGPROP_IGNORE) {
/*
* Except for SIGCONT, shouldn't get here.
* Default action is to ignore; drop it.
@@ -2897,7 +2897,7 @@
* to take action on an ignored signal other
* than SIGCONT, unless process is traced.
*/
- if ((prop & SA_CONT) == 0 &&
+ if ((prop & SIGPROP_CONT) == 0 &&
(p->p_flag & P_TRACED) == 0)
printf("issignal\n");
break; /* == ignore */
@@ -3059,7 +3059,8 @@
* XXX If another thread attempts to single-thread before us
* (e.g. via fork()), we won't get a dump at all.
*/
- if ((sigprop(sig) & SA_CORE) && thread_single(p, SINGLE_NO_EXIT) == 0) {
+ if ((sigprop(sig) & SIGPROP_CORE) &&
+ thread_single(p, SINGLE_NO_EXIT) == 0) {
p->p_sig = sig;
/*
* Log signals which would cause core dumps
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Aug 17, 5:49 PM (8 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36860785
Default Alt Text
D7616.id19644.diff (8 KB)
Attached To
Mode
D7616: Rename sigprop-table constants to SIGPROP_ from SA_ to reduce the impression of a namespace collision.
Attached
Detach File
Event Timeline
Log In to Comment