wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
args.h
Go to the documentation of this file.
1#pragma once
2#include <wut.h>
3
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef uint32_t SYSArgID;
16typedef uint32_t SYSArgType;
17
24
25typedef void (*SYSDeserializeCallback)(SYSDeserializeArg *arg, void *userArg);
26
36
44
46{
49 union
50 {
51 uint32_t uint32;
52 uint64_t uint64;
53 struct
54 {
55 void *ptr;
56 uint32_t size;
57 } data;
58 struct
59 {
60 const char *ptr;
61 uint32_t size;
62 } string;
63 };
64};
65WUT_CHECK_OFFSET(SYSArgDataBlock, 0x0, id);
66WUT_CHECK_OFFSET(SYSArgDataBlock, 0x4, type);
67WUT_CHECK_OFFSET(SYSArgDataBlock, 0x8, data);
68WUT_CHECK_SIZE(SYSArgDataBlock, 0x10);
69
71{
72 uint32_t upid;
73 WUT_PADDING_BYTES(0x4);
74 uint64_t titleID;
75};
76WUT_CHECK_OFFSET(SYSCallerInfo, 0x0, upid);
77WUT_CHECK_OFFSET(SYSCallerInfo, 0x8, titleID);
78WUT_CHECK_SIZE(SYSCallerInfo, 0x10);
79
81{
82 const char *argName;
83 uint32_t size;
84 void *data;
85};
86WUT_CHECK_OFFSET(SYSDeserializeArg, 0x0, argName);
87WUT_CHECK_OFFSET(SYSDeserializeArg, 0x4, size);
88WUT_CHECK_OFFSET(SYSDeserializeArg, 0x8, data);
89WUT_CHECK_SIZE(SYSDeserializeArg, 0xC);
90
92{
93 const void *data;
94 uint32_t size;
95};
96WUT_CHECK_OFFSET(SYSStandardArgsOut, 0x0, data);
97WUT_CHECK_OFFSET(SYSStandardArgsOut, 0x4, size);
98WUT_CHECK_SIZE(SYSStandardArgsOut, 0x8);
99
101{
102 const char *argString;
103 uint32_t size;
104};
105WUT_CHECK_OFFSET(SYSStandardArgsIn, 0x0, argString);
106WUT_CHECK_OFFSET(SYSStandardArgsIn, 0x4, size);
107WUT_CHECK_SIZE(SYSStandardArgsIn, 0x8);
108
110{
112 uint32_t anchorSize;
114 uint32_t resultSize;
115};
116WUT_CHECK_OFFSET(SYSStandardArgs, 0x0, anchorData);
117WUT_CHECK_OFFSET(SYSStandardArgs, 0x4, anchorSize);
118WUT_CHECK_OFFSET(SYSStandardArgs, 0x8, resultData);
119WUT_CHECK_OFFSET(SYSStandardArgs, 0xC, resultSize);
120WUT_CHECK_SIZE(SYSStandardArgs, 0x10);
121
135int32_t
137 SYSCallerInfo *callerInfo);
138
139int32_t
141
142void
144
145int32_t
147
148int32_t
149SYSSerializeSysArgs(const char *argName,
150 const void *data,
151 uint32_t size);
152
153int32_t
155 uint32_t *bytesWritten,
156 uint32_t bufferSize,
157 const char *argName,
158 const void *data,
159 uint32_t dataSize);
160
161int32_t
163 void *userArg);
164
165int32_t
167 uint32_t blockSize,
168 SYSDeserializeCallback callback,
169 void *userArg);
170
171int32_t
173
174int32_t
176
177BOOL
179 SYSStandardArgs *standardArg);
180
181#ifdef __cplusplus
182}
183#endif
184
const void * data
Definition args.h:93
uint64_t titleID
Definition args.h:74
const char * argString
Definition args.h:102
uint32_t upid
Definition args.h:72
SYSArgID id
Definition args.h:47
SYSArgType type
Definition args.h:48
uint32_t anchorSize
Definition args.h:112
void * data
Definition args.h:84
void * resultData
Definition args.h:113
uint32_t resultSize
Definition args.h:114
uint32_t size
Definition args.h:83
const char * argName
Definition args.h:82
void * anchorData
Definition args.h:111
uint32_t SYSArgType
Definition args.h:16
SYSArgIDEnum
Definition args.h:28
int32_t _SYSDirectlyReturnToCaller(SYSStandardArgsOut *arg)
uint32_t SYSArgID
Definition args.h:15
int32_t SYSPackArgs()
BOOL _SYSDeserializeStandardArg(SYSDeserializeArg *deserializeArg, SYSStandardArgs *standardArg)
int32_t _SYSSerializeStandardArgsIn(SYSStandardArgsIn *arg)
int32_t SYSSerializeSysArgs(const char *argName, const void *data, uint32_t size)
void(* SYSDeserializeCallback)(SYSDeserializeArg *arg, void *userArg)
Definition args.h:25
int32_t SYSGetStandardArgs(SYSStandardArgs *stdArgs)
SYSArgTypeEnum
Definition args.h:38
void SYSClearSysArgs()
int32_t SYSGetArguments(SYSArgDataBlock *args, SYSCallerInfo *callerInfo)
Gets current arguments and caller information.
int32_t SYSSerializeSysArgsToBuffer(char *buffer, uint32_t *bytesWritten, uint32_t bufferSize, const char *argName, const void *data, uint32_t dataSize)
int32_t SYSDeserializeSysArgsFromBlock(void *block, uint32_t blockSize, SYSDeserializeCallback callback, void *userArg)
int32_t SYSDeserializeSysArgs(SYSDeserializeCallback callback, void *userArg)
@ SYS_ARG_ID_JOIN_PID
Definition args.h:34
@ SYS_ARG_ID_RESULT
Definition args.h:31
@ SYS_ARG_ID_URL
Definition args.h:32
@ SYS_ARG_ID_MIV_DATA
Definition args.h:33
@ SYS_ARG_ID_ANCHOR
Definition args.h:30
@ SYS_ARG_ID_END
Definition args.h:29
@ SYS_ARG_TYPE_UINT32
Definition args.h:39
@ SYS_ARG_TYPE_STRING
Definition args.h:42
@ SYS_ARG_TYPE_UINT64
Definition args.h:40
@ SYS_ARG_TYPE_DATA
Definition args.h:41
int32_t BOOL
Definition wut_types.h:7