use num_derive::FromPrimitive;
#[repr(u8)]
#[derive(FromPrimitive)]
#[allow(missing_docs)]
pub enum Signal {
ZERO = 0,
SIGHUP = 1,
SIGINT = 2,
SIGQUIT = 3,
SIGILL = 4,
SIGTRAP = 5,
SIGABRT = 6,
SIGEMT = 7,
SIGFPE = 8,
SIGKILL = 9,
SIGBUS = 10,
SIGSEGV = 11,
SIGSYS = 12,
SIGPIPE = 13,
SIGALRM = 14,
SIGTERM = 15,
SIGURG = 16,
SIGSTOP = 17,
SIGTSTP = 18,
SIGCONT = 19,
SIGCHLD = 20,
SIGTTIN = 21,
SIGTTOU = 22,
SIGIO = 23,
SIGXCPU = 24,
SIGXFSZ = 25,
SIGVTALRM = 26,
SIGPROF = 27,
SIGWINCH = 28,
SIGLOST = 29,
SIGUSR1 = 30,
SIGUSR2 = 31,
SIGPWR = 32,
SIGPOLL = 33,
SIGWIND = 34,
SIGPHONE = 35,
SIGWAITING = 36,
SIGLWP = 37,
SIGDANGER = 38,
SIGGRANT = 39,
SIGRETRACT = 40,
SIGMSG = 41,
SIGSOUND = 42,
SIGSAK = 43,
SIGPRIO = 44,
SIG33 = 45,
SIG34 = 46,
SIG35 = 47,
SIG36 = 48,
SIG37 = 49,
SIG38 = 50,
SIG39 = 51,
SIG40 = 52,
SIG41 = 53,
SIG42 = 54,
SIG43 = 55,
SIG44 = 56,
SIG45 = 57,
SIG46 = 58,
SIG47 = 59,
SIG48 = 60,
SIG49 = 61,
SIG50 = 62,
SIG51 = 63,
SIG52 = 64,
SIG53 = 65,
SIG54 = 66,
SIG55 = 67,
SIG56 = 68,
SIG57 = 69,
SIG58 = 70,
SIG59 = 71,
SIG60 = 72,
SIG61 = 73,
SIG62 = 74,
SIG63 = 75,
SIGCANCEL = 76,
SIG32 = 77,
SIG64 = 78,
SIG65 = 79,
SIG66 = 80,
SIG67 = 81,
SIG68 = 82,
SIG69 = 83,
SIG70 = 84,
SIG71 = 85,
SIG72 = 86,
SIG73 = 87,
SIG74 = 88,
SIG75 = 89,
SIG76 = 90,
SIG77 = 91,
SIG78 = 92,
SIG79 = 93,
SIG80 = 94,
SIG81 = 95,
SIG82 = 96,
SIG83 = 97,
SIG84 = 98,
SIG85 = 99,
SIG86 = 100,
SIG87 = 101,
SIG88 = 102,
SIG89 = 103,
SIG90 = 104,
SIG91 = 105,
SIG92 = 106,
SIG93 = 107,
SIG94 = 108,
SIG95 = 109,
SIG96 = 110,
SIG97 = 111,
SIG98 = 112,
SIG99 = 113,
SIG100 = 114,
SIG101 = 115,
SIG102 = 116,
SIG103 = 117,
SIG104 = 118,
SIG105 = 119,
SIG106 = 120,
SIG107 = 121,
SIG108 = 122,
SIG109 = 123,
SIG110 = 124,
SIG111 = 125,
SIG112 = 126,
SIG113 = 127,
SIG114 = 128,
SIG115 = 129,
SIG116 = 130,
SIG117 = 131,
SIG118 = 132,
SIG119 = 133,
SIG120 = 134,
SIG121 = 135,
SIG122 = 136,
SIG123 = 137,
SIG124 = 138,
SIG125 = 139,
SIG126 = 140,
SIG127 = 141,
}
impl Signal {
#[cfg(feature = "libc")]
pub fn from_libc(sig: libc::c_int) -> Option<Self> {
match sig {
libc::SIGHUP => Some(Self::SIGHUP),
libc::SIGINT => Some(Self::SIGINT),
libc::SIGQUIT => Some(Self::SIGQUIT),
libc::SIGILL => Some(Self::SIGILL),
libc::SIGTRAP => Some(Self::SIGTRAP),
libc::SIGABRT => Some(Self::SIGABRT),
libc::SIGFPE => Some(Self::SIGFPE),
libc::SIGKILL => Some(Self::SIGKILL),
libc::SIGBUS => Some(Self::SIGBUS),
libc::SIGSEGV => Some(Self::SIGSEGV),
libc::SIGSYS => Some(Self::SIGSYS),
libc::SIGPIPE => Some(Self::SIGPIPE),
libc::SIGALRM => Some(Self::SIGALRM),
libc::SIGTERM => Some(Self::SIGTERM),
libc::SIGURG => Some(Self::SIGURG),
libc::SIGSTOP => Some(Self::SIGSTOP),
libc::SIGTSTP => Some(Self::SIGTSTP),
libc::SIGCONT => Some(Self::SIGCONT),
libc::SIGCHLD => Some(Self::SIGCHLD),
libc::SIGTTIN => Some(Self::SIGTTIN),
libc::SIGTTOU => Some(Self::SIGTTOU),
libc::SIGIO => Some(Self::SIGIO),
libc::SIGXCPU => Some(Self::SIGXCPU),
libc::SIGXFSZ => Some(Self::SIGXFSZ),
libc::SIGVTALRM => Some(Self::SIGVTALRM),
libc::SIGPROF => Some(Self::SIGPROF),
libc::SIGWINCH => Some(Self::SIGWINCH),
libc::SIGUSR1 => Some(Self::SIGUSR1),
libc::SIGUSR2 => Some(Self::SIGUSR2),
libc::SIGPWR => Some(Self::SIGPWR),
_ => None,
}
}
#[cfg(feature = "libc")]
pub fn into_libc(self) -> Option<libc::c_int> {
match self {
Self::SIGHUP => Some(libc::SIGHUP),
Self::SIGINT => Some(libc::SIGINT),
Self::SIGQUIT => Some(libc::SIGQUIT),
Self::SIGILL => Some(libc::SIGILL),
Self::SIGTRAP => Some(libc::SIGTRAP),
Self::SIGABRT => Some(libc::SIGABRT),
Self::SIGFPE => Some(libc::SIGFPE),
Self::SIGKILL => Some(libc::SIGKILL),
Self::SIGBUS => Some(libc::SIGBUS),
Self::SIGSEGV => Some(libc::SIGSEGV),
Self::SIGSYS => Some(libc::SIGSYS),
Self::SIGPIPE => Some(libc::SIGPIPE),
Self::SIGALRM => Some(libc::SIGALRM),
Self::SIGTERM => Some(libc::SIGTERM),
Self::SIGURG => Some(libc::SIGURG),
Self::SIGSTOP => Some(libc::SIGSTOP),
Self::SIGTSTP => Some(libc::SIGTSTP),
Self::SIGCONT => Some(libc::SIGCONT),
Self::SIGCHLD => Some(libc::SIGCHLD),
Self::SIGTTIN => Some(libc::SIGTTIN),
Self::SIGTTOU => Some(libc::SIGTTOU),
Self::SIGIO => Some(libc::SIGIO),
Self::SIGXCPU => Some(libc::SIGXCPU),
Self::SIGXFSZ => Some(libc::SIGXFSZ),
Self::SIGVTALRM => Some(libc::SIGVTALRM),
Self::SIGPROF => Some(libc::SIGPROF),
Self::SIGWINCH => Some(libc::SIGWINCH),
Self::SIGUSR1 => Some(libc::SIGUSR1),
Self::SIGUSR2 => Some(libc::SIGUSR2),
Self::SIGPWR => Some(libc::SIGPWR),
_ => None,
}
}
}