Changeset View
Changeset View
Standalone View
Standalone View
head/sys/sys/signalvar.h
Show First 20 Lines • Show All 231 Lines • ▼ Show 20 Lines | |||||
#define ksi_mqd ksi_info.si_mqd | #define ksi_mqd ksi_info.si_mqd | ||||
/* bits for ksi_flags */ | /* bits for ksi_flags */ | ||||
#define KSI_TRAP 0x01 /* Generated by trap. */ | #define KSI_TRAP 0x01 /* Generated by trap. */ | ||||
#define KSI_EXT 0x02 /* Externally managed ksi. */ | #define KSI_EXT 0x02 /* Externally managed ksi. */ | ||||
#define KSI_INS 0x04 /* Directly insert ksi, not the copy */ | #define KSI_INS 0x04 /* Directly insert ksi, not the copy */ | ||||
#define KSI_SIGQ 0x08 /* Generated by sigqueue, might ret EGAIN. */ | #define KSI_SIGQ 0x08 /* Generated by sigqueue, might ret EGAIN. */ | ||||
#define KSI_HEAD 0x10 /* Insert into head, not tail. */ | #define KSI_HEAD 0x10 /* Insert into head, not tail. */ | ||||
#define KSI_COPYMASK (KSI_TRAP|KSI_SIGQ) | #define KSI_PTRACE 0x20 /* Generated by ptrace. */ | ||||
#define KSI_COPYMASK (KSI_TRAP | KSI_SIGQ | KSI_PTRACE) | |||||
#define KSI_ONQ(ksi) ((ksi)->ksi_sigq != NULL) | #define KSI_ONQ(ksi) ((ksi)->ksi_sigq != NULL) | ||||
typedef struct sigqueue { | typedef struct sigqueue { | ||||
sigset_t sq_signals; /* All pending signals. */ | sigset_t sq_signals; /* All pending signals. */ | ||||
sigset_t sq_kill; /* Legacy depth 1 queue. */ | sigset_t sq_kill; /* Legacy depth 1 queue. */ | ||||
sigset_t sq_ptrace; /* Depth 1 queue for ptrace(2). */ | |||||
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 | ||||
▲ Show 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | |||||
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); | int ptracestop(struct thread *td, int sig, ksiginfo_t *si); | ||||
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 sigexit(struct thread *td, int sig) __dead2; | void sigexit(struct thread *td, int sig) __dead2; | ||||
int sigev_findtd(struct proc *p, struct sigevent *sigev, struct thread **); | int sigev_findtd(struct proc *p, struct sigevent *sigev, struct thread **); | ||||
Show All 18 Lines |