// Copyright 2018 plutoo #pragma once #include "../kernel/wait.h" typedef struct UEvent UEvent; struct UEvent { Waitable waitable; bool signal; bool auto_clear; }; /** * @brief Creates a usermode event. * @param[out] e UEvent object. * @param[in] bool auto_clear Whether to automatically clear the event. * @note It is safe to wait on this event with several threads simultaneously. * @note If more than one thread is listening on it, at least one thread will get the signal. No other guarantees. */ void ueventCreate(UEvent* e, bool auto_clear); /** * @brief Clears the event signal. * @param[in] e UEvent object. */ void ueventClear(UEvent* e); /** * @brief Signals the event. * @param[in] e UEvent object. */ void ueventSignal(UEvent* e);