| 1 | import ghidra.program.model.data.*; |
| 2 | |
| 3 | class Ps3DataStructureTypes { |
| 4 | |
| 5 | public static void createStructureTypes() { |
| 6 | //Module info |
| 7 | createSceModuleInfoCommonDataStruc(); |
| 8 | createSceModuleInfoPpu32Struc(); |
| 9 | createSceModuleInfoPpu64Struc(); |
| 10 | |
| 11 | //Imports |
| 12 | createSceLibStubCommonStruc(); |
| 13 | createSceLibStubPpu32Struc(); |
| 14 | createSceLibStubPpu64Struc(); |
| 15 | |
| 16 | //Exports |
| 17 | createSceLibEntCommonStruc(); |
| 18 | createSceLibEntPpu32Struc(); |
| 19 | createSceLibEntPpu64Struc(); |
| 20 | |
| 21 | //Process param |
| 22 | createSysProcessParamTDataStruc(); |
| 23 | |
| 24 | //Process Prx |
| 25 | createSysProcessPrxInfoTDataStruc(); |
| 26 | |
| 27 | } |
| 28 | |
| 29 | /* Process PRX */ |
| 30 | |
| 31 | static StructureDataType sysProcessPrxInfoTDataType; |
| 32 | private static void createSysProcessPrxInfoTDataStruc() { |
| 33 | sysProcessPrxInfoTDataType = new StructureDataType(new CategoryPath("/PS3"), "sys_process_prx_info_t", 0); |
| 34 | sysProcessPrxInfoTDataType.add(UnsignedIntegerDataType.dataType, "size", ""); |
| 35 | sysProcessPrxInfoTDataType.add(UnsignedIntegerDataType.dataType, "magic", ""); |
| 36 | sysProcessPrxInfoTDataType.add(UnsignedIntegerDataType.dataType, "version", ""); |
| 37 | sysProcessPrxInfoTDataType.add(UnsignedIntegerDataType.dataType, "sdk_version", ""); |
| 38 | sysProcessPrxInfoTDataType.add(UnsignedIntegerDataType.dataType, "libent_start", ""); |
| 39 | sysProcessPrxInfoTDataType.add(UnsignedIntegerDataType.dataType, "libent_end", ""); |
| 40 | sysProcessPrxInfoTDataType.add(UnsignedIntegerDataType.dataType, "libstub_start", ""); |
| 41 | sysProcessPrxInfoTDataType.add(UnsignedIntegerDataType.dataType, "libstub_end", ""); |
| 42 | sysProcessPrxInfoTDataType.add(UnsignedCharDataType.dataType, "major_version", ""); |
| 43 | sysProcessPrxInfoTDataType.add(UnsignedCharDataType.dataType, "minor_version", ""); |
| 44 | sysProcessPrxInfoTDataType.add(new ArrayDataType(UnsignedCharDataType.dataType, 6, 1), "reserved", ""); |
| 45 | } |
| 46 | |
| 47 | /* Process Param */ |
| 48 | |
| 49 | static StructureDataType sysProcessParamTDataType; |
| 50 | private static void createSysProcessParamTDataStruc() { |
| 51 | sysProcessParamTDataType = new StructureDataType(new CategoryPath("/PS3"), "sys_process_param_t", 0); |
| 52 | sysProcessParamTDataType.add(UnsignedIntegerDataType.dataType, "size", ""); |
| 53 | sysProcessParamTDataType.add(UnsignedIntegerDataType.dataType, "magic", ""); |
| 54 | sysProcessParamTDataType.add(UnsignedIntegerDataType.dataType, "version", ""); |
| 55 | sysProcessParamTDataType.add(UnsignedIntegerDataType.dataType, "sdk_version", ""); |
| 56 | sysProcessParamTDataType.add(IntegerDataType.dataType, "primary_prio", ""); |
| 57 | sysProcessParamTDataType.add(UnsignedIntegerDataType.dataType, "primary_stacksize", ""); |
| 58 | sysProcessParamTDataType.add(UnsignedIntegerDataType.dataType, "malloc_pagesize", ""); |
| 59 | sysProcessParamTDataType.add(UnsignedIntegerDataType.dataType, "ppc_seg", ""); |
| 60 | sysProcessParamTDataType.add(UnsignedIntegerDataType.dataType, "crash_dump_param_addr", "");//TODO hmmmm |
nothing calls this directly
no outgoing calls
no test coverage detected