wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
kernel.h
Go to the documentation of this file.
1#pragma once
2#include <wut.h>
4
11#ifdef __cplusplus
12extern "C" {
13#endif
14
32
33typedef void (*OSExceptionCallbackExFn)(OSExceptionType exceptionType, OSContext * interruptedContext, OSContext *cbContext);
34
35typedef void (*KernelTimerCallbackFn)(OSExceptionType exception, OSContext *interruptedContext, OSContext *currentContext);
36
37typedef uint32_t KernelTimerHandle;
38
44WUT_CHECK_OFFSET(OSExceptionChainInfo, 0, callback);
45WUT_CHECK_OFFSET(OSExceptionChainInfo, 4, stack);
46WUT_CHECK_OFFSET(OSExceptionChainInfo, 8, context);
47WUT_CHECK_SIZE(OSExceptionChainInfo, 12);
48
96WUT_CHECK_OFFSET(KernelInfo0, 0x00, upid);
97WUT_CHECK_OFFSET(KernelInfo0, 0x04, rampid);
98WUT_CHECK_OFFSET(KernelInfo0, 0x08, appFlags);
99WUT_CHECK_OFFSET(KernelInfo0, 0x0C, dataAreaStart);
100WUT_CHECK_OFFSET(KernelInfo0, 0x10, dataAreaEnd);
101WUT_CHECK_OFFSET(KernelInfo0, 0x14, physDataAreaStart);
102WUT_CHECK_OFFSET(KernelInfo0, 0x18, physDataAreaEnd);
103WUT_CHECK_OFFSET(KernelInfo0, 0x1C, physAvailStart);
104WUT_CHECK_OFFSET(KernelInfo0, 0x20, physAvailEnd);
105WUT_CHECK_OFFSET(KernelInfo0, 0x24, physCodeGenStart);
106WUT_CHECK_OFFSET(KernelInfo0, 0x28, physCodeGenEnd);
107WUT_CHECK_OFFSET(KernelInfo0, 0x2C, sdaBase);
108WUT_CHECK_OFFSET(KernelInfo0, 0x30, sda2Base);
109WUT_CHECK_OFFSET(KernelInfo0, 0x34, systemHeapSize);
110WUT_CHECK_OFFSET(KernelInfo0, 0x38, stackEnd0);
111WUT_CHECK_OFFSET(KernelInfo0, 0x3C, stackEnd1);
112WUT_CHECK_OFFSET(KernelInfo0, 0x40, stackEnd2);
113WUT_CHECK_OFFSET(KernelInfo0, 0x44, stackBase0);
114WUT_CHECK_OFFSET(KernelInfo0, 0x48, stackBase1);
115WUT_CHECK_OFFSET(KernelInfo0, 0x4C, stackBase2);
116WUT_CHECK_OFFSET(KernelInfo0, 0x50, exceptionStackEnd0);
117WUT_CHECK_OFFSET(KernelInfo0, 0x54, exceptionStackEnd1);
118WUT_CHECK_OFFSET(KernelInfo0, 0x58, exceptionStackEnd2);
119WUT_CHECK_OFFSET(KernelInfo0, 0x5C, exceptionStackBase0);
120WUT_CHECK_OFFSET(KernelInfo0, 0x60, exceptionStackBase1);
121WUT_CHECK_OFFSET(KernelInfo0, 0x64, exceptionStackBase2);
122WUT_CHECK_OFFSET(KernelInfo0, 0x68, lockedCacheBase0);
123WUT_CHECK_OFFSET(KernelInfo0, 0x6C, lockedCacheBase1);
124WUT_CHECK_OFFSET(KernelInfo0, 0x70, lockedCacheBase2);
125WUT_CHECK_OFFSET(KernelInfo0, 0x74, coreinit);
126WUT_CHECK_OFFSET(KernelInfo0, 0x9C, unk0x9C);
127WUT_CHECK_OFFSET(KernelInfo0, 0xA0, titleId);
128WUT_CHECK_SIZE(KernelInfo0, 0xA8);
129
130typedef struct KernelInfo6 {
131 uint64_t osTitleId;
132 uint32_t unk0x08;
133 WUT_PADDING_BYTES(0x108 - 0xC);
135WUT_CHECK_OFFSET(KernelInfo6, 0x00, osTitleId);
136WUT_CHECK_OFFSET(KernelInfo6, 0x08, unk0x08);
137WUT_CHECK_SIZE(KernelInfo6, 0x108);
138
140
142uint32_t __KernelPrimeTimer(KernelTimerHandle handle, uint64_t startTimeInTicks, uint64_t intervalInTicks, uint32_t unknown);
143
144void __KernelSendICI(OSICICommand cmd, void *arg1, uint32_t unknown1, uint32_t unknown2);
145
146void __KernelGetInfo(uint32_t type, void *outBuffer, uint32_t outBufferSize, uint32_t core);
147
148static inline void
149__KernelGetInfo0(KernelInfo0 *outBuffer, uint32_t core)
150{
151 __KernelGetInfo(0, outBuffer, sizeof(KernelInfo0), core);
152}
153
154static inline void
155__KernelGetInfo6(KernelInfo6 *outBuffer, uint32_t core)
156{
157 __KernelGetInfo(6, outBuffer, sizeof(KernelInfo6), core);
158}
159
160#ifdef __cplusplus
161}
162#endif
163
OSExceptionType
Definition exception.h:27
uint64_t titleId
Definition kernel.h:94
void * stackEnd0
Definition kernel.h:77
void * lockedCacheBase0
Definition kernel.h:89
void * stackBase2
Definition kernel.h:82
void * stackEnd1
Definition kernel.h:78
void * stackBase1
Definition kernel.h:81
void * dataAreaStart
Definition kernel.h:66
void * stackBase0
Definition kernel.h:80
void * physCodeGenStart
Definition kernel.h:72
int32_t upid
Definition kernel.h:63
uint32_t systemHeapSize
Definition kernel.h:76
void * exceptionStackBase1
Definition kernel.h:87
void * physAvailEnd
Definition kernel.h:71
void * sda2Base
Definition kernel.h:75
void * exceptionStackBase2
Definition kernel.h:88
OSContext * context
Definition kernel.h:42
void * physDataAreaStart
Definition kernel.h:68
uint32_t unk0x9C
Definition kernel.h:93
OSExceptionCallbackExFn callback
Definition kernel.h:40
void * lockedCacheBase2
Definition kernel.h:91
int32_t rampid
Definition kernel.h:64
void * exceptionStackEnd0
Definition kernel.h:83
void * physCodeGenEnd
Definition kernel.h:73
uint32_t unk0x08
Definition kernel.h:132
struct CoreinitInfo coreinit
Definition kernel.h:92
uint64_t osTitleId
Definition kernel.h:131
void * exceptionStackBase0
Definition kernel.h:86
void * lockedCacheBase1
Definition kernel.h:90
void * stackEnd2
Definition kernel.h:79
void * physAvailStart
Definition kernel.h:70
void * dataAreaEnd
Definition kernel.h:67
uint32_t appFlags
Definition kernel.h:65
void * exceptionStackEnd1
Definition kernel.h:84
void * exceptionStackEnd2
Definition kernel.h:85
void * physDataAreaEnd
Definition kernel.h:69
void * sdaBase
Definition kernel.h:74
void __KernelGetInfo(uint32_t type, void *outBuffer, uint32_t outBufferSize, uint32_t core)
uint32_t __KernelPrimeTimer(KernelTimerHandle handle, uint64_t startTimeInTicks, uint64_t intervalInTicks, uint32_t unknown)
void __KernelSetUserModeExHandler(OSExceptionType exceptionType, OSExceptionChainInfo *chainInfo, OSExceptionChainInfo *prevChainInfo)
OSICICommand
Definition kernel.h:15
void(* OSExceptionCallbackExFn)(OSExceptionType exceptionType, OSContext *interruptedContext, OSContext *cbContext)
Definition kernel.h:33
void(* KernelTimerCallbackFn)(OSExceptionType exception, OSContext *interruptedContext, OSContext *currentContext)
Definition kernel.h:35
static void __KernelGetInfo6(KernelInfo6 *outBuffer, uint32_t core)
Definition kernel.h:155
uint32_t KernelTimerHandle
Definition kernel.h:37
void __KernelSendICI(OSICICommand cmd, void *arg1, uint32_t unknown1, uint32_t unknown2)
KernelTimerHandle __KernelAllocateTimer(KernelTimerCallbackFn, void *exceptionStack, OSContext *context)
static void __KernelGetInfo0(KernelInfo0 *outBuffer, uint32_t core)
Definition kernel.h:149
@ OS_ICI_COMMAND_IOP_SHELL_CORE_TRACE
Definition kernel.h:23
@ OS_ICI_COMMAND_PROC_KILL
Definition kernel.h:27
@ OS_ICI_COMMAND_RESCHEDULE_CORE
Definition kernel.h:17
@ OS_ICI_COMMAND_PROC_EXIT
Definition kernel.h:19
@ OS_ICI_COMMAND_PANIC_0X15
Definition kernel.h:26
@ OS_ICI_COMMAND_UNKNOWN
Definition kernel.h:29
@ OS_ICI_COMMAND_INVALID_IC_RANGE
Definition kernel.h:16
@ OS_ICI_COMMAND_OVERLAY_ARENA
Definition kernel.h:30
@ OS_ICI_COMMAND_PROC_CRASH
Definition kernel.h:28
@ OS_ICI_COMMAND_SYSTEM_FATAL
Definition kernel.h:24
@ OS_ICI_COMMAND_SET_DABR
Definition kernel.h:20
@ OS_ICI_COMMAND_HALT_CORE
Definition kernel.h:18
@ OS_ICI_COMMAND_FAST_BG_EXIT
Definition kernel.h:22
@ OS_ICI_COMMAND_PROC_SCHED
Definition kernel.h:21
@ OS_ICI_COMMAND_SET_IABR
Definition kernel.h:25