diff --git a/sgx_urts/Cargo.toml b/sgx_urts/Cargo.toml index 36fa7831b..64e634d34 100644 --- a/sgx_urts/Cargo.toml +++ b/sgx_urts/Cargo.toml @@ -16,6 +16,7 @@ crate-type = ["rlib"] default = [] global_init = [] global_exit = [] +signal = [] [dependencies] diff --git a/sgx_urts/src/lib.rs b/sgx_urts/src/lib.rs index 6fe7b3bfc..6c86dbd04 100644 --- a/sgx_urts/src/lib.rs +++ b/sgx_urts/src/lib.rs @@ -32,6 +32,7 @@ pub mod pipe; pub mod event; pub mod thread; pub mod net; +#[cfg(feature = "signal")] pub mod signal; pub mod process; pub use enclave::*; diff --git a/sgx_urts/src/signal.rs b/sgx_urts/src/signal.rs index 0672d9835..d1b356f99 100644 --- a/sgx_urts/src/signal.rs +++ b/sgx_urts/src/signal.rs @@ -41,7 +41,7 @@ extern "C" { pub struct SigNum(i32); impl SigNum { - // add code here + pub fn from_raw(signo: i32) -> Option { if signo <= 0 || signo >= NSIG { None @@ -59,7 +59,7 @@ impl SigNum { pub struct SigSet(sigset_t); impl SigSet { - // add code here + pub fn new() -> SigSet { let set = unsafe { let mut set: sigset_t = mem::zeroed(); @@ -82,7 +82,7 @@ struct GlobalData { } impl GlobalData { - // add code here + fn get() -> &'static GlobalData { unsafe { GLOBAL_DATA.as_ref().unwrap() } } @@ -101,7 +101,7 @@ struct SignalDispatcher { } impl SignalDispatcher { - // add code here + pub fn new () -> SignalDispatcher { SignalDispatcher { signal_set: Mutex::new(HashMap::new()),