#ifndef DOLPHIN_OSMODULE_H #define DOLPHIN_OSMODULE_H #include "types.h" #ifdef __cplusplus extern "C" { #endif // typedef struct OSModuleInfo_s OSModuleInfo; // typedef struct OSModuleQueue_s { // OSModuleInfo* head; // OSModuleInfo* tail; // } OSModuleQueue; // typedef struct OSModuleLink_s { // OSModuleInfo* next; // OSModuleInfo* prev; // } OSModuleLink; // typedef struct OSModuleInfo_s { // u32 id; // OSModuleLink link; // u32 numSections; // u32 sectionInfoOfs; // u32 nameOfs; // u32 nameSize; // u32 version; // } OSModuleInfo; // typedef struct OSModuleHeader_s { // OSModuleInfo info; // u32 bssSize; // u32 relOfs; // u32 impOfs; // u32 impSize; // u8 prologSection; // u8 epilogSection; // u8 unresolvedSection; // u8 bssSection; // u32 prolog; // u32 epilog; // u32 unresolved; // /* OS_MODULE_VERSION >= 2 */ // u32 align; // u32 bssAlign; // } OSModuleHeader; // typedef struct OSSectionInfo_s { // u32 offset; // u32 size; // } OSSectionInfo; // #define OSGetSectionInfo(module) \ // ((OSSectionInfo*) (((OSModuleInfo*) (module))->sectionInfoOfs)) // #define OS_SECTIONINFO_EXEC 1 // #define OS_SECTIONINFO_OFFSET(offset) ((offset) & ~OS_SECTIONINFO_EXEC) // void OSSetStringTable (const void* strTable); // BOOL OSLink(OSModuleInfo* module, void* bss); // BOOL OSUnlink(OSModuleInfo* module); #ifdef __cplusplus } #endif #endif