ReXGlue SDK
Toggle main menu visibility
Loading...
Searching...
No Matches
timer_object.h
Go to the documentation of this file.
1
17
18
#pragma once
19
20
#include <memory>
21
22
#include <
rex/assert.h
>
23
#include <
rex/kernel/object/object.h
>
24
#include <
rex/kernel/types/list.h
>
25
#include <
rex/kernel/types/memory.h
>
26
#include <
rex/kernel/types/status.h
>
27
#include <
rex/kernel/types/thread.h
>
28
#include <
rex/module.h
>
29
#include <
rex/platform.h
>
30
#include <
rex/platform/sync.h
>
31
#include <
rex/platform/thread.h
>
32
#include <
rex/platform/timer.h
>
33
#include <
rex/result.h
>
34
#include <
rex/types.h
>
35
#include <
rex/utility.h
>
36
37
namespace
rex
{
38
namespace
kernel
{
39
class
TitleRuntime
;
40
}
// namespace kernel
41
}
// namespace rex
42
43
namespace
rex::kernel
{
44
45
struct
TimerObject
{
51
REX_KERNEL_API
explicit
TimerObject
(u32 timer_type);
53
REX_KERNEL_API
~TimerObject
();
54
56
PublishedPtr<rex::platform::Timer>
timer
;
58
std::weak_ptr<rex::platform::TimerQueueWaitItem>
expiry
;
60
u32
callback_thread_id
= 0;
61
u32
callback_routine
= 0;
62
u32 callback_routine_arg = 0;
63
74
REX_KERNEL_API
X_STATUS
SetDPC
(
TitleRuntime
& runtime, u32 ktimer, i64 due_time, u32 period_ms,
75
u32 dpc);
76
86
REX_KERNEL_API
X_STATUS
Set
(
TitleRuntime
& runtime, i64 due_time, u32 period_ms, u32 routine,
87
u32 routine_arg,
bool
resume);
88
92
REX_KERNEL_API
X_STATUS
Cancel
();
93
};
94
95
}
// namespace rex::kernel
assert.h
rex::kernel::PublishedPtr
Definition
object.h:190
rex::kernel::TitleRuntime
Definition
title_runtime.h:85
memory.h
Virtual memory flags and typed guest pointers.
thread.h
list.h
Guest list and spin lock structures.
module.h
Interfaces, factory and module declaration.
rex::kernel
Definition
export.h:24
rex::kernel::X_STATUS
u32 X_STATUS
Definition
status.h:23
rex
Definition
app.h:36
object.h
thread.h
platform.h
Platform flags, packing macros and export markers.
REX_KERNEL_API
#define REX_KERNEL_API
Definition
platform.h:297
result.h
status.h
rex::kernel::TimerObject::~TimerObject
~TimerObject()
rex::kernel::TimerObject::SetDPC
X_STATUS SetDPC(TitleRuntime &runtime, u32 ktimer, i64 due_time, u32 period_ms, u32 dpc)
rex::kernel::TimerObject::Cancel
X_STATUS Cancel()
rex::kernel::TimerObject::Set
X_STATUS Set(TitleRuntime &runtime, i64 due_time, u32 period_ms, u32 routine, u32 routine_arg, bool resume)
rex::kernel::TimerObject::callback_thread_id
u32 callback_thread_id
Definition
timer_object.h:60
rex::kernel::TimerObject::callback_routine
u32 callback_routine
Definition
timer_object.h:61
rex::kernel::TimerObject::expiry
std::weak_ptr< rex::platform::TimerQueueWaitItem > expiry
Definition
timer_object.h:58
rex::kernel::TimerObject::timer
PublishedPtr< rex::platform::Timer > timer
Definition
timer_object.h:56
rex::kernel::TimerObject::TimerObject
TimerObject(u32 timer_type)
sync.h
Wait objects and wait functions.
timer.h
types.h
Integer types, byte order wrappers and size literals.
utility.h
Move only function, const propagating pointer and scope guard.
rex
kernel
object
timer_object.h
Generated by
1.18.0