coreinit/debug: Add documentation to the functions that kill the console (#450)
Some checks failed
C/C++ CI / ubuntu-latest (push) Has been cancelled

* coreinit/debug: Add documentation to the functions that kill the console

* Add `WUT_NORETURN` and apply to relevant functions

* Add `OSSetPanicCallback`

* Remove `WUT_NORETURN`
This commit is contained in:
capitalistspz
2026-08-01 21:01:54 +00:00
committed by GitHub
parent ae318fcb33
commit 47ae413908

View File

@@ -16,6 +16,7 @@ typedef struct OSFatalError OSFatalError;
typedef void (*DisassemblyPrintFn)(const char *fmt, ...);
typedef uint32_t (*DisassemblyFindSymbolFn)(uint32_t addr, char *symbolNameBuf, uint32_t symbolNameBufSize);
typedef void (*OSPanicCallback)(void *userData);
typedef enum DisassemblePPCFlags
{
@@ -41,8 +42,11 @@ typedef enum OSFatalErrorMessageType
struct OSFatalError
{
OSFatalErrorMessageType messageType;
//! Error code, displayed on screen as unsigned, and printed in log as signed
uint32_t errorCode;
//! See \link OSGetUPID \endlink
uint32_t processId;
//! Internal error code printed in log
uint32_t internalErrorCode;
uint32_t line;
char functionName[64];
@@ -83,7 +87,14 @@ void
OSReportWarn(const char *fmt, ...)
WUT_FORMAT_PRINTF(1, 2);
/**
* Halts the system and logs the cause, traps if debugger is present
* \param file name of the file where the panic occurred
* \param line position in the file where the panic occurred
* \param fmt printf-style format string for logging
*
* \sa OSSetPanicCallback
*/
void
OSPanic(const char *file,
uint32_t line,
@@ -91,10 +102,30 @@ OSPanic(const char *file,
...)
WUT_FORMAT_PRINTF(3, 4);
/**
* Set a callback to be triggered when an \link OSPanic \endlink occurs
* \param userData data to pass to the callback
*/
void
OSSetPanicCallback(OSPanicCallback callback,
void *userData);
/**
* Displays a message on TV and gamepad screens via OSScreen, and halts the system via \link OSPanic \endlink
* \param msg message to be displayed and logged
* \sa coreinit_screen
*/
void
OSFatal(const char *msg);
/**
* Switch to the fatal error process ("An error has occured." screen)
* \param error structure describing the error
* \param functionName function name printed in log
* \param line line number printed in log
*
* The fatal error process displays the error code, firmware version, Wii U model, serial number and status code
*/
void
OSSendFatalError(OSFatalError *error,
const char *functionName,