From defdaca00d3ebad32680a51828c19c9b2aaa484c Mon Sep 17 00:00:00 2001 From: robojumper Date: Mon, 6 May 2024 00:12:56 +0200 Subject: Most of eggAssert --- include/Runtime.PPCEABI.H/__va_arg.h | 1 + include/egg/prim/eggAssert.h | 13 ++++++++----- include/rvl/OS/OSError.h | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/Runtime.PPCEABI.H/__va_arg.h b/include/Runtime.PPCEABI.H/__va_arg.h index d3600d51..445bb985 100644 --- a/include/Runtime.PPCEABI.H/__va_arg.h +++ b/include/Runtime.PPCEABI.H/__va_arg.h @@ -36,5 +36,6 @@ void *__va_arg(_va_list_struct *, int); #define __va_end(list) ((void)0) #define __va_copy(a, b) (*(a) = *(b)) +#define va_copy __va_copy #endif /* __VA_ARG_H */ diff --git a/include/egg/prim/eggAssert.h b/include/egg/prim/eggAssert.h index 0910f203..147847b9 100644 --- a/include/egg/prim/eggAssert.h +++ b/include/egg/prim/eggAssert.h @@ -8,14 +8,17 @@ namespace EGG { // TODO: Fixup funtions namespace Assert { +typedef void (*AssertCallback)(); + /* 8049bf90 */ void wait(u32 time); -/* 8049c010 */ void system_print(); -/* 8049c010 */ void system_report(); -/* 8049c0a0 */ s32 getPeriodPos(char *); +/* 8049c010 */ void system_vreport(const char *str, va_list list); +/* 8049c010 */ void system_report(const char *str, ...); +/* 8049c0a0 */ s32 getPeriodPos(const char *); /* 8049c100 */ char *getMapSymbol(); /* 8049c150 */ bool isOutsideMEM1(u32 addr); -/* 8049c190 */ void system_halt(); -/* 8049c530 */ void assert(); +/* 8049c180 */ AssertCallback setAssertCallback(AssertCallback cb); +/* 8049c190 */ void system_halt(const char *file, u32 line, const char *msg, va_list list); +/* 8049c530 */ void assert(const char *file, u32 line, const char *msg, ...); } // namespace Assert diff --git a/include/rvl/OS/OSError.h b/include/rvl/OS/OSError.h index 64ce47e1..aa57db79 100644 --- a/include/rvl/OS/OSError.h +++ b/include/rvl/OS/OSError.h @@ -41,6 +41,7 @@ extern OSErrorHandler __OSErrorTable[OS_ERR_MAX]; extern u32 __OSFpscrEnableBits; DECL_WEAK void OSReport(const char *msg, ...); +DECL_WEAK void OSVReport(const char *msg, va_list args); DECL_WEAK void OSPanic(const char *file, int line, const char *msg, ...); OSErrorHandler OSSetErrorHandler(u16 error, OSErrorHandler handler); -- cgit v1.2.3