1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// devela::sys::os::linux::process::signal::handler
//
//! Defines `LinuxSigactionHandler`, and static tables.
//
use crateLinux;
use crate::;
cratetest_size_of!;
cratetest_size_of!;
/// A union representing either a simple handler or a `SA_SIGINFO` handler.
pub union LinuxSigactionHandler
/// Simple Rust handlers indexed by signal number.
///
/// This table stores user-provided `fn(i32)` handlers registered through
/// [`Linux::sig_handler`]. They are not installed directly as kernel handlers.
/// Instead, the RT signal trampoline calls a siginfo-shaped adapter,
/// and that adapter looks up the simple handler here.
///
/// The stored pointer is the function's code address, erased through a raw pointer
/// for atomic storage. A null value means no simple handler is installed for that signal.
pub static LINUX_SIG_HANDLERS: =
;
/// RT/siginfo-shaped Rust handlers indexed by signal number.
///
/// This is the canonical dispatch table used by the kernel-facing `SA_SIGINFO`
/// trampoline. Entries registered through [`Linux::sig_handler_info`] point
/// to the user-provided info handler directly. Entries registered through
/// [`Linux::sig_handler`] point to a small adapter that discards the extra
/// signal information and then dispatches through [`LINUX_SIG_HANDLERS`].
///
/// The stored pointer is the function's code address, erased through a raw pointer
/// for atomic storage. A null value means no siginfo handler is installed for that signal.
pub static LINUX_SIGINFO_HANDLERS: =
;