10#include "common_header.h"
12#include "sysmem_user.h"
22 SceUID (*AllocPartitionMemory)(s32 mpid,
char *name, u32 type, u32 size, u32 addr);
23 void * (*GetBlockHeadAddr)(SceUID id);
24 s32 (*ResizeMemoryBlock)(SceUID id, s32 leftShift, s32 rightShift);
26 u32 loadCoreImportTablesSize;
27 void *initThreadStack;
30 s32 (*CompareSubType)(u32 tag);
31 u32 (*CompareLatestSubType)(u32 tag);
32 s32 (*SetMaskFunction)(u32 unk1, vs32 *addr);
33 void (*Kprintf)(
const char *fmt, ...);
34 s32 (*GetLengthFunction)(u8 *file, u32 size, u32 *newSize);
35 s32 (*PrepareGetLengthFunction)(u8 *buf, u32 size);
63typedef struct SceGameInfo SceGameInfo, *PSceGameInfo;
68 u8 umd_data_string[16];
69 u8 expect_umd_data[16];
72 u32 allow_replace_umd;
73 u8 param_product_string[16];
77 u32 compiled_sdk_version;
81 char vsh_bootfilename[64];
82 char param_gamedata_id[16];
83 char param_app_ver[8];
84 u8 subscription_validity[8];
86 u32 param_opnssmp_ver;
89s32 SysMemForKernel_807179E7(
char *gameId,
int arg1,
char *arg2,
char *arg3,
int arg4,
int arg5,
char *arg6);
90s32 sceKernelCopyGameInfo(SceGameInfo *info);
91s32 SysMemForKernel_F3BDB718(
char *arg0);
92s32 sceKernelGetQTGP2(
char *qtgp2);
93s32 sceKernelSetQTGP2(
char *qtgp2);
94s32 sceKernelGetQTGP3(
char *qtgp3);
95s32 sceKernelSetQTGP3(
char *qtgp3);
96s32 sceKernelGetAllowReplaceUmd(u32 *allow);
97s32 sceKernelSetAllowReplaceUmd(u32 allow);
98s32 sceKernelSetUmdCacheOn(u32 umdCacheOn);
99s32 SysMemForKernel_40B744A4(u32 unk112);
100s32 SysMemForKernel_BFE08689(
char *str116);
101s32 SysMemForKernel_2A8B8B2D(
char *unk204);
102SceGameInfo *sceKernelGetGameInfo(
void);
103u32 sceKernelGetCompiledSdkVersion(
void);
104s32 sceKernelSetCompiledSdkVersion100(u32 ver);
105s32 sceKernelSetCompiledSdkVersion370(u32 ver);
106s32 sceKernelSetCompiledSdkVersion380_390(u32 ver);
107s32 sceKernelSetCompiledSdkVersion395(u32 ver);
108s32 sceKernelSetCompiledSdkVersion410_420(u32 ver);
109s32 sceKernelSetCompiledSdkVersion500_550(u32 ver);
110s32 sceKernelSetCompiledSdkVersion570(u32 ver);
111s32 sceKernelSetCompiledSdkVersion600_620(u32 ver);
112s32 sceKernelSetCompiledSdkVersion630_650(u32 ver);
113s32 sceKernelSetCompiledSdkVersion660(u32 ver);
114s32 sceKernelGetCompilerVersion(
void);
115s32 sceKernelSetCompilerVersion(s32 version);
116s32 sceKernelGetDNAS(
void);
117s32 sceKernelSetDNAS(s32 dnas);
118s32 sceKernelGetInitialRandomValue(
void);
119s32 SysMemForKernel_A0A9185A(
void);
120u32 SysMemForKernel_13EE28DA(u32 flag);
121u32 sceKernelGetModel(
void);
122s32 sceKernelSetRebootKernel(s32 (*rebootKernel)());
123s32 sceKernelRebootKernel(
void *arg);
124s32 sceKernelRegisterGetIdFunc(
void *func);
125s32 sceKernelGetId(
const char *path,
char *
id);
130s32 sceKernelApiEvaluationInit();
131s32 sceKernelRegisterApiEvaluation();
132s32 sceKernelApiEvaliationAddData();
133s32 sceKernelApiEvaluationReport();
134s32 sceKernelSetGcovFunction();
135s32 sceKernelCallGcovFunction();
136s32 sceKernelSetGprofFunction();
137s32 sceKernelCallGprofFunction();
138int sceKernelCheckDebugHandler();
139s32 SysMemForKernel_7FF2F35A(
char *arg);
140s32 SysMemForKernel_A03CB480(
char *arg);
146typedef struct SceSysmemLowheapBlock {
147 struct SceSysmemLowheapBlock *next;
149} SceSysmemLowheapBlock;
151typedef struct SceSysmemHeapBlock {
152 struct SceSysmemHeapBlock *next, *prev;
156SceUID sceKernelCreateHeap(SceUID mpid, SceSize size,
int flag,
const char *name);
168 SceSysmemHeapBlock *heaps[];
171int sceKernelQueryHeapInfo(SceUID
id, SceSysmemHeapInfo *info);
173typedef struct SceSysmemLowheapInfoBlock {
174 SceSysmemLowheapBlock *block;
176} SceSysmemLowheapInfoBlock;
185 SceSysmemLowheapInfoBlock infoBlocks[];
186} SceSysmemLowheapInfo;
188s32 sceKernelQueryLowheapInfo(SceSysmemHeapBlock *block, SceSysmemLowheapInfo *info);
189int sceKernelDeleteHeap(SceUID
id);
194} SceSysmemHeapAllocOption;
196void *sceKernelAllocHeapMemoryWithOption(SceUID
id,
int size, SceSysmemHeapAllocOption *opt);
197void *sceKernelAllocHeapMemory(SceUID
id,
int size);
198s32 sceKernelFreeHeapMemory(SceUID
id,
void *addr);
199s32 sceKernelHeapTotalFreeSize(SceUID
id);
208 unsigned offset : 25;
209 unsigned isProtected : 1;
210 unsigned sizeLocked : 1;
212 unsigned checkOverflow : 1;
223 SceSysmemSeg *curSeg;
226void sceKernelGetSysMemoryInfo(s32 mpid, u32 needsInit, SceSysMemoryInfo *info);
227s32 sceKernelGetSysmemIdList(s32
id, s32 *uids, s32 maxCount, s32 *totalCount);
228s32 sceKernelSysMemRealMemorySize(
void);
229s32 sceKernelSysMemMemSize(
void);
230s32 sceKernelSysMemMaxFreeMemSize(
void);
231s32 sceKernelGetMEeDramSaveAddr(
void);
232s32 sceKernelGetAWeDramSaveAddr(
void);
233s32 sceKernelGetMEeDramSaveSize(
void);
234s32 sceKernelGetAWeDramSaveSize(
void);
235s32 sceKernelDevkitVersion(
void);
236s32 sceKernelGetSystemStatus(
void);
237s32 sceKernelSetSystemStatus(s32 newStatus);
253 s32 (*sceGeListUpdateStallAddr_lazy)(s32 dlId,
void *stall);
254 SceGeLazy *lazySyncData;
255} SceKernelUsersystemLibWork;
257s32 sceKernelSetUsersystemLibWork(s32 *cmdList, s32 (*sceGeListUpdateStallAddr_lazy)(s32,
void*), SceGeLazy *lazy);
258SceKernelUsersystemLibWork *sceKernelGetUsersystemLibWork(
void);
266} SceSysmemMemoryBlockAllocOption;
268SceUID sceKernelAllocMemoryBlock(
char *name, u32 type, u32 size, SceSysmemMemoryBlockAllocOption *opt);
269s32 sceKernelFreeMemoryBlock(SceUID
id);
270s32 sceKernelGetMemoryBlockAddr(SceUID
id,
void **addrPtr);
284} SceSysmemMemoryBlockInfo;
286s32 sceKernelResizeMemoryBlock(SceUID
id, s32 leftShift, s32 rightShift);
287s32 sceKernelJointMemoryBlock(SceUID id1, SceUID id2);
288s32 sceKernelSeparateMemoryBlock(SceUID
id, u32 cutBefore, u32 size);
289s32 sceKernelQueryMemoryBlockInfo(SceUID
id, SceSysmemMemoryBlockInfo *infoPtr);
290s32 sceKernelSizeLockMemoryBlock(SceUID
id);
291s32 sceKernelFreePartitionMemory(SceUID
id);
292s32 sceKernelQueryMemoryInfo(u32 address, SceUID *partitionId, SceUID *memoryBlockId);
293void *sceKernelGetBlockHeadAddr(SceUID
id);
294u32 SysMemForKernel_CC31DEAD(SceUID
id);
295void *sceKernelMemset(
void *src, s8 c, u32 size);
296void *sceKernelMemset32(
void *src, s32 c, u32 size);
297void *sceKernelMemmove(
void *dst,
void *src, u32 size);
298void *sceKernelMemmoveWithFill(
void *dst,
void *src, u32 size, s32 fill);
299void *sceKernelMemcpy(
void *dst,
const void *src, u32 n);
304void sceKernelMemoryExtendSize(
void);
305void sceKernelMemoryShrinkSize(
void);
306u32 sceKernelMemoryOpenSize(
void);
307void sceKernelMemoryCloseSize(u32 state);
308s32 sceKernelSetDdrMemoryProtection(u32 addr, u32 size, u32 set);
319} SceSysmemPartitionInfo;
321s32 sceKernelQueryMemoryPartitionInfo(s32 mpid, SceSysmemPartitionInfo *info);
322u32 sceKernelPartitionMaxFreeMemSize(s32 mpid);
323u32 sceKernelPartitionTotalMemSize(s32 mpid);
324u32 sceKernelTotalMemSize(
void);
325u32 sceKernelPartitionTotalFreeMemSize(s32 mpid);
326s32 sceKernelFillFreeBlock(s32 mpid, u32 c);
327SceUID sceKernelAllocPartitionMemory(s32 mpid,
char *name, u32 type, u32 size, u32 addr);
333#define UID_CB_TO_DATA(uid, typeStruct, type) ((type*)((void*)uid + typeStruct->size * 4))
334#define UID_DATA_TO_CB(data, typeStruct) ((SceSysmemUidCB*)((void*)data - typeStruct->size * 4))
336struct SceSysmemUidLookupFunc;
338typedef struct SceSysmemUidCB {
339 struct SceSysmemUidCB *PARENT0;
340 struct SceSysmemUidCB *nextChild;
341 struct SceSysmemUidCB *meta;
348 struct SceSysmemUidCB *next;
351 struct SceSysmemUidCB *PARENT1;
352 struct SceSysmemUidLookupFunc *funcTable;
353} __attribute__((packed)) SceSysmemUidCB;
355typedef s32 (*SceSysmemUidFunc)(SceSysmemUidCB *uid, SceSysmemUidCB *uidWithFunc, s32 funcId, va_list ap);
357typedef struct SceSysmemUidLookupFunc {
359 SceSysmemUidFunc func;
360} SceSysmemUidLookupFunc;
362s32 sceKernelCallUIDFunction(SceUID
id, s32 funcId, ...);
363s32 sceKernelCallUIDObjFunction(SceSysmemUidCB *uid, s32 funcId, ...);
364int sceKernelLookupUIDFunction(SceSysmemUidCB *uid,
int id, SceSysmemUidFunc *func, SceSysmemUidCB **parentUidWithFunc);
365s32 sceKernelCallUIDObjCommonFunction(SceSysmemUidCB *uid, SceSysmemUidCB *uidWithFunc, s32 funcId, va_list ap);
366int sceKernelCreateUIDtypeInherit(
const char *parentName,
const char *name,
int size,
367 SceSysmemUidLookupFunc *funcTable, SceSysmemUidLookupFunc *metaFuncTable,
368 SceSysmemUidCB **uidTypeOut);
369int sceKernelCreateUID(SceSysmemUidCB *type,
const char *name,
char k1, SceSysmemUidCB **outUid);
370SceUID sceKernelSearchUIDbyName(
const char *name, SceUID typeId);
371int sceKernelCreateUIDtype(
const char *name,
int size, SceSysmemUidLookupFunc *funcTable,
372 SceSysmemUidLookupFunc *metaFuncTable, SceSysmemUidCB **uidTypeOut);
373s32 sceKernelDeleteUIDtype(SceSysmemUidCB *uid);
374s32 sceKernelGetUIDname(SceUID
id, s32 len,
char *out);
375s32 sceKernelRenameUID(SceUID
id,
const char *name);
376s32 sceKernelGetUIDtype(SceUID
id);
377s32 sceKernelDeleteUID(SceUID
id);
378s32 sceKernelGetUIDcontrolBlock(SceUID
id, SceSysmemUidCB **uidOut);
379s32 sceKernelGetUIDcontrolBlockWithType(SceUID
id, SceSysmemUidCB *type, SceSysmemUidCB **outUid);
380s32 sceKernelIsKindOf(SceSysmemUidCB *uid, SceSysmemUidCB *type);
381s32 sceKernelPrintUidListAll(
void);
384 SceSysmemUidCB *root;
385 SceSysmemUidCB *metaRoot;
386 SceSysmemUidCB *basic;
390SceSysmemUidList *sceKernelGetUidmanCB(
void);
391s32 sceKernelIsHold(SceSysmemUidCB *uid0, SceSysmemUidCB *uid1);
392s32 sceKernelHoldUID(SceUID id0, SceUID id1);
393s32 sceKernelReleaseUID(SceUID id0, SceUID id1);
Definition loadcore.h:572
Definition loadcore.h:221
Definition loadcore.h:259