Home | History | Annotate | Download | only in coregrind

Lines Matching defs:sigNo

236 static void sync_signalhandler  ( Int sigNo, vki_siginfo_t *info,
238 static void async_signalhandler ( Int sigNo, vki_siginfo_t *info,
240 static void sigvgkill_handler ( Int sigNo, vki_siginfo_t *info,
684 static Bool is_sig_ign(Int sigNo, ThreadId tid)
686 vg_assert(sigNo >= 1 && sigNo <= _VKI_NSIG);
688 return scss.scss_per_sig[sigNo].scss_handler == VKI_SIG_IGN
689 || !VG_(gdbserver_report_signal) (sigNo, tid);
1088 SysRes VG_(do_sys_sigaction) ( Int signo,
1093 VG_(dmsg)("sys_sigaction: sigNo %d, "
1095 signo, (UWord)new_act, (UWord)old_act,
1103 if (signo < 1 || signo > VG_(max_signal)) goto bad_signo;
1106 if ( (signo > VG_SIGVGRTUSERMAX)
1113 if ( (signo == VKI_SIGKILL || signo == VKI_SIGSTOP)
1121 old_act->ksa_handler = scss.scss_per_sig[signo].scss_handler;
1122 old_act->sa_flags = scss.scss_per_sig[signo].scss_flags;
1123 old_act->sa_mask = scss.scss_per_sig[signo].scss_mask;
1125 old_act->sa_restorer = scss.scss_per_sig[signo].scss_restorer;
1131 scss.scss_per_sig[signo].scss_handler = new_act->ksa_handler;
1132 scss.scss_per_sig[signo].scss_flags = new_act->sa_flags;
1133 scss.scss_per_sig[signo].scss_mask = new_act->sa_mask;
1135 scss.scss_per_sig[signo].scss_restorer = NULL;
1137 scss.scss_per_sig[signo].scss_restorer = new_act->sa_restorer;
1140 scss.scss_per_sig[signo].scss_sa_tramp = NULL;
1142 scss.scss_per_sig[signo].scss_sa_tramp = new_act->sa_tramp;
1145 VG_(sigdelset)(&scss.scss_per_sig[signo].scss_mask, VKI_SIGKILL);
1146 VG_(sigdelset)(&scss.scss_per_sig[signo].scss_mask, VKI_SIGSTOP);
1157 VG_(umsg)("Warning: bad signal number %d in sigaction()\n", signo);
1164 VG_(signame)(signo));
1166 VG_(signame)(signo));
1173 VG_(signame)(signo));
1175 VG_(signame)(signo));
1333 Int sigNo = siginfo->si_signo;
1335 vg_assert(sigNo >= 1 && sigNo <= VG_(max_signal));
1340 VG_(dmsg)("push_signal_frame (thread %d): signal %d\n", tid, sigNo);
1345 (scss.scss_per_sig[sigNo].scss_flags & VKI_SA_ONSTACK )
1356 sigNo, VG_(signame)(sigNo), tid, tst->altstack.ss_sp,
1361 VG_TRACK( pre_deliver_signal, tid, sigNo, /*alt_stack*/True );
1367 VG_TRACK( pre_deliver_signal, tid, sigNo, /*alt_stack*/False );
1370 vg_assert(scss.scss_per_sig[sigNo].scss_handler != VKI_SIG_IGN);
1371 vg_assert(scss.scss_per_sig[sigNo].scss_handler != VKI_SIG_DFL);
1377 scss.scss_per_sig[sigNo].scss_handler,
1378 scss.scss_per_sig[sigNo].scss_flags,
1380 scss.scss_per_sig[sigNo].scss_restorer);
1384 const HChar *VG_(signame)(Int sigNo)
1388 switch(sigNo) {
1429 VG_(sprintf)(buf, "SIGRT%d", sigNo-VKI_SIGRTMIN);
1434 VG_(sprintf)(buf, "SIG%d", sigNo);
1440 void VG_(kill_self)(Int sigNo)
1454 VG_(sigaction)(sigNo, &sa, &origsa);
1457 VG_(sigaddset)(&mask, sigNo);
1460 r = VG_(kill)(VG_(getpid)(), sigNo);
1467 VG_(sigaction)(sigNo, &origsa2, NULL);
1535 Int sigNo = info->si_signo;
1543 switch(sigNo) {
1583 sigNo, info->si_code, terminate ? "terminate" : "ignore",
1602 (could_core && is_signal_from_kernel(tid, sigNo, info->si_code))
1608 sigNo, VG_(signame)(sigNo), core ? ": dumping core" : "");
1611 if (is_signal_from_kernel(tid, sigNo, info->si_code)) {
1615 switch(sigNo) {
1674 } /* switch (sigNo) */
1709 if (sigNo == VKI_SIGILL) {
1730 if (sigNo == VKI_SIGSEGV
1731 && is_signal_from_kernel(tid, sigNo, info->si_code)
1762 //VG_(threads)[VG_(master_tid)].os_state.fatalsig = sigNo;
1767 VG_(threads)[tid].os_state.fatalsig = sigNo;
1781 Int sigNo = info->si_signo;
1782 SCSS_Per_Signal *handler = &scss.scss_per_sig[sigNo];
1788 sigNo, VG_(signame)(sigNo), info->si_code, tid );
1790 if (sigNo == VG_SIGVGKILL) {
1840 Handler gets a mask of tmp_sig_mask|handler_mask|signo
1845 VG_(sigaddset)(&tst->sig_mask, sigNo);
2131 void async_signalhandler ( Int sigNo,
2146 sigNo, tid, info->si_code);
2189 !!(scss.scss_per_sig[sigNo].scss_flags & VKI_SA_RESTART)
2289 Int sigNo, vki_siginfo_t *info, struct vki_ucontext *uc )
2304 sigNo);
2306 async_signalhandler(sigNo, info, uc);
2315 VG_(dmsg)("Routing user-sent sync signal %d via queue\n", sigNo);
2332 "I can't go on.\n", sigNo, VG_(signame)(sigNo));
2346 VG_(set_default_handler)(sigNo);
2436 Int sigNo, vki_siginfo_t *info, struct vki_ucontext *uc )
2445 (*fault_catcher)(sigNo, (Addr)info->VKI_SIGINFO_si_addr);
2460 if (VG_(sigismember)(&tst->sig_mask, sigNo)) {
2462 VG_(set_default_handler)(sigNo);
2466 if (VG_(gdbserver_report_signal) (sigNo, tid)
2467 || VG_(sigismember)(&tst->sig_mask, sigNo)) {
2484 sigNo, VG_(signame)(sigNo));
2491 VG_(kill_self)(sigNo); /* generate a core dump */
2509 void sync_signalhandler ( Int sigNo,
2516 VG_(printf)("sync_sighandler(%d, %p, %p)\n", sigNo, info, uc);
2519 vg_assert(info->si_signo == sigNo);
2520 vg_assert(sigNo == VKI_SIGSEGV ||
2521 sigNo == VKI_SIGBUS ||
2522 sigNo == VKI_SIGFPE ||
2523 sigNo == VKI_SIGILL ||
2524 sigNo == VKI_SIGTRAP);
2528 from_user = !is_signal_from_kernel(tid, sigNo, info->si_code);
2533 sigNo, info->si_code, VG_(get_IP)(tid),
2537 vg_assert(sigNo >= 1 && sigNo <= VG_(max_signal));
2556 sync_signalhandler_from_user( tid, sigNo, info, uc);
2558 sync_signalhandler_from_kernel(tid, sigNo, info, uc);
2568 static void sigvgkill_handler(int signo, vki_siginfo_t *si,
2579 vg_assert(signo == VG_SIGVGKILL);
2580 vg_assert(si->si_signo == signo);
2624 void VG_(set_default_handler)(Int signo)
2635 VG_(do_sys_sigaction)(signo, &sa, NULL);