Files
asterinas/kernel/src/process/term_status.rs
2024-08-23 23:37:50 +08:00

20 lines
478 B
Rust

// SPDX-License-Identifier: MPL-2.0
use super::signal::sig_num::SigNum;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TermStatus {
Exited(u8),
Killed(SigNum),
}
impl TermStatus {
/// Return as a 32-bit integer encoded as specified in wait(2) man page.
pub fn as_u32(&self) -> u32 {
match self {
TermStatus::Exited(status) => (*status as u32) << 8,
TermStatus::Killed(signum) => signum.as_u8() as u32,
}
}
}