ReXGlue SDK
Loading...
Searching...
No Matches
event_object.h
Go to the documentation of this file.
1
17
18#pragma once
19
20#include <atomic>
21#include <memory>
22
23#include <rex/assert.h>
29#include <rex/module.h>
30#include <rex/platform.h>
31#include <rex/platform/sync.h>
32#include <rex/platform/thread.h>
33#include <rex/platform/timer.h>
34#include <rex/result.h>
35#include <rex/types.h>
36
37namespace rex::kernel {
38
39struct X_KEVENT {
40 X_DISPATCH_HEADER header;
41};
42REX_STATIC_ASSERT_SIZE(X_KEVENT, 0x10);
43
45 public:
46 virtual ~IGuestEvent() = default;
47
51 virtual i32 Set() = 0;
52
56 virtual i32 Reset() = 0;
57};
58
64 REX_KERNEL_API EventObject(bool manual_reset_in, bool initial_state);
65
71
73 std::atomic<bool> manual_reset{false};
76
83 REX_KERNEL_API void Query(u32* out_type, u32* out_state);
84
85 REX_KERNEL_API i32 Set() override;
86
93
94 REX_KERNEL_API i32 Reset() override;
95};
96
97} // namespace rex::kernel
Definition event_object.h:44
virtual i32 Reset()=0
Definition object.h:190
Virtual memory flags and typed guest pointers.
Guest list and spin lock structures.
Interfaces, factory and module declaration.
Definition export.h:24
Platform flags, packing macros and export markers.
#define REX_KERNEL_API
Definition platform.h:297
std::atomic< bool > manual_reset
Definition event_object.h:73
PublishedPtr< rex::platform::Event > event
Definition event_object.h:75
EventObject(const X_DISPATCH_HEADER &header)
void Query(u32 *out_type, u32 *out_state)
EventObject(bool manual_reset_in, bool initial_state)
Definition thread.h:70
Definition event_object.h:39
Wait objects and wait functions.
Integer types, byte order wrappers and size literals.