diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2023-02-03 13:27:31 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2023-02-03 13:27:31 -0400 |
commit | fa6928e23fb6dcff6ba9e409ac82c76e777dfdaa (patch) | |
tree | 8cdea9e4e37be91acf5fafcc7a9b58928a124571 /include/NMWException.h | |
parent | f2eabdb6257c09cf2890dac5e9737912728542af (diff) |
sdk: Use `NMWException.h`, and `fdlibm.h` from prime decomp project
Diffstat (limited to 'include/NMWException.h')
-rw-r--r-- | include/NMWException.h | 36 |
1 files changed, 23 insertions, 13 deletions
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 <stddef.h> #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 |