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}