23 lines
706 B
C
23 lines
706 B
C
#pragma once
|
|
// ke_event.h - auto-reset and manual-reset events
|
|
#include <stdint.h>
|
|
#include <ob_object.h>
|
|
#include <ke_spinlock.h>
|
|
#include <ke_list.h>
|
|
#include <ke_status.h>
|
|
|
|
typedef enum EVENT_TYPE { EventAutoReset, EventManualReset } EVENT_TYPE;
|
|
|
|
typedef struct EVENT {
|
|
OBJECT Header;
|
|
SPINLOCK Lock;
|
|
EVENT_TYPE Type;
|
|
uint32_t Signaled;
|
|
LIST_ENTRY WaitList;
|
|
} EVENT;
|
|
|
|
__declspec(dllexport) KSTATUS KeEventCreate(EVENT_TYPE type, uint32_t initialState, EVENT **out);
|
|
__declspec(dllexport) void KeSignalEvent(EVENT* event);
|
|
__declspec(dllexport) void KeClearEvent(EVENT* event);
|
|
__declspec(dllexport) KSTATUS KeWaitForEvent(EVENT* event);
|