diff options
Diffstat (limited to 'include/user/kernel/modulemgr.h')
-rw-r--r-- | include/user/kernel/modulemgr.h | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/include/user/kernel/modulemgr.h b/include/user/kernel/modulemgr.h index 4ea55d3..3aa6f30 100644 --- a/include/user/kernel/modulemgr.h +++ b/include/user/kernel/modulemgr.h @@ -22,33 +22,34 @@ extern "C" { /** @} */ typedef struct SceKernelSegmentInfo { - SceUInt size; //!< sizeof(SceKernelSegmentInfo) - SceUInt perms; //!< probably rwx in low bits - void *vaddr; //!< address in memory - SceUInt memsz; //!< size in memory - SceUInt flags; //!< meaning unknown - SceUInt res; //!< unused? + SceSize size; //!< this structure size (0x18) + SceUInt perms; //!< probably rwx in low bits + void *vaddr; //!< address in memory + SceSize memsz; //!< size in memory + SceSize filesz; //!< original size of memsz + SceUInt res; //!< unused } SceKernelSegmentInfo; typedef struct SceKernelModuleInfo { - SceUInt size; //!< 0x1B8 for Vita 1.x - SceUInt handle; //!< kernel module handle? - SceUInt flags; //!< some bits. could be priority or whatnot - char module_name[28]; - SceUInt unk28; - void *module_start; - SceUInt unk30; - void *module_stop; - void *exidxTop; - void *exidxBtm; - SceUInt unk40; - SceUInt unk44; - void *tlsInit; - SceSize tlsInitSize; - SceSize tlsAreaSize; - char path[256]; - SceKernelSegmentInfo segments[4]; - SceUInt type; //!< 6 = user-mode PRX? + SceSize size; //!< 0x1B8 for Vita 1.x + SceUID modid; + uint16_t modattr; + uint8_t modver[2]; + char module_name[28]; + SceUInt unk28; + void *start_entry; + void *stop_entry; + void *exit_entry; + void *exidx_top; + void *exidx_btm; + void *extab_top; + void *extab_btm; + void *tlsInit; + SceSize tlsInitSize; + SceSize tlsAreaSize; + char path[256]; + SceKernelSegmentInfo segments[4]; + SceUInt type; //!< 6 = user-mode PRX? } SceKernelModuleInfo; typedef struct SceKernelLMOption { @@ -62,21 +63,18 @@ typedef struct SceKernelULMOption { int sceKernelGetModuleList(int flags, SceUID *modids, int *num); int sceKernelGetModuleInfo(SceUID modid, SceKernelModuleInfo *info); -SceUID sceKernelLoadModule(char *path, int flags, SceKernelLMOption *option); +SceUID sceKernelLoadModule(const char *path, int flags, SceKernelLMOption *option); int sceKernelUnloadModule(SceUID modid, int flags, SceKernelULMOption *option); int sceKernelStartModule(SceUID modid, SceSize args, void *argp, int flags, void *option, int *status); int sceKernelStopModule(SceUID modid, SceSize args, void *argp, int flags, void *option, int *status); -SceUID sceKernelLoadStartModule(char *path, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status); +SceUID sceKernelLoadStartModule(const char *path, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status); int sceKernelStopUnloadModule(SceUID modid, SceSize args, void *argp, int flags, SceKernelULMOption *option, int *status); typedef struct SceKernelFwInfo { SceSize size; - char versionString[16]; - SceUInt unk_14; - SceUInt unk_18; - SceUInt unk_1C; + char versionString[0x1C]; SceUInt version; SceUInt unk_24; } SceKernelFwInfo; |