mirror of
https://github.com/wiiu-env/WiiUModuleSystem.git
synced 2024-11-25 19:26:53 +01:00
WUMS 0.3.1 add hook for calling __ini and __fini
This commit is contained in:
parent
5da3dd5a77
commit
32044725ef
2
Makefile
2
Makefile
@ -3,7 +3,7 @@ include $(TOPDIR)/share/wums_rules
|
|||||||
|
|
||||||
export WUMS_MAJOR := 0
|
export WUMS_MAJOR := 0
|
||||||
export WUMS_MINOR := 3
|
export WUMS_MINOR := 3
|
||||||
export WUMS_PATCH := 0
|
export WUMS_PATCH := 1
|
||||||
|
|
||||||
VERSION := $(WUMS_MAJOR).$(WUMS_MINOR).$(WUMS_PATCH)
|
VERSION := $(WUMS_MAJOR).$(WUMS_MINOR).$(WUMS_PATCH)
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* by Alex Chadwick
|
* by Alex Chadwick
|
||||||
*
|
*
|
||||||
* Copyright (C) 2014, Alex Chadwick
|
* Copyright (C) 2014, Alex Chadwick
|
||||||
* Modified by Maschell, 2018-2021
|
* Modified by Maschell, 2018-2022
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -60,14 +60,14 @@ typedef struct module_information_single_t {
|
|||||||
uint32_t entrypoint;
|
uint32_t entrypoint;
|
||||||
uint32_t startAddress;
|
uint32_t startAddress;
|
||||||
uint32_t endAddress;
|
uint32_t endAddress;
|
||||||
uint8_t skipEntrypoint;
|
uint8_t skipInitFini;
|
||||||
uint8_t initBeforeRelocationDoneHook;
|
uint8_t initBeforeRelocationDoneHook;
|
||||||
module_function_symbol_data_t * function_symbol_entries;
|
module_function_symbol_data_t * function_symbol_entries;
|
||||||
uint32_t number_used_function_symbols;
|
uint32_t number_used_function_symbols;
|
||||||
} module_information_single_t;
|
} module_information_single_t;
|
||||||
|
|
||||||
#define MAXIMUM_MODULES 32
|
#define MAXIMUM_MODULES 32
|
||||||
#define MODULE_INFORMATION_VERSION 0x00000006
|
#define MODULE_INFORMATION_VERSION 0x00000007
|
||||||
|
|
||||||
typedef struct module_information_t {
|
typedef struct module_information_t {
|
||||||
uint32_t version;
|
uint32_t version;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* by Alex Chadwick
|
* by Alex Chadwick
|
||||||
*
|
*
|
||||||
* Copyright (C) 2014, Alex Chadwick
|
* Copyright (C) 2014, Alex Chadwick
|
||||||
* Modified by Maschell, 2018-2021
|
* Modified by Maschell, 2018-2022
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* by Alex Chadwick
|
* by Alex Chadwick
|
||||||
*
|
*
|
||||||
* Copyright (C) 2014, Alex Chadwick
|
* Copyright (C) 2014, Alex Chadwick
|
||||||
* Modified by Maschell, 2018-2021
|
* Modified by Maschell, 2018-2022
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -51,6 +51,9 @@ typedef enum wums_hook_type_t {
|
|||||||
WUMS_HOOK_INIT_WUT_SOCKETS,
|
WUMS_HOOK_INIT_WUT_SOCKETS,
|
||||||
WUMS_HOOK_FINI_WUT_SOCKETS,
|
WUMS_HOOK_FINI_WUT_SOCKETS,
|
||||||
|
|
||||||
|
WUMS_HOOK_INIT_WRAPPER, /* Calls __init */
|
||||||
|
WUMS_HOOK_FINI_WRAPPER, /* Calls __fini */
|
||||||
|
|
||||||
WUMS_HOOK_INIT,
|
WUMS_HOOK_INIT,
|
||||||
WUMS_HOOK_APPLICATION_STARTS,
|
WUMS_HOOK_APPLICATION_STARTS,
|
||||||
WUMS_HOOK_APPLICATION_ENDS,
|
WUMS_HOOK_APPLICATION_ENDS,
|
||||||
@ -156,6 +159,20 @@ typedef struct wums_relocs_done_args_t {
|
|||||||
__EXTERN_C_MACRO void __fini_wut_socket(); \
|
__EXTERN_C_MACRO void __fini_wut_socket(); \
|
||||||
WUMS_HOOK_EX(WUMS_HOOK_FINI_WUT_SOCKETS,__fini_wut_socket)
|
WUMS_HOOK_EX(WUMS_HOOK_FINI_WUT_SOCKETS,__fini_wut_socket)
|
||||||
|
|
||||||
|
#define WUMS___INIT_WRAPPER() \
|
||||||
|
__EXTERN_C_MACRO void __init(); \
|
||||||
|
void __init_wrapper(){ \
|
||||||
|
__init(); \
|
||||||
|
}\
|
||||||
|
WUMS_HOOK_EX(WUMS_HOOK_INIT_WRAPPER,__init_wrapper);
|
||||||
|
|
||||||
|
#define WUMS___FINI_WRAPPER() \
|
||||||
|
__EXTERN_C_MACRO void __fini(); \
|
||||||
|
void __fini_wrapper(){ \
|
||||||
|
__fini(); \
|
||||||
|
}\
|
||||||
|
WUMS_HOOK_EX(WUMS_HOOK_FINI_WRAPPER,__fini_wrapper);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
@ -2,7 +2,7 @@
|
|||||||
* by Alex Chadwick
|
* by Alex Chadwick
|
||||||
*
|
*
|
||||||
* Copyright (C) 2014, Alex Chadwick
|
* Copyright (C) 2014, Alex Chadwick
|
||||||
* Modified by Maschell, 2018-2021
|
* Modified by Maschell, 2018-2022
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -32,20 +32,22 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define WUMS_MODULE_EXPORT_NAME(x) \
|
#define WUMS_MODULE_EXPORT_NAME(x) \
|
||||||
WUMS_META(export_name, x); \
|
WUMS_META(export_name, x); \
|
||||||
WUMS_META(wum, "0.2"); \
|
WUMS_META(wum, "0.3.1"); \
|
||||||
WUMS_USE_WUT_MALLOC(); \
|
WUMS_USE_WUT_MALLOC(); \
|
||||||
WUMS_USE_WUT_SOCKETS(); \
|
WUMS_USE_WUT_SOCKETS(); \
|
||||||
WUMS_USE_WUT_NEWLIB(); \
|
WUMS_USE_WUT_NEWLIB(); \
|
||||||
WUMS_USE_WUT_STDCPP(); \
|
WUMS_USE_WUT_STDCPP(); \
|
||||||
|
WUMS___INIT_WRAPPER(); \
|
||||||
|
WUMS___FINI_WRAPPER(); \
|
||||||
WUMS_META(buildtimestamp, __DATE__ " " __TIME__)
|
WUMS_META(buildtimestamp, __DATE__ " " __TIME__)
|
||||||
|
|
||||||
#define WUMS_MODULE_AUTHOR(x) WUMS_META(author, x)
|
#define WUMS_MODULE_AUTHOR(x) WUMS_META(author, x)
|
||||||
#define WUMS_MODULE_VERSION(x) WUMS_META(version, x)
|
#define WUMS_MODULE_VERSION(x) WUMS_META(version, x)
|
||||||
#define WUMS_MODULE_LICENSE(x) WUMS_META(license, x)
|
#define WUMS_MODULE_LICENSE(x) WUMS_META(license, x)
|
||||||
#define WUMS_MODULE_DESCRIPTION(x) WUMS_META(description, x)
|
#define WUMS_MODULE_DESCRIPTION(x) WUMS_META(description, x)
|
||||||
#define WUMS_MODULE_SKIP_ENTRYPOINT() WUMS_META(skipEntrypoint, "true")
|
#define WUMS_MODULE_SKIP_INIT_FINI() WUMS_META(skipInitFini, "true")
|
||||||
#define WUMS_MODULE_INIT_BEFORE_RELOCATION_DONE_HOOK() WUMS_META(initBeforeRelocationDoneHook, "true")
|
#define WUMS_MODULE_INIT_BEFORE_RELOCATION_DONE_HOOK() WUMS_META(initBeforeRelocationDoneHook, "true")
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
Loading…
Reference in New Issue
Block a user