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 | ||||
extern sigset_t fastblock_mask; | |||||
/* 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 92 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); | ||||
void kern_psignal(struct proc *p, int sig); | void kern_psignal(struct proc *p, int sig); | ||||
int ptracestop(struct thread *td, int sig, ksiginfo_t *si); | int ptracestop(struct thread *td, int sig, ksiginfo_t *si); | ||||
void reschedule_signals(struct proc *p, sigset_t block, int flags); | |||||
void sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *retmask); | void sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *retmask); | ||||
struct sigacts *sigacts_alloc(void); | struct sigacts *sigacts_alloc(void); | ||||
void sigacts_copy(struct sigacts *dest, struct sigacts *src); | void sigacts_copy(struct sigacts *dest, struct sigacts *src); | ||||
void sigacts_free(struct sigacts *ps); | void sigacts_free(struct sigacts *ps); | ||||
struct sigacts *sigacts_hold(struct sigacts *ps); | struct sigacts *sigacts_hold(struct sigacts *ps); | ||||
int sigacts_shared(struct sigacts *ps); | int sigacts_shared(struct sigacts *ps); | ||||
void sig_drop_caught(struct proc *p); | void sig_drop_caught(struct proc *p); | ||||
void sigexit(struct thread *td, int sig) __dead2; | void sigexit(struct thread *td, int sig) __dead2; | ||||
Show All 19 Lines |