wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
taskqueue.h
Go to the documentation of this file.
1#pragma once
2#include <wut.h>
3#include "time.h"
4
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MPTask MPTask;
16typedef struct MPTaskInfo MPTaskInfo;
17typedef struct MPTaskQueue MPTaskQueue;
19
20typedef uint32_t (*MPTaskFunc)(uint32_t, uint32_t);
21
29
38
39#pragma pack(push, 1)
41{
43 uint32_t result;
44 uint32_t coreID;
46};
47#pragma pack(pop)
48WUT_CHECK_OFFSET(MPTaskInfo, 0x00, state);
49WUT_CHECK_OFFSET(MPTaskInfo, 0x04, result);
50WUT_CHECK_OFFSET(MPTaskInfo, 0x08, coreID);
51WUT_CHECK_OFFSET(MPTaskInfo, 0x0C, duration);
52WUT_CHECK_SIZE(MPTaskInfo, 0x14);
53
54#pragma pack(push, 1)
68#pragma pack(pop)
69WUT_CHECK_OFFSET(MPTask, 0x00, self);
70WUT_CHECK_OFFSET(MPTask, 0x04, queue);
71WUT_CHECK_OFFSET(MPTask, 0x08, state);
72WUT_CHECK_OFFSET(MPTask, 0x0C, func);
73WUT_CHECK_OFFSET(MPTask, 0x10, userArg1);
74WUT_CHECK_OFFSET(MPTask, 0x14, userArg2);
75WUT_CHECK_OFFSET(MPTask, 0x18, result);
76WUT_CHECK_OFFSET(MPTask, 0x1C, coreID);
77WUT_CHECK_OFFSET(MPTask, 0x20, duration);
78WUT_CHECK_OFFSET(MPTask, 0x28, userData);
79WUT_CHECK_SIZE(MPTask, 0x2C);
80
82{
84 uint32_t tasks;
85 uint32_t tasksReady;
86 uint32_t tasksRunning;
87 uint32_t tasksFinished;
88};
89WUT_CHECK_OFFSET(MPTaskQueueInfo, 0x00, state);
90WUT_CHECK_OFFSET(MPTaskQueueInfo, 0x04, tasks);
91WUT_CHECK_OFFSET(MPTaskQueueInfo, 0x08, tasksReady);
92WUT_CHECK_OFFSET(MPTaskQueueInfo, 0x0C, tasksRunning);
93WUT_CHECK_OFFSET(MPTaskQueueInfo, 0x10, tasksFinished);
94WUT_CHECK_SIZE(MPTaskQueueInfo, 0x14);
95
97{
100 uint32_t tasks;
101 uint32_t tasksReady;
102 uint32_t tasksRunning;
103 WUT_UNKNOWN_BYTES(4);
105 WUT_UNKNOWN_BYTES(8);
106 uint32_t queueIndex;
107 WUT_UNKNOWN_BYTES(8);
108 uint32_t queueSize;
109 WUT_UNKNOWN_BYTES(4);
111 uint32_t queueMaxSize;
113};
114WUT_CHECK_OFFSET(MPTaskQueue, 0x00, self);
115WUT_CHECK_OFFSET(MPTaskQueue, 0x04, state);
116WUT_CHECK_OFFSET(MPTaskQueue, 0x08, tasks);
117WUT_CHECK_OFFSET(MPTaskQueue, 0x0C, tasksReady);
118WUT_CHECK_OFFSET(MPTaskQueue, 0x10, tasksRunning);
119WUT_CHECK_OFFSET(MPTaskQueue, 0x18, tasksFinished);
120WUT_CHECK_OFFSET(MPTaskQueue, 0x24, queueIndex);
121WUT_CHECK_OFFSET(MPTaskQueue, 0x30, queueSize);
122WUT_CHECK_OFFSET(MPTaskQueue, 0x38, queue);
123WUT_CHECK_OFFSET(MPTaskQueue, 0x3C, queueMaxSize);
124WUT_CHECK_OFFSET(MPTaskQueue, 0x40, lock);
125WUT_CHECK_SIZE(MPTaskQueue, 0x50);
126
127void
129 MPTask **queueBuffer,
130 uint32_t queueBufferLen);
131
132BOOL
134
135BOOL
137 MPTaskQueueInfo *info);
138
139BOOL
141
142BOOL
144
145BOOL
147
148BOOL
150 MPTask *task);
151
152MPTask *
154
155uint32_t
157 MPTask **queueBuffer,
158 uint32_t queueBufferLen);
159
160BOOL
162 MPTaskQueueState mask);
163
164BOOL
166 MPTaskQueueState wmask,
167 OSTime timeout);
168
169BOOL
171 uint32_t unk);
172
173void
175 MPTaskFunc func,
176 uint32_t userArg1,
177 uint32_t userArg2);
178
179BOOL
181
182BOOL
184 MPTaskInfo *info);
185
186void *
188
189void
191 void *userData);
192
193BOOL
195 uint32_t count);
196
197BOOL
199
200#ifdef __cplusplus
201}
202#endif
203
uint32_t tasksReady
Definition taskqueue.h:85
MPTask ** queue
Definition taskqueue.h:110
MPTaskFunc func
Definition taskqueue.h:60
MPTask * self
Definition taskqueue.h:57
uint32_t userArg1
Definition taskqueue.h:61
void * userData
Definition taskqueue.h:66
uint32_t result
Definition taskqueue.h:43
uint32_t queueMaxSize
Definition taskqueue.h:111
uint32_t userArg2
Definition taskqueue.h:62
MPTaskState state
Definition taskqueue.h:42
uint32_t tasksFinished
Definition taskqueue.h:87
OSTime duration
Definition taskqueue.h:45
OSSpinLock lock
Definition taskqueue.h:112
uint32_t queueSize
Definition taskqueue.h:108
MPTaskQueue * self
Definition taskqueue.h:98
uint32_t coreID
Definition taskqueue.h:44
uint32_t tasksRunning
Definition taskqueue.h:86
MPTaskQueue * queue
Definition taskqueue.h:58
uint32_t tasks
Definition taskqueue.h:84
uint32_t queueIndex
Definition taskqueue.h:106
MPTaskQueueState state
Definition taskqueue.h:83
uint32_t(* MPTaskFunc)(uint32_t, uint32_t)
Definition taskqueue.h:20
void MPSetTaskUserData(MPTask *task, void *userData)
MPTaskQueueState
Definition taskqueue.h:31
MPTaskState
Definition taskqueue.h:23
BOOL MPResetTaskQ(MPTaskQueue *queue)
BOOL MPWaitTaskQ(MPTaskQueue *queue, MPTaskQueueState mask)
BOOL MPRunTasksFromTaskQ(MPTaskQueue *queue, uint32_t count)
BOOL MPStopTaskQ(MPTaskQueue *queue)
BOOL MPRunTask(MPTask *task)
BOOL MPPrintTaskQStats(MPTaskQueue *queue, uint32_t unk)
BOOL MPTermTask(MPTask *task)
void MPInitTask(MPTask *task, MPTaskFunc func, uint32_t userArg1, uint32_t userArg2)
BOOL MPWaitTaskQWithTimeout(MPTaskQueue *queue, MPTaskQueueState wmask, OSTime timeout)
MPTask * MPDequeTask(MPTaskQueue *queue)
BOOL MPEnqueTask(MPTaskQueue *queue, MPTask *task)
BOOL MPGetTaskInfo(MPTask *task, MPTaskInfo *info)
BOOL MPTermTaskQ(MPTaskQueue *queue)
BOOL MPGetTaskQInfo(MPTaskQueue *queue, MPTaskQueueInfo *info)
BOOL MPStartTaskQ(MPTaskQueue *queue)
uint32_t MPDequeTasks(MPTaskQueue *queue, MPTask **queueBuffer, uint32_t queueBufferLen)
void * MPGetTaskUserData(MPTask *task)
void MPInitTaskQ(MPTaskQueue *queue, MPTask **queueBuffer, uint32_t queueBufferLen)
@ MP_TASK_QUEUE_STATE_INITIALISED
Definition taskqueue.h:32
@ MP_TASK_QUEUE_STATE_FINISHED
Definition taskqueue.h:36
@ MP_TASK_QUEUE_STATE_READY
Definition taskqueue.h:33
@ MP_TASK_QUEUE_STATE_STOPPING
Definition taskqueue.h:34
@ MP_TASK_QUEUE_STATE_STOPPED
Definition taskqueue.h:35
@ MP_TASK_STATE_RUNNING
Definition taskqueue.h:26
@ MP_TASK_STATE_INITIALISED
Definition taskqueue.h:24
@ MP_TASK_STATE_FINISHED
Definition taskqueue.h:27
@ MP_TASK_STATE_READY
Definition taskqueue.h:25
int64_t OSTime
Definition time.h:18
int32_t BOOL
Definition wut_types.h:7