/** * @brief Implementation of system events. * * Define STA_OS2_SYSTEM_EVENT_ENABLE in to enable. * * Set STA_OS2_SYSTEM_EVENT_HANDLE to name of global handle variable. * Defaults to `systemEventHandle`. */ #ifndef STA_OS2_SYSTEM_EVENT_HPP #define STA_OS2_SYSTEM_EVENT_HPP #include #ifdef STA_OS2_SYSTEM_EVENT_ENABLE #include // System event flags // #define STA_SYSTEM_EVENT_STARTUP 0x100000U namespace sta { /** * @brief Signal system events. * * @param flags System event flags */ void signalSystemEvents(uint32_t flags); /** * @brief Wait for system events. * * @param flags System event flags * @param options osFlagsWaitAll or osFlagsWaitAny (osFlagsNoClear always set) * @param timeout Wait timeout (0 = instant, osWaitForever = infinite) */ void waitForSystemEvents(uint32_t flags, uint32_t options, uint32_t timeout); /** * @brief Signal startup system event. */ void signalStartupEvent(); /** * @brief Wait for startup system event. * * Blocking while waiting */ void waitForStartupEvent(); } // namespace sta #endif // STA_OS2_SYSTEM_EVENT_ENABLE #endif // STA_OS2_SYSTEM_EVENT_HPP