summaryrefslogtreecommitdiff
path: root/include/NMWException.h
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2023-02-03 13:27:31 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2023-02-03 13:27:31 -0400
commitfa6928e23fb6dcff6ba9e409ac82c76e777dfdaa (patch)
tree8cdea9e4e37be91acf5fafcc7a9b58928a124571 /include/NMWException.h
parentf2eabdb6257c09cf2890dac5e9737912728542af (diff)
sdk: Use `NMWException.h`, and `fdlibm.h` from prime decomp project
Diffstat (limited to 'include/NMWException.h')
-rw-r--r--include/NMWException.h36
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