Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/signalvar.h
Show First 20 Lines • Show All 250 Lines • ▼ Show 20 Lines | typedef struct sigqueue { | ||||
TAILQ_HEAD(, ksiginfo) sq_list;/* Queued signal info. */ | TAILQ_HEAD(, ksiginfo) sq_list;/* Queued signal info. */ | ||||
struct proc *sq_proc; | struct proc *sq_proc; | ||||
int sq_flags; | int sq_flags; | ||||
} sigqueue_t; | } sigqueue_t; | ||||
/* Flags for ksi_flags */ | /* Flags for ksi_flags */ | ||||
#define SQ_INIT 0x01 | #define SQ_INIT 0x01 | ||||
/* | |||||
* Fast_sigblock | |||||
*/ | |||||
#define FAST_SIGBLOCK_SETPTR 1 | |||||
#define FAST_SIGBLOCK_UNBLOCK 2 | |||||
#define FAST_SIGBLOCK_UNSETPTR 3 | |||||
#define FAST_SIGBLOCK_PEND 0x1 | |||||
#define FAST_SIGBLOCK_FLAGS 0xf | |||||
#define FAST_SIGBLOCK_INC 0x10 | |||||
#ifndef _KERNEL | |||||
int __sys_fast_sigblock(int cmd, void *ptr); | |||||
#endif | |||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
/* Return nonzero if process p has an unmasked pending signal. */ | /* Return nonzero if process p has an unmasked pending signal. */ | ||||
#define SIGPENDING(td) \ | #define SIGPENDING(td) \ | ||||
((!SIGISEMPTY((td)->td_siglist) && \ | ((!SIGISEMPTY((td)->td_siglist) && \ | ||||
!sigsetmasked(&(td)->td_siglist, &(td)->td_sigmask)) || \ | !sigsetmasked(&(td)->td_siglist, &(td)->td_sigmask)) || \ | ||||
(!SIGISEMPTY((td)->td_proc->p_siglist) && \ | (!SIGISEMPTY((td)->td_proc->p_siglist) && \ | ||||
!sigsetmasked(&(td)->td_proc->p_siglist, &(td)->td_sigmask))) | !sigsetmasked(&(td)->td_proc->p_siglist, &(td)->td_sigmask))) | ||||
▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | sigallowstop(int prev) | ||||
if (__predict_true(prev == SIGDEFERSTOP_VAL_NCHG)) | if (__predict_true(prev == SIGDEFERSTOP_VAL_NCHG)) | ||||
return; | return; | ||||
sigallowstop_impl(prev); | sigallowstop_impl(prev); | ||||
} | } | ||||
int cursig(struct thread *td); | int cursig(struct thread *td); | ||||
void execsigs(struct proc *p); | void execsigs(struct proc *p); | ||||
void fetch_fast_sigblock(struct thread *td); | |||||
void fetch_fast_sigblock_failed(struct thread *td, bool write); | |||||
void gsignal(int pgid, int sig, ksiginfo_t *ksi); | void gsignal(int pgid, int sig, ksiginfo_t *ksi); | ||||
void killproc(struct proc *p, char *why); | void killproc(struct proc *p, char *why); | ||||
ksiginfo_t * ksiginfo_alloc(int wait); | ksiginfo_t * ksiginfo_alloc(int wait); | ||||
void ksiginfo_free(ksiginfo_t *ksi); | void ksiginfo_free(ksiginfo_t *ksi); | ||||
int pksignal(struct proc *p, int sig, ksiginfo_t *ksi); | int pksignal(struct proc *p, int sig, ksiginfo_t *ksi); | ||||
void pgsigio(struct sigio **sigiop, int sig, int checkctty); | void pgsigio(struct sigio **sigiop, int sig, int checkctty); | ||||
void pgsignal(struct pgrp *pgrp, int sig, int checkctty, ksiginfo_t *ksi); | void pgsignal(struct pgrp *pgrp, int sig, int checkctty, ksiginfo_t *ksi); | ||||
int postsig(int sig); | int postsig(int sig); | ||||
Show All 29 Lines |