Lines Matching refs:ksi

108 		    ksiginfo_t *ksi);
282 ksiginfo_free(ksiginfo_t *ksi)
284 uma_zfree(ksiginfo_zone, ksi);
288 ksiginfo_tryfree(ksiginfo_t *ksi)
290 if (!(ksi->ksi_flags & KSI_EXT)) {
291 uma_zfree(ksiginfo_zone, ksi);
318 struct ksiginfo *ksi, *next;
337 TAILQ_FOREACH_SAFE(ksi, &sq->sq_list, ksi_link, next) {
338 if (ksi->ksi_signo == signo) {
340 TAILQ_REMOVE(&sq->sq_list, ksi, ksi_link);
341 ksi->ksi_sigq = NULL;
342 ksiginfo_copy(ksi, si);
343 if (ksiginfo_tryfree(ksi) && p != NULL)
358 sigqueue_take(ksiginfo_t *ksi)
364 if (ksi == NULL || (sq = ksi->ksi_sigq) == NULL)
368 TAILQ_REMOVE(&sq->sq_list, ksi, ksi_link);
369 ksi->ksi_sigq = NULL;
370 if (!(ksi->ksi_flags & KSI_EXT) && p != NULL)
375 if (kp->ksi_signo == ksi->ksi_signo)
378 if (kp == NULL && !SIGISMEMBER(sq->sq_kill, ksi->ksi_signo) &&
379 !SIGISMEMBER(sq->sq_ptrace, ksi->ksi_signo))
380 SIGDELSET(sq->sq_signals, ksi->ksi_signo);
387 struct ksiginfo *ksi;
401 /* directly insert the ksi, don't copy it */
419 } else if ((ksi = ksiginfo_alloc(0)) == NULL) {
425 ksiginfo_copy(si, ksi);
426 ksi->ksi_signo = signo;
428 TAILQ_INSERT_HEAD(&sq->sq_list, ksi, ksi_link);
430 TAILQ_INSERT_TAIL(&sq->sq_list, ksi, ksi_link);
431 ksi->ksi_sigq = sq;
457 ksiginfo_t *ksi;
464 while ((ksi = TAILQ_FIRST(&sq->sq_list)) != NULL) {
465 TAILQ_REMOVE(&sq->sq_list, ksi, ksi_link);
466 ksi->ksi_sigq = NULL;
467 if (ksiginfo_tryfree(ksi) && p != NULL)
481 ksiginfo_t *ksi, *next;
488 TAILQ_FOREACH_SAFE(ksi, &src->sq_list, ksi_link, next) {
489 if (SIGISMEMBER(*set, ksi->ksi_signo)) {
490 TAILQ_REMOVE(&src->sq_list, ksi, ksi_link);
493 TAILQ_INSERT_TAIL(&dst->sq_list, ksi, ksi_link);
494 ksi->ksi_sigq = dst;
533 ksiginfo_t *ksi, *next;
538 TAILQ_FOREACH_SAFE(ksi, &sq->sq_list, ksi_link, next) {
539 if (SIGISMEMBER(*set, ksi->ksi_signo)) {
540 TAILQ_REMOVE(&sq->sq_list, ksi, ksi_link);
541 ksi->ksi_sigq = NULL;
542 if (ksiginfo_tryfree(ksi) && p != NULL)
1164 ksiginfo_t ksi;
1174 error = kern_sigtimedwait(td, set, &ksi, NULL);
1189 error = copyout(&ksi.ksi_signo, uap->sig, sizeof(ksi.ksi_signo));
1200 ksiginfo_t ksi;
1216 error = kern_sigtimedwait(td, set, &ksi, timeout);
1221 error = copyout(&ksi.ksi_info, uap->info, sizeof(siginfo_t));
1224 td->td_retval[0] = ksi.ksi_signo;
1231 ksiginfo_t ksi;
1239 error = kern_sigtimedwait(td, set, &ksi, NULL);
1244 error = copyout(&ksi.ksi_info, uap->info, sizeof(siginfo_t));
1247 td->td_retval[0] = ksi.ksi_signo;
1265 kern_sigtimedwait(struct thread *td, sigset_t waitset, ksiginfo_t *ksi,
1292 ksiginfo_init(ksi);
1308 if (sigqueue_get(&td->td_sigqueue, sig, ksi) != 0 ||
1309 sigqueue_get(&p->p_sigqueue, sig, ksi) != 0) {
1377 SDT_PROBE2(proc, , , signal__clear, sig, ksi);
1379 if (ksi->ksi_code == SI_TIMER)
1380 itimer_accept(p, ksi->ksi_timerid, ksi);
1389 ktrpsig(sig, action, &td->td_sigmask, ksi->ksi_code);
1393 proc_td_siginfo_capture(td, &ksi->ksi_info);
1710 ksiginfo_t *ksi;
1728 pksignal(p, arg->sig, arg->ksi);
1743 killpg1(struct thread *td, int sig, int pgid, int all, ksiginfo_t *ksi)
1750 arg.ksi = ksi;
1808 ksiginfo_t ksi;
1825 ksiginfo_init(&ksi);
1826 ksi.ksi_signo = signum;
1827 ksi.ksi_code = SI_USER;
1828 ksi.ksi_pid = td->td_proc->p_pid;
1829 ksi.ksi_uid = td->td_ucred->cr_ruid;
1838 pksignal(p, signum, &ksi);
1844 return (killpg1(td, signum, 0, 1, &ksi));
1846 return (killpg1(td, signum, 0, 0, &ksi));
1848 return (killpg1(td, signum, -pid, 0, &ksi));
1886 ksiginfo_t ksi;
1893 ksiginfo_init(&ksi);
1894 ksi.ksi_signo = uap->signum;
1895 ksi.ksi_code = SI_USER;
1896 ksi.ksi_pid = td->td_proc->p_pid;
1897 ksi.ksi_uid = td->td_ucred->cr_ruid;
1898 return (killpg1(td, uap->signum, uap->pgid, 0, &ksi));
1922 ksiginfo_t ksi;
1940 ksiginfo_init(&ksi);
1941 ksi.ksi_flags = KSI_SIGQ;
1942 ksi.ksi_signo = signum;
1943 ksi.ksi_code = SI_QUEUE;
1944 ksi.ksi_pid = td->td_proc->p_pid;
1945 ksi.ksi_uid = td->td_ucred->cr_ruid;
1946 ksi.ksi_value = *value;
1947 error = pksignal(p, ksi.ksi_signo, &ksi);
1957 gsignal(int pgid, int sig, ksiginfo_t *ksi)
1966 pgsignal(pgrp, sig, 0, ksi);
1977 pgsignal(struct pgrp *pgrp, int sig, int checkctty, ksiginfo_t *ksi)
1987 pksignal(p, sig, ksi);
2021 trapsignal(struct thread *td, ksiginfo_t *ksi)
2029 sig = ksi->ksi_signo;
2030 code = ksi->ksi_code;
2048 ksi, &td->td_sigmask);
2068 tdsendsignal(p, td, sig, ksi);
2121 ksiginfo_t ksi;
2123 ksiginfo_init(&ksi);
2124 ksi.ksi_signo = sig;
2125 ksi.ksi_code = SI_KERNEL;
2126 (void) tdsendsignal(p, NULL, sig, &ksi);
2130 pksignal(struct proc *p, int sig, ksiginfo_t *ksi)
2133 return (tdsendsignal(p, NULL, sig, ksi));
2157 ksiginfo_t ksi;
2159 ksiginfo_init(&ksi);
2160 ksi.ksi_signo = sig;
2161 ksi.ksi_code = SI_KERNEL;
2162 (void) tdsendsignal(td->td_proc, td, sig, &ksi);
2166 tdksignal(struct thread *td, int sig, ksiginfo_t *ksi)
2169 (void) tdsendsignal(td->td_proc, td, sig, ksi);
2173 tdsendsignal(struct proc *p, struct thread *td, int sig, ksiginfo_t *ksi)
2189 KASSERT(ksi == NULL || !KSI_ONQ(ksi), ("%s: ksi on queue", __func__));
2195 if (ksi && (ksi->ksi_flags & KSI_INS))
2196 ksiginfo_tryfree(ksi);
2225 if (ksi && (ksi->ksi_flags & KSI_INS))
2226 ksiginfo_tryfree(ksi);
2255 if (ksi && (ksi->ksi_flags & KSI_INS))
2256 ksiginfo_tryfree(ksi);
2268 ret = sigqueue_add(sigqueue, sig, ksi);
2633 ksiginfo_t ksi;
2735 ksiginfo_init(&ksi);
2736 ksi.ksi_signo = td->td_xsig;
2737 ksi.ksi_flags |= KSI_PTRACE;
2739 tdsendsignal(p, td2, td->td_xsig, &ksi);
2915 ksiginfo_t ksi;
2985 ksiginfo_init(&ksi);
2986 if (sigqueue_get(queue, sig, &ksi) == 0) {
2988 sigqueue_get(queue, sig, &ksi);
2990 td->td_si = ksi.ksi_info;
2993 sig = ptracestop(td, sig, &ksi);
3009 ksi.ksi_flags |= KSI_HEAD;
3010 sigqueue_add(&p->p_sigqueue, sig, &ksi);
3021 ksi.ksi_flags |= KSI_HEAD;
3022 sigqueue_add(queue, sig, &ksi);
3147 ksiginfo_t ksi;
3157 ksiginfo_init(&ksi);
3158 if (sigqueue_get(&td->td_sigqueue, sig, &ksi) == 0 &&
3159 sigqueue_get(&p->p_sigqueue, sig, &ksi) == 0)
3161 ksi.ksi_signo = sig;
3162 if (ksi.ksi_code == SI_TIMER)
3163 itimer_accept(p, ksi.ksi_timerid, &ksi);
3168 &td->td_oldsigmask : &td->td_sigmask, ksi.ksi_code);
3177 proc_td_siginfo_capture(td, &ksi.ksi_info);
3206 (*p->p_sysent->sv_sendsig)(action, &ksi, &returnmask);
3968 ksiginfo_t ksi;
3971 ksiginfo_init(&ksi);
3972 ksi.ksi_signo = sig;
3973 ksi.ksi_code = SI_KERNEL;
4109 ksiginfo_t ksi;
4119 ksiginfo_init_trap(&ksi);
4120 ksi.ksi_signo = SIGSEGV;
4121 ksi.ksi_code = write ? SEGV_ACCERR : SEGV_MAPERR;
4122 ksi.ksi_addr = td->td_sigblock_ptr;
4123 trapsignal(td, &ksi);