Function report | 
Source Code:kernel\signal.c | 
Create Date:2022-07-28 09:16:51 | 
| Last Modify:2020-03-17 13:28:47 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:get_signal
Proto:bool get_signal(struct ksignal *ksig)
Type:bool
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct ksignal * | ksig | 
| 2530 | If Value for the false possibility is greater at compile time(uprobe_deny_signal()) Then Return false | 
| 2538 | try_to_freeze() | 
| 2540 | relock : | 
| 2541 | spin_lock_irq( & siglock) | 
| 2550 | If see SIGNAL_* flags below & SIGNAL_CLD_CONTINUED Then why = stopped child has continued | 
| 2552 | Else why = child has stopped | 
| 2555 | see SIGNAL_* flags below &= ~SIGNAL_CLD_MASK | 
| 2557 | spin_unlock_irq( & siglock) | 
| 2567 | read_lock( & tasklist_lock) | 
| 2573 | read_unlock( & tasklist_lock) | 
| 2575 | Go to relock | 
| 2584 | recalc_sigpending() | 
| 2585 | Go to fatal | 
| 2588 | cycle | 
| 2597 | If jobctl & JOBCTL_TRAP_MASK Then | 
| 2599 | spin_unlock_irq( & siglock) | 
| 2603 | Go to relock | 
| 2622 | signr = dequeue_synchronous_signal( & info) | 
| 2623 | If Not signr Then signr = Dequeue a signal and return the element to the caller, which is* expected to free it.* All callers have to hold the siglock. | 
| 2626 | If Not signr Then Break | 
| 2629 | If Value for the false possibility is greater at compile time(ptrace) && signr != SIGKILL Then | 
| 2630 | signr = ptrace_signal(signr, & info) | 
| 2631 | If Not signr Then Continue | 
| 2640 | If sa_handler == gnore signal Then Continue | 
| 2642 | If sa_handler != default signal handling Then | 
| 2655 | If sig_kernel_ignore(signr) Then Continue | 
| 2668 | If Value for the false possibility is greater at compile time(see SIGNAL_* flags below & r init: ignore fatal signals ) && Not sig_kernel_only(signr) Then Continue | 
| 2672 | If sig_kernel_stop(signr) Then | 
| 2684 | spin_unlock_irq( & siglock) | 
| 2688 | If is_current_pgrp_orphaned() Then Go to relock | 
| 2691 | spin_lock_irq( & siglock) | 
| 2696 | Go to relock | 
| 2703 | Continue | 
| 2706 | fatal : | 
| 2707 | spin_unlock_irq( & siglock) | 
| 2708 | If Value for the false possibility is greater at compile time(cgroup_task_frozen(current process)) Then cgroup_leave_frozen(true) | 
| 2714 | flags |= Killed by a signal | 
| 2716 | If sig_kernel_coredump(signr) Then | 
| 2717 | If print_fatal_signals Then print_fatal_signal(si_signo) | 
| 2728 | do_coredump( & info) | 
| 2737 | spin_unlock_irq( & siglock) | 
| 2740 | Return sig > 0 | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |