Skip to main content

forge_sys/os/
event.rs

1use crate::os::time::TimeSpanType;
2
3#[repr(C)]
4pub struct EventType {
5    _reserved: [u8; 36],
6}
7
8#[repr(C)]
9#[derive(Debug, Clone, Copy, PartialEq, Eq)]
10pub enum EventClearMode {
11    Manual = 0,
12    Auto = 1,
13}
14
15unsafe extern "C" {
16    pub fn nnosInitializeEvent(event: *mut EventType, initially_signaled: bool, clear_mode: EventClearMode);
17    pub fn nnosFinalizeEvent(event: *mut EventType);
18    pub fn nnosSignalEvent(event: *mut EventType);
19    pub fn nnosWaitEvent(event: *mut EventType);
20    pub fn nnosTryWaitEvent(event: *mut EventType) -> bool;
21    pub fn nnosTimedWaitEvent(event: *mut EventType, timeout: TimeSpanType) -> bool;
22    pub fn nnosClearEvent(event: *mut EventType);
23}
24
25impl Default for EventType {
26    fn default() -> Self {
27        Self { _reserved: [0u8; 36] }
28    }
29}