From fa6928e23fb6dcff6ba9e409ac82c76e777dfdaa Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Fri, 3 Feb 2023 13:27:31 -0400 Subject: sdk: Use `NMWException.h`, and `fdlibm.h` from prime decomp project --- include/NMWException.h | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'include/NMWException.h') diff --git a/include/NMWException.h b/include/NMWException.h index 9cf7e48..d3e6290 100644 --- a/include/NMWException.h +++ b/include/NMWException.h @@ -1,26 +1,36 @@ -#ifndef NMWEXCEPTION_H -#define NMWEXCEPTION_H +#ifndef _NMWEXCEPTION +#define _NMWEXCEPTION + +#include #ifdef __cplusplus extern "C" { #endif -typedef void (dtor_func)(void *object, int free_object); -typedef struct destructor_chain dtor_chain; +#define CTORARG_TYPE int +#define CTORARG_PARTIAL (0) +#define CTORARG_COMPLETE (1) + +#define CTORCALL_COMPLETE(ctor, objptr) \ + (((void (*)(void*, CTORARG_TYPE))ctor)(objptr, CTORARG_COMPLETE)) + +#define DTORARG_TYPE int -struct destructor_chain { - dtor_chain *next; - dtor_func *destructor; - void *object; -}; +#define DTORCALL_COMPLETE(dtor, objptr) (((void (*)(void*, DTORARG_TYPE))dtor)(objptr, -1)) + +typedef struct DestructorChain { + struct DestructorChain* next; + void* destructor; + void* object; +} DestructorChain; void __unregister_fragment(int fragmentID); -int __register_fragment(struct __eti_init_info *info, char *TOC); -void *__register_global_object(void *object, dtor_func *destructor, dtor_chain *regmem); -void __destroy_global_chain(); +int __register_fragment(struct __eti_init_info* info, char* TOC); +void* __register_global_object(void* object, void* destructor, void* regmem); +void __destroy_global_chain(void); #ifdef __cplusplus } #endif -#endif +#endif // _NMWEXCEPTION -- cgit v1.2.3-13-gbd6f