diff --git a/source/common/export_defines.h b/source/common/export_defines.h new file mode 100644 index 0000000..6b007c7 --- /dev/null +++ b/source/common/export_defines.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +#define EXPORT_MAXIMUM_NAME_LENGTH 50 +typedef struct export_data_t { + uint32_t type; + char name[EXPORT_MAXIMUM_NAME_LENGTH]; + uint32_t address = 0; +} export_data_t; \ No newline at end of file diff --git a/source/common/module_defines.h b/source/common/module_defines.h index f44fe89..ac2a7d1 100644 --- a/source/common/module_defines.h +++ b/source/common/module_defines.h @@ -21,19 +21,23 @@ #include #include "dynamic_linking_defines.h" #include "relocation_defines.h" +#include "export_defines.h" #ifdef __cplusplus extern "C" { #endif #define MAXIMUM_MODULE_PATH_NAME_LENGTH 256 -#define MAXIMUM_MODULE_NAME_LENGTH 51 +#define MAXIMUM_EXPORT_MODULE_NAME_LENGTH 51 #define DYN_LINK_RELOCATION_LIST_LENGTH 500 +#define EXPORT_ENTRY_LIST_LENGTH 100 struct module_information_single_t { char path[MAXIMUM_MODULE_PATH_NAME_LENGTH] = ""; // Path where the module is stored dyn_linking_relocation_entry_t linking_entries[DYN_LINK_RELOCATION_LIST_LENGTH]; + char module_export_name[MAXIMUM_EXPORT_MODULE_NAME_LENGTH]; + export_data_t export_entries[EXPORT_ENTRY_LIST_LENGTH]; int32_t priority; // Priority of this module uint32_t bssAddr; uint32_t bssSize; diff --git a/source/common/plugin_defines.h b/source/common/plugin_defines.h index 1874611..b086eb3 100644 --- a/source/common/plugin_defines.h +++ b/source/common/plugin_defines.h @@ -80,7 +80,6 @@ struct plugin_information_single_t { plugin_info_t info; plugin_data_t data; int32_t priority; // Priority of this plugin - }; #define MAXIMUM_PLUGINS 32