Files
ss/include/rvl/OS/OSRtc.h
T
Elijah Thomas 26af4db82d update from dtk-template - clangd :) (#66)
* update from dtk-template and start work towards using clangd

* include <a> -> "a"

* Update build.yml

* remove/add non-trivial class in union warning
2024-10-16 15:36:02 -04:00

49 lines
1.1 KiB
C

#ifndef RVL_SDK_OS_RTC_H
#define RVL_SDK_OS_RTC_H
#include "common.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* Documentation from:
* https://www.gc-forever.com/yagcd/chap10.html#sec10.5
*/
typedef struct OSSram {
u16 checksum; // at 0x0
u16 invchecksum; // at 0x2
u32 ead0; // at 0x4
u32 ead1; // at 0x8
u32 counterBias; // at 0xC
u8 dispOfsH; // at 0x10
u8 ntd; // at 0x11
u8 lang; // at 0x12
u8 flags; // at 0x13
} OSSram;
typedef struct OSSramEx {
char UNK_0x0[0x1C];
u16 wirelessPadId[4]; // at 0x1C
char UNK_0x38[0x3C - 0x38];
u16 gbs; // at 0x3C
char UNK_0x3E[0x40 - 0x3E];
} OSSramEx;
void __OSInitSram(void);
OSSramEx *__OSLockSramEx(void);
BOOL __OSUnlockSramEx(BOOL save);
BOOL __OSSyncSram(void);
BOOL __OSReadROM(void *dst, s32 size, const void *src);
u16 OSGetWirelessID(s32 pad);
void OSSetWirelessID(s32 pad, u16 id);
u16 OSGetGbsMode(void);
void OSSetGbsMode(u16 gbs);
BOOL __OSGetRTCFlags(u32 *out);
BOOL __OSClearRTCFlags(void);
#ifdef __cplusplus
}
#endif
#endif