SceSysmem is a kernel module that acts as the heart of the kernel. It exports multiple libraries for various features. SceSysmem is the first module that is loaded in the kernel load sequence and its libraries are imported by almost all other modules. See Virtual Memory and Physical Memory for more details on the memory subsystem.
Module
This module exists in both non-secure and secure world. The non-secure world SELF can be found in os0:kd/sysmem.skprx. It also can be found in the Boot Image.
| Version |
World |
Privilege
|
| 1.50-3.61 |
Non-secure |
Kernel
|
| 1.69-1.80 |
Secure |
Kernel
|
Libraries
Known NIDs
The SceCpu libraries provide wrappers for much ARM CP15 co-processor access as well as low level support of spinlocks and other synchronization primitives.
Types
See SceSysmem Types.
SysEvent
Dispatcher
| Module |
Type |
Event |
Description
|
| ScePower |
0 |
0x100 |
SCE_KERNEL_SYSEVENT_SUSPEND_START. before sceKernelCpuSuspendIntr.
|
| ScePower |
0 |
0x101 |
unknown
|
| ScePower |
0 |
0x102 |
unknown. later sceKernelCpuResumeIntr.
|
| ScePower |
0 |
0x20F -> 0x200 |
SCE_KERNEL_SYSEVENT_SUSPEND_PHASE2. after sceKernelCpuResumeIntr.
|
| ScePower |
0 |
0x400 |
SCE_KERNEL_SYSEVENT_SUSPEND_PHASE1_START.
|
| ScePower |
0 |
0x401 |
SCE_KERNEL_SYSEVENT_SUSPEND_PHASE1_MAIN. (this is a guessed name. but should be official name)
|
| ScePower |
0 |
0x402 |
SCE_KERNEL_SYSEVENT_SUSPEND_PHASE1_END. (this is a guessed name)
|
| ScePower |
1 |
0x1000 |
SCE_KERNEL_SYSEVENT_SUSPEND_FREEZE_TIME.
|
| ScePower |
1 |
0x400F -> 0x4000 |
SCE_KERNEL_SYSEVENT_SUSPEND_PHASE0.
|
| ScePower |
1 |
0x10000 -> 0x1000F |
SCE_KERNEL_SYSEVENT_RESUME_PHASE0.
|
| ScePower |
1 |
0x40000 |
SCE_KERNEL_SYSEVENT_RESUME_MELT_TIME. before sceKernelCpuResumeIntr.
|
| ScePower |
1 |
0x100000 |
SCE_KERNEL_SYSEVENT_RESUME_PHASE1_START. after sceKernelCpuResumeIntr.
|
| ScePower |
1 |
0x100001 |
SCE_KERNEL_SYSEVENT_RESUME_PHASE1_MAIN.
|
| ScePower |
1 |
0x100002 |
SCE_KERNEL_SYSEVENT_RESUME_PHASE1_END. (this is a guessed name)
|
| ScePower |
1 |
0x400000 |
SCE_KERNEL_SYSEVENT_RESUME_COMPLETED
|
Handler
SceSysmemForKernel
SceSysmemForKernel_A7D44B50
| Version |
NID
|
| 0.931.010-1.692.000 |
0xA7D44B50
|
| 1.800.071-3.740.011 |
not present
|
A guessed name is sceKernelSetSysmemFuncForKernel.
Used by SceKernelSSProxy's module_start to register a function that just calls SMC 0x10E (BusErrorClear).
The registered function is used internally by #sceKernelPhysicalMemReadForKernel and #sceKernelPhysicalMemWriteForKernel.
int SceSysmemForKernel_A7D44B50(void* pBusErrorClearFunc);
sceKernelSysmemModuleStartAfterProcessmgrForKernel
| Version |
NID
|
| 3.600.011-3.610.011 |
0xE7938BFB
|
| 3.630.011-3.740.011 |
0x4E74DA48
|
Temp name was sceKernelInitProcessMemoryForKernel.
Used by SceProcessmgr.
int sceKernelSysmemModuleStartAfterProcessmgrForKernel(void);
sceKernelSysmemCleanerForKernel
| Version |
NID
|
| 3.60-3.61 |
0x43E81C4B
|
| 3.63 |
0x50980298
|
Only implemented in sysdbg build.
int sceKernelSysmemCleanerForKernel(void);
sceKernelStrnlenFromUserForKernel
| Version |
NID
|
| 0.931 |
0x9BC3DEAC
|
| 3.60 |
not present
|
SceSize sceKernelStrnlenFromUserForKernel(const char *s, SceSize maxlen);
sceKernelPhysicalMemWriteForKernel
| Version |
NID
|
| 0.931.010-1.060.031 |
0x4B86A751
|
| 1.50-3.740.011 |
not present
|
Writes to physical address pdest using a pre-allocated memblock. Destination must belong into a hardcoded table describing physical ranges.
SceSSize sceKernelPhysicalMemWriteForKernel(SceUIntPAddr pdest, const void *src, SceSize size);
sceKernelPhysicalMemReadForKernel
| Version |
NID
|
| 0.931.010-1.060.031 |
0xF96E3AE2
|
| 1.50-3.740.011 |
not present
|
Temp name was memcpy_from_paddr.
Dest must be a virtual address and src must be a physical address. Returns copied size on success.
int sceKernelPhysicalMemReadForKernel(void *dest, const void *src, SceSize dest_size, SceSize src_size);
sceKernelCopyFromUser32DomainForKernel
| Version |
NID
|
| 0.931 |
0xD530399A
|
| 3.60 |
not present
|
int sceKernelCopyFromUser32DomainForKernel(SceUID pid, void *dst, const void *src, SceSize size);
sceKernelCopyToUserProcTextDomainForKernel
| Version |
NID
|
| 0.931-3.60 |
0x30931572
|
| 3.65 |
0x2995558D
|
Temp name was sceKernelRxMemcpyKernelToUserForPidForKernel, sceKernelProcCopyToUserRxForKernel.
Same as sceKernelCopyToUserProcDomain, but performs a DCache clean after the copy. Use this function if you want to write code in user pages.
This function is usually called when resolving stubs during a module loads. In 3.60, DACR is set to 0x15450FC3 instead of 0xFFFFFFFF.
SceInt32 sceKernelCopyToUserProcTextDomainForKernel(SceUID pid, void *uaddr, const void *kaddr, SceSize size);
sceKernelCopyToUserProcTextDomainForDBGPForKernel
| Version |
NID
|
| 3.60-3.61 |
0xE65EA709
|
| 3.63 |
0x4345C61F
|
int sceKernelCopyToUserProcTextDomainForDBGPForKernel(SceUID pid, void *dst, const void *src, SceSize length);
sceKernelCopyToUserTextDomainForKernel
| Version |
NID
|
| 3.60 |
0x67BAD5B4
|
| 3.65 |
0x5EF1DAAF
|
This is a guessed name. Temp name was sceKernelMemcpyToUserRxForKernel, sceKernelCopyToUserRxForKernel.
Similar to sceKernelCopyToUserProcTextDomain, but performed in the current address space.
In FW 3.60, sceKernelCopyToUserProcTextDomain calls this function to perform the copy after changing address space.
SceInt32 sceKernelCopyToUserTextDomainForKernel(void *dst, const void *src, SceSize len);
sceKernelCopyToUserDomainForKernel
| Version |
NID
|
| 0.931.010 |
Not present
|
| 3.60-3.61 |
0xA6F95838
|
| 3.63 |
0x499A9FFF
|
This is a guessed name. Temp name was sceKernelMemcpyToUserRoForKernel, sceKernelCopyToUserRoForKernel.
Similar to sceKernelCopyToUserTextDomain, but doesn't perform any DCache clean.
Uses the same DACR, 0x15450FC3, for the copy.
int sceKernelCopyToUserDomainForKernel(void *dst, const void *src, SceSize len);
sceKernelRegisterClassForKernel
| Version |
NID
|
| 0.990 |
0x11761B77
|
| 3.60 |
not present
|
sceKernelFindClassByNameForKernel
| Version |
NID
|
| 3.60 |
0x62989905
|
| 3.65 |
0x7D87F706
|
int sceKernelFindClassByNameForKernel(const char *name, SceClass **ppClass);
sceKernelGetUIDHeapClassForKernel
| Version |
NID
|
| 3.60-3.61 |
0x4CCA935D
|
| 3.63 |
0x7C878E94
|
SceClass *sceKernelGetUIDHeapClassForKernel(void);
sceKernelGetUIDMemBlockClassForKernel
| Version |
NID
|
| 3.60-3.61 |
0xAF729575
|
| 3.63 |
0x86681B64
|
SceClass *sceKernelGetUIDMemBlockClassForKernel(void);
sceKernelGetUIDDLinkClassForKernel
| Version |
NID
|
| 0.990-3.610.011 |
0xC105604E
|
| 3.630.011-3.740.011 |
0xE4193EB6
|
SceClass *sceKernelGetUIDDLinkClassForKernel(void);
sceKernelGetUIDAddressSpaceClassForKernel
| Version |
NID
|
| 3.60-3.61 |
0xAF180A3F
|
| 3.63 |
0x99D3BF76
|
This is a guessed name.
SceClass *sceKernelGetUIDAddressSpaceClassForKernel(void);
sceKernelGetUIDPartitionClassForKernel
| Version |
NID
|
| 3.60-3.61 |
0x2791F109
|
| 3.63 |
0x5C0FC6BE
|
This is a guessed name.
SceClass *sceKernelGetUIDPartitionClassForKernel(void);
sceUIDDLinkClassInitForKernel
| Version |
NID
|
| 3.60-3.61 |
0x21285F40
|
| 3.63 |
0x7CDB7655
|
Temp name was sceKernelCreateClassForKernel, sceUIDClassInitClassForKernel.
Calls sceUIDClassInitClassForDriver.
int sceUIDDLinkClassInitForKernel(SceClass *pClass, const char *name, SceClass *subclass, SceSize itemsize, void *cstr, void *dstr);
sceUIDClassGetClassInfoAllForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.60-3.61 |
0xC0BF149E
|
| 3.63 |
0x100B4029
|
This is a guessed name (ForDriver function name and NID changed at some point before 1.69). Temp name was sceKernelGetRegisterClassInfoForKernel.
typedef struct SceClassInfo {
SceSize size;
SceClass *pClass;
SceClass *pSubClass;
const char *name;
} SceClassInfo;
int sceUIDClassGetClassInfoAllForKernel(SceClassInfo *vector, SceUInt32 maxNumClass, SceUInt32 *pNumClassInBuf);
sceKernelCreateAddressSpaceForKernel
| Version |
NID
|
| 0.990-3.60 |
0x4A3737F0
|
| 3.65 |
0x8EE89D2C
|
// type: 0x10000001 (user AS)
// name: maybe titleid
SceUID sceKernelCreateAddressSpaceForKernel(SceUID pid, const char *name, SceUInt32 type, SceKernelCreateAddressSpaceOpt *pOpt);
sceKernelDeleteAddressSpaceForKernel
| Version |
NID
|
| 0.931-3.60 |
0xF2D7FE3A
|
| 3.65 |
0x4A2E421D
|
int sceKernelDeleteAddressSpaceForKernel(SceUID guid);
sceKernelAddressSpaceSetNameForKernel
| Version |
NID
|
| 0.990-1.50 |
not present
|
| 3.60 |
0x7BD56D6D
|
| 3.65 |
0xCEBC4963
|
Used by SceProcessmgr.
int sceKernelAddressSpaceSetNameForKernel(SceUID guid, const char *name);
sceKernelAddressSpaceSetPhyMemPartForKernel
| Version |
NID
|
| 0.931-3.60 |
0x67955EE9
|
| 3.65 |
0x7DF07D60
|
int sceKernelAddressSpaceSetPhyMemPartForKernel(SceUID guid, SceUInt32 index, SceKernelPhyMemPart *pPhyMemPart);
sceKernelAddressSpaceCtrSetObjectHeapForKernel
| Version |
NID
|
| 3.60-3.61 |
0xFC74A355
|
| 3.63 |
0xFA348CB1
|
sceKernelAddressSpaceFreeAllMemBlockForKernel
| Version |
NID
|
| 0.931-3.60 |
0x89CE1F31
|
| 3.65 |
0x36159CF5
|
int sceKernelAddressSpaceFreeAllMemBlockForKernel(SceUID guid);
sceKernelAddressSpaceUnmapForKernel
| Version |
NID
|
| 0.931-3.61 |
0xCE72839E
|
| 3.63 |
0x73C38695
|
// For FW 0.931:
int sceKernelAddressSpaceUnmapForKernel(SceUID uid, int a2, void* addr, SceSize size);
// For FW 3.60:
int sceKernelAddressSpaceUnmapForKernel(SceUID uid, int a2, SceUInt32 domain, void* addr, SceSize size);
Example: 0.990 SceSysStateMgr:
sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF7, 0x51000000, 0x1000000);
sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF0, 0xE0000000, 0x8000000);
sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF0, 0x1A000000, 0x100000);
Example: 3.60 SceSysStateMgr:
sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF7, 0xC, 0x51000000, 0x1000000);
sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF0, 0xC, 0xE0000000, 0x8000000);
sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF0, 0xC, 0x1A000000, 0x100000);
sceKernelAddressSpaceSetProcessForKernel
| Version |
NID
|
| 0.990-3.61 |
0x2476B90F
|
| 3.63 |
0x5E772E19
|
int sceKernelAddressSpaceSetProcessForKernel(SceUID address_space, SceUID pid);
sceKernelAddressSpaceChangeMMUContextForKernel
| Version |
NID
|
| 0.920.050-3.610.011 |
0x653B0849
|
| 3.630.011 |
0x20D01AFA
|
Changes to the MMU context (CONTEXTIDR.ASID + DACR + TTBR1) of target address space.
SceInt32 sceKernelAddressSpaceChangeMMUContextForKernel(SceUID address_space);
sceKernelAddressSpaceGetMMUContextForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.10-3.61 |
0x9894B9E1
|
| 3.63 |
0xA7C91D62
|
This is a guessed name.
int sceKernelGetAddressSpaceMMUContextForKernel(SceUID address_space, SceKernelMMUContext **ppCtx);
SceSysmemForKernel_FBEF93AA
| Version |
NID
|
| 0.931 |
not present
|
| 0.990-3.01 |
0xFBEF93AA
|
| 3.10-3.74 |
not present
|
Maybe gets MMU context. Maybe was replaced by #sceKernelAddressSpaceGetMMUContextForKernel.
int SceSysmemForKernel_FBEF93AA(SceUID address_space, void* pOut);
sceKernelAddressSpaceGetTimerVbaseForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 0.996.090-3.610.011 |
0x7D92B2D3
|
| 3.630.011-3.740.011 |
0xFA1A73DD
|
int sceKernelAddressSpaceGetTimerVbaseForKernel(SceUID address_space, void **ppBase);
sceKernelGetAddressSpaceInfoForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0x4492421F
|
| 3.630.011-3.740.011 |
0xC3EF4055
|
This is a guessed name..
int sceKernelGetAddressSpaceInfoForKernel(SceUID address_space, SceKernelAddressSpaceInfo *pInfo);
sceKernelAddressSpaceGetMMUL1InfoForKernel
| Version |
NID
|
| 0.931-0.990 |
0x671A3444
|
| 3.60 |
not present
|
Gets information about a L1PT entry in the translation table of an address space. Pass the virtual address of the target entry maps as addr.
SceInt32 sceKernelAddressSpaceGetMMUL1InfoForKernel(SceUID address_space, const void *addr, SceKernelMMUL1Info *pInfo);
sceKernelAddressSpaceGetMMUL2InfoForKernel
| Version |
NID
|
| 0.931 |
0xCB6E1C80
|
| 3.60 |
not present
|
int sceKernelAddressSpaceGetMMUL2InfoForKernel(SceUID address_space, const void *addr, void *pInfo);
sceKernelAddressSpaceGetMMUL1AllInfoForKernel
| Version |
NID
|
| 0.931-0.990 |
0x1A898F2E
|
| 3.60 |
not present
|
typedef struct SceKernelAddressSpaceMMUL1AllInfo { // size is 0x400C on FW 0.931
SceSize size; // Size of this structure
char unk[0x4008];
} SceKernelAddressSpaceMMUL1AllInfo;
int sceKernelAddressSpaceGetMMUL1AllInfoForKernel(SceUID address_space, SceKernelAddressSpaceMMUL1AllInfo *pInfo);
sceKernelAddressSpaceGetMMUL2AllInfoForKernel
| Version |
NID
|
| 0.931 |
0x1E1AA29B
|
| 3.60 |
not present
|
typedef struct SceKernelAddressSpaceMMUL2AllInfo { // size is 0x404 on FW 0.931
SceSize size; // Size of this structure
char unk[0x400];
} SceKernelAddressSpaceMMUL2AllInfo;
int sceKernelAddressSpaceGetMMUL2AllInfoForKernel(SceUID address_space, const void *addr, SceKernelAddressSpaceMMUL2AllInfo *pInfo);
sceKernelAddressSpaceGetMemoryTypeForKernel
| Version |
NID
|
| 0.990-3.61 |
0xCC7BB240
|
| 3.63 |
0x0B5A3E93
|
int sceKernelAddressSpaceGetMemoryTypeForKernel(uint32_t *memory_type);
sceKernelAddressSpaceVAtoPAForKernel
| Version |
NID
|
| 0.990-3.61 |
0xF2179820
|
| 3.63 |
0x1BAF8C0B
|
int sceKernelAddressSpaceVAtoPAForKernel(SceAddressSpace *pAS, SceUInt32 mode, void *pVA, void **pPA);
sceKernelAddressSpaceVARangeToPAVectorForKernel
| Version |
NID
|
| 0.990-3.61 |
0xF7250E6C
|
| 3.63 |
0xA541E0CF
|
int sceKernelAddressSpaceVARangeToPAVectorForKernel(SceUID address_space, const SceKernelVARange *vRange, SceKernelPAVector *pPAV);
sceKernelAddressSpaceGetPhyMemPartByIndexForKernel
| Version |
NID
|
| 3.60-3.61 |
0x3F74E45C
|
| 3.63 |
0x47C55DCC
|
int sceKernelAddressSpaceGetPhyMemPartByIndexForKernel(SceUInt32 index, void **result);
sceKernelAddressSpaceGetPartitionByIndexForKernel
| Version |
NID
|
| 3.60-3.61 |
0x210DB518
|
| 3.63 |
0x1F84FE44
|
This is a guessed name.
SceUIDPartitionObject *sceKernelAddressSpaceGetPartitionByIndexForKernel(void *pAS, int pindex);
sceKernelAddressSpaceGetMemBlockInfoByAddrForKernel
| Version |
NID
|
| 3.60-3.61 |
0x46A5CB84
|
| 3.63 |
0xC3F9607E
|
int sceKernelAddressSpaceGetMemBlockInfoByAddrForKernel(SceUID asid, int a2, int a3, int a4);
sceKernelCheckAddressSpaceForKernel
| Version |
NID
|
| 3.60-3.61 |
0x8B07BB52
|
| 3.63 |
0x16A54BFE
|
This is a guessed name.
int sceKernelCheckAddressSpaceForKernel(void);
sceKernelGetKernelAddressSpaceForKernel
| Version |
NID
|
| 1.500.151-3.610.011 |
0xC38B4D52
|
| 3.630.011-3.740.011 |
0x2E5CC243
|
void* sceKernelGetKernelAddressSpaceForKernel(void);
sceKernelCreatePhyMemPartForKernel
| Version |
NID
|
| 0.931-3.61 |
0x2E36E0C4
|
| 3.63 |
0xA2DFA383
|
Calls #sceKernelCreatePhyMemPartByPbaseForKernel with pbase = 0.
int sceKernelCreatePhyMemPartForKernel(const char *name, int type, SceSize psize, SceKernelPhyMemPart **pPhyMemPart);
sceKernelCreatePhyMemPartByPbaseForKernel
| Version |
NID
|
| 0.931-3.61 |
0x63D83911
|
| 3.63 |
0x5CC56F87
|
/*
type
ORed values:
0x00002 : Shell
0x00004 : Game
0x00005 : PhyCont
0x00060 : CDialog
0x10000 : Lpddr2Main
0x30000 : Cdram
seen values:
0x10002 : ShellLpddr2Main (shared)
0x10004 : GameLpddr2Main
0x10005 : PhyContLpddr2Main
0x10064 : GameCDialogLpddr2Main
0x30002 : ShellCdram
0x30004 : GameCdram
*/
int sceKernelCreatePhyMemPartByPbaseForKernel(const char *name, int type, void *pbase, SceSize psize, SceKernelPhyMemPart **ppPhyMemPart);
sceKernelDeletePhyMemPartForKernel
| Version |
NID
|
| 0.931-3.61 |
0x2AEA9E09
|
| 3.63 |
0x3F72B2E7
|
int sceKernelDeletePhyMemPartForKernel(SceKernelPhyMemPart *pPhyMemPart);
sceKernelGetPhyMemPartAllForKernel
| Version |
NID
|
| 0.931-3.61 |
0x2F6F9C2C
|
| 3.63 |
0x021053DD
|
int sceKernelGetPhyMemPartAllForKernel(SceUInt32 vis_level, SceUID *pVector, SceSize vectorSize, SceUInt32 *ret_num);
sceKernelGetPhyMemPartInfoForKernel
| Version |
NID
|
| 0.931-0.990 |
0x67849418
|
| 3.60 |
not present
|
int sceKernelGetPhyMemPartInfoForKernel(SceKernelPhyMemPart *pPhyMemPart, SceKernelPhyMemPartInfo *pInfo);
sceKernelGetPhyMemPartInfoByIDForKernel
| Version |
NID
|
| 0.931-3.61 |
0xF4FA0575
|
| 3.63 |
0x029F5989
|
typedef struct SceKernelPhyMemPartInfo { // size is 0x44 on FW 0.931-0.990
SceSize size; // Size of this structure
uint32_t unk_4; // some size or address
uint32_t unk_8; // some size or address
char unk1[0xC];
char *name; // name, maybe pointer or array
char unk2[0x24];
} SceKernelPhyMemPartInfo;
int sceKernelGetPhyMemPartInfoByIDForKernel(SceUID guid, SceKernelPhyMemPartInfo *pInfo);
sceKernelGetPhyMemPartInfoCoreForKernel
| Version |
NID
|
| 0.931 |
not present
|
| 0.990-3.61 |
0x3650963F
|
| 3.63-3.65 |
0xB9B69700
|
int sceKernelGetPhyMemPartInfoCoreForKernel(SceKernelPhyMemPart *pPhyMemPart, ScePhyMemPartInfoCore *pInfo);
sceKernelGetPhyMemPartInfoForDebuggerForKernel
| Version |
NID
|
| 0.990-1.50 |
not present
|
| 3.60-3.61 |
0x54E85275
|
| 3.63 |
0x73E03A38
|
info size is 0xB0-bytes.
int sceKernelGetPhyMemPartInfoForDebuggerForKernel(SceKernelPhyMemPart *pPhyMemPart, void *pInfo);
sceKernelGrowPhyMemPartForKernel
| Version |
NID
|
| 0.990-3.61 |
0x6B3F4102
|
| 3.63 |
0x5B434019
|
Calls sceKernelGrowPhyMemPartWithFlagsForKernel with flags = 0.
int sceKernelGrowPhyMemPartForKernel(SceKernelPhyMemPart *pPhyMemPart, SceSize psize);
sceKernelGrowPhyMemPartByPbaseForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.60-3.61 |
0x775AA5E3
|
| 3.63 |
0x36FDA794
|
Temp name was sceKernelGrowPhyMemPartWithFlagsForKernel.
Grows physical memory partition with pbase.
int sceKernelGrowPhyMemPartByPbaseForKernel(SceKernelPhyMemPart *pPMP, SceUIntPtr pbase, SceSize psize);
sceKernelGetGrownPhyMemPartSizeForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.60-3.61 |
0x4D809B47
|
| 3.63 |
0xBC36755F
|
This is a guessed name.
Returns a global variable. This global variable is either a size or offset or address and is incremented by sceKernelGrowPhyMemPartWithFlagsForKernel.
int sceKernelGetGrownPhyMemPartSizeForKernel(void);
SceSysmemForKernel_153A08A0
| Version |
NID
|
| 0.990-3.61 |
0x153A08A0
|
| 3.63 |
0x6D563733
|
Adds 1 to pPhyMemPart->nClient using SceSysmem#sceKernelCpuAtomicAddAndGet32ForDriver, and returns its new value.
SceUInt32 SceSysmemForKernel_153A08A0(SceKernelPhyMemPart* pPhyMemPart);
sceKernelAllocPhyPageForKernel
| Version |
NID
|
| 0.990-3.61 |
0xD449547B
|
| 3.63-3.74 |
0xB488C82E
|
Temp name was sceKernelPhyMemPartAllocPhyPageForKernel.
int sceKernelAllocPhyPageForKernel(void *pPhyMemPart, SceSize size, void **ppPhyPage);
sceKernelResetPhyMemPartForKernel
| Version |
NID
|
| 3.60 |
0xEEB85560
|
| 3.65 |
0x9B7E673F
|
Used by SceProcessmgr#sceKernelResetGameBudgetForKernel.
Called with same argument as #sceKernelSetPhyPartGameForKernel.
int sceKernelResetPhyMemPartForKernel(SceKernelPhyMemPart *pPhyMemPart);
sceKernelShowPhyMemPartForKernel
| Version |
NID
|
| 1.500.151-3.61 |
0x5C257482
|
| 3.63-3.65 |
0x8F0B5536
|
Prints information about a Physical Memory Partition.
Only implemented in sysdbg build.
SceInt32 sceKernelShowPhyMemPartForKernel(SceKernelPhyMemPart *pPMP);
sceKernelFreePhyPageForKernel
| Version |
NID
|
| 0.990-3.61 |
0x00BC5B4A
|
| 3.63 |
0x193A9D2F
|
int sceKernelFreePhyPageForKernel(void *pPhyMemPart, void *pPage);
sceKernelSetPhyMemPartHookForKernel
| Version |
NID
|
| 3.60-3.61 |
0x17F1AA22
|
| 3.63 |
0x31FA81B5
|
This is a guessed name.
Only implemented in sysdbg build.
int sceKernelSetPhyMemPartHookForKernel(void *pHook);
sceKernelSetPhyMemPartLogCallbackForKernel
| Version |
NID
|
| 3.60-3.61 |
0x72E7BFAC
|
| 3.63 |
0x93D0A183
|
This is a guessed name.
Only implemented in sysdbg build.
int sceKernelSetPhyMemPartLogCallbackForKernel(void *pCallbacks);
sceKernelAllocKernelHeapForKernel
| Version |
NID
|
| 0.931-0.990 |
0x432EADA6
|
| 3.60 |
not present
|
int sceKernelAllocKernelHeapForKernel(SceSize size);
sceKernelGetHeapInfoForKernel
| Version |
NID
|
| 0.931-3.61 |
0x91733EF4
|
| 3.63 |
0x17DB1A0A
|
// 0.931-0.990:
int sceKernelGetHeapInfoForKernel(SceUID heapid, SceKernelHeapInfo *pInfo);
// 3.60:
int sceKernelGetHeapInfoForKernel(SceUID heapid, SceUInt32 level, SceKernelHeapInfo *pInfo);
sceKernelGetHeapInfoAllForKernel
| Version |
NID
|
| 0.990-3.61 |
0x48D87E17
|
| 3.63 |
0x1380E144
|
This is a guessed namee.
int sceKernelGetHeapInfoAllForKernel(SceUInt32 vis_level, void *pInfo, SceSize infoSize, SceUInt32 *pnInfo);
sceKernelGetHeapInfoAllChunkForKernel
| Version |
NID
|
| 0.931-0.990 |
0xAC4C0EB1
|
| 3.60 |
not present
|
int sceKernelGetHeapInfoAllChunkForKernel(SceUID heapid, SceKernelHeapInfo *pInfo);
sceKernelGetHeapInfoByPtrForKernel
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60-3.61 |
0x68451777
|
| 3.63 |
0x80A75187
|
Temp name was sceKernelGetHeapInfoByPointerForKernel.
int sceKernelGetHeapInfoByPtrForKernel(void *pObject, SceKernelHeapInfo *pInfo);
sceKernelReallocHeapMemoryForKernel
| Version |
NID
|
| 3.60-3.61 |
0xFDC0EA11
|
| 3.63 |
0x8EE8B917
|
This is a guessed name.
void *sceKernelReallocHeapMemoryForKernel(SceUID heapid, void *ptr, SceSize size);
sceKernelHeapEnableModeForKernel
| Version |
NID
|
| 3.60-3.61 |
0xF1433852
|
| 3.63 |
0x0B36F7F9
|
This is a guessed name.
int sceKernelHeapEnableModeForKernel(SceUID heapid, SceUInt32 mode);
sceKernelHeapDiableModeForKernel
| Version |
NID
|
| 3.60-3.61 |
0x71869119
|
| 3.63 |
0x6E82D5A0
|
This is a guessed name.
int sceKernelHeapDiableModeForKernel(SceUID heapid, SceUInt32 mode);
sceKernelHeapMemoryGetAllocateSizeForKernel
| Version |
NID
|
| 3.60-3.61 |
0x60735311
|
| 3.63 |
0xD124075A
|
This is a guessed name.
SceSize sceKernelHeapMemoryGetAllocateSizeForKernel(void *ptr);
sceKernelPrintHeapSegmentListForKernel
| Version |
NID
|
| 3.60-3.61 |
0x2EE50533
|
| 3.63 |
0x82059651
|
Only implemented in sysdbg build.
int sceKernelPrintHeapSegmentListForKernel(SceUID heap_guid);
sceKernelGetKernelFixedHeapForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0x68CB9266
|
| 3.630.000-3.740.011 |
0x3717C322
|
Temp name was sceKernelGetFixedHeapBySizeForKernel.
SceUIDFixedHeapObject *sceKernelGetKernelFixedHeapForKernel(SceSize size);
sceKernelGetFixedHeapInfoForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0x4FA4A624
|
| 3.630.000-3.740.011 |
0x890D9160
|
int sceKernelGetFixedHeapInfoForKernel(SceUID heapid, SceKernelFixedHeapInfo *pInfo);
sceKernelGetFixedHeapInfoByPointerForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0x219E90FD
|
| 3.630.000-3.740.011 |
0xA24D2C8D
|
int sceKernelGetFixedHeapInfoByPointerForKernel(SceUIDFixedHeapObject *pFixedHeap, SceKernelFixedHeapInfo *pInfo);
sceKernelFixedHeapSetHookForKernel
| Version |
NID
|
| 0.931.010-1.06 |
not present
|
| 1.500.151-3.610.011 |
0x8C8E2DD1
|
| 3.630.000-3.740.011 |
0xD4511A52
|
int sceKernelFixedHeapSetHookForKernel(SceUID heapid, void *hookdata);
sceKernelFixedHeapAllocObjectForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0xC8672A3D
|
| 3.630.000-3.740.011 |
0xABA5313C
|
This is a guessed name.
void *sceKernelFixedHeapAllocObjectForKernel(SceUIDFixedHeapObject *pFixedHeap);
sceKernelFixedHeapFreeObjectForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0x571660AA
|
| 3.630.000-3.740.011 |
0x93344755
|
This is a guessed name.
int sceKernelFixedHeapFreeObjectForKernel(SceUIDFixedHeapObject *pFixedHeap, void *pObject);
sceKernelFixedHeapSetHookByPointerForKernel
| Version |
NID
|
| 0.931.010-2.12 |
not present
|
| 2.500.071-3.610.011 |
0x3EC2345B
|
| 3.630.000-3.740.011 |
0x811C452B
|
This is a guessed name.
int sceKernelFixedHeapSetHookByPointerForKernel(SceUIDFixedHeapObject *pFixedHeap, void *a2);
sceKernelNameHeapInsertForKernel
| Version |
NID
|
| 0.990-3.61 |
0x08AB3DAE
|
| 3.63 |
0xB628B46B
|
int sceKernelNameHeapInsertForKernel(const char *name, int flags, char **result);
sceKernelNameHeapDeleteForKernel
| Version |
NID
|
| 0.990-3.61 |
0x9C7B62AB
|
| 3.63 |
0x634D0D0C
|
name max length is 31 characters.
int sceKernelNameHeapDeleteForKernel(const char *name, SceUInt32 flag);
sceKernelNameHeapLinkForKernel
| Version |
NID
|
| 3.60-3.61 |
0xEC1293D2
|
| 3.63 |
0x40965FD1
|
int sceKernelNameHeapLinkForKernel(const char *name, int flags, void **result);
sceKernelNameHeapFindForKernel
| Version |
NID
|
| 3.60-3.61 |
0xB543A23C
|
| 3.63 |
0x9F1A9AA6
|
Search for name in one of the NameHeaps.
If found, a pointer to the heap's copy of name is returned in ppHeapName.
/* Search in the "unique" NameHeap (contains name of OPENABLE objects) when this flag is set */
#define SCE_KERNEL_NAME_HEAP_ATTR_UNIQUE (0x2u)
int sceKernelNameHeapFindForKernel(const char *name, uint32_t attr, char **ppHeapName);
sceKernelNameHeapGetKeyForKernel
| Version |
NID
|
| 3.60-3.61 |
0x942D15FC
|
| 3.63 |
0xEB48682E
|
This is a guessed name.
Calculates the MurmurHash3 hash of key. Used to get UID by name.
SceUInt32 sceKernelNameHeapGetKeyForKernel(const char *key, SceSize len, SceUInt32 seed);
sceKernelNameHeapGetInfoForKernel
| Version |
NID
|
| 0.931.010-0.990 |
not present
|
| 0.996.090-3.610.011 |
0xE443253B
|
| 3.630.000-3.740.011 |
0x01194C2E
|
int sceKernelNameHeapGetInfoForKernel(void *pInfo);
sceKernelCreateObjectHeapForKernel
| Version |
NID
|
| 3.60-3.61 |
0x36830F46
|
| 3.63 |
0x9D8F3BE8
|
int sceKernelCreateObjectHeapForKernel(SceUID pid, SceBool a2, SceFixedHeapHook *pHeapHook, SceKernelObjectHeap **ppObjectHeap);
sceKernelCreateObjectHeapWithHeapForKernel
| Version |
NID
|
| 3.60-3.61 |
0x7FD757FE
|
| 3.63 |
0x660DC18A
|
This is a guessed name.
int sceKernelCreateObjectHeapWithHeapForKernel(SceKernelObjectHeap *pObjectHeap, SceUID pid, SceUID heapid);
sceKernelDeleteObjectHeapForKernel
| Version |
NID
|
| 3.60-3.61 |
0x080BA2F3
|
| 3.63 |
0x2F526AB8
|
This is a guessed name.
int sceKernelDeleteObjectHeapForKernel(SceKernelObjectHeap *pObjectHeap);
sceKernelObjectHeapAllocForKernel
| Version |
NID
|
| 3.60-3.61 |
0x7FDF483A
|
| 3.63 |
0xEBFC8E10
|
This is a guessed name.
void *sceKernelObjectHeapAllocForKernel(SceKernelObjectHeap *pObjectHeap, SceSize size);
sceKernelObjectHeapFreeForKernel
| Version |
NID
|
| 3.60-3.61 |
0x131CEF52
|
| 3.63 |
0x17D3D4BD
|
This is a guessed name.
int sceKernelObjectHeapFreeForKernel(SceKernelObjectHeap *pObjectHeap, SceSize size, void *pObject);
sceKernelObjectHeapSetResourceLimitForKernel
| Version |
NID
|
| 3.60-3.61 |
0x98E6905B
|
| 3.63 |
0xDFA1EB57
|
int sceKernelObjectHeapSetResourceLimitForKernel(int a1, int a2, int a3, int a4, int a5);
sceKernelObjectHeapSetResourceLimitAllForKernel
| Version |
NID
|
| 3.60-3.61 |
0x5409397F
|
| 3.63 |
0x067F2550
|
int sceKernelObjectHeapSetResourceLimitAllForKernel(SceKernelObjectHeap *pObjectHeap, int a2, int a3);
sceKernelObjectHeapSetSizeForKernel
| Version |
NID
|
| 3.60-3.61 |
0x6427560F
|
| 3.63 |
0xB591E49F
|
This is a guessed name.
int sceKernelObjectHeapSetSizeForKernel(SceUInt32 index, SceUInt32 size);
sceKernelGetObjectHeapForKernel
| Version |
NID
|
| 3.60-3.61 |
0x3B75CBED
|
| 3.63 |
0x857408DA
|
This is a guessed name.
SceKernelObjectHeap *sceKernelGetObjectHeapForKernel(void);
sceKernelGetSharedObjectHeapForKernel
| Version |
NID
|
| 3.60-3.61 |
0xBF0294E4
|
| 3.63 |
0x791D6205
|
This is a guessed name.
SceKernelObjectHeap *sceKernelGetSharedObjectHeapForKernel(void);
SceSysmemForKernel_B8D769C6
| Version |
NID
|
| 3.60-3.61 |
0xB8D769C6
|
| 3.63 |
0xDBEACE2C
|
int SceSysmemForKernel_B8D769C6(SceKernelObjectHeap *pObjectHeap, void *info);
sceUIDCreateEntryHeapForKernel
| Version |
NID
|
| 0.990-3.60 |
0x19CAEF35
|
| 3.65 |
0x89BEF058
|
int sceUIDCreateEntryHeapForKernel(SceUID pid, SceUID heap_guid);
sceUIDDeleteEntryHeapForKernel
| Version |
NID
|
| 0.990-3.60 |
0xF0C3FCFC
|
| 3.65 |
0xF6D09BD9
|
int sceUIDDeleteEntryHeapForKernel(SceUID guid);
sceUIDRegisterForKernel
| Version |
NID
|
| 0.931-0.990 |
0x59162CD7
|
| 3.60 |
not present
|
Calls #sceGUIDRegisterForKernel.
int sceUIDRegisterForKernel(SceClass *pClass, const char *name, SceKernelObject *pObject);
sceUIDObjectSetClassForKernel
| Version |
NID
|
| 0.931-0.990 |
0x226DE851
|
| 3.60 |
not present
|
int sceUIDObjectSetClassForKernel(SceKernelObject *pObject, SceClass *pClass);
sceUIDGetUIDVectorByClassForKernel
| Version |
NID
|
| 0.931.010-1.060.031 |
0xA2F03233
|
| 1.500.151-3.740.011 |
not present
|
Calls #sceGUIDGetUIDVectorByClassForKernel.
sceUIDGetProcUIDVectorByClassForKernel
| Version |
NID
|
| 0.990.000-1.060.031 |
0x51C08396
|
| 1.500.151-3.740.011 |
not present
|
sceUIDReferObjectWithLevelForKernel
| Version |
NID
|
| 0.990 |
0xF79B52B2
|
| 3.60 |
not present
|
int sceUIDReferObjectWithLevelForKernel(SceUID uid, SceUInt32 level, SceKernelObject **ppEntry);
sceUIDGetObjectForKernel
| Version |
NID
|
| 0.931-0.990 |
0xC4893914
|
| 3.60 |
not present
|
Calls #sceGUIDGetObjectForDriver.
int sceUIDGetObjectForKernel(SceUID uid, SceKernelObject **ppEntry);
sceUIDtoObjectForKernel
| Version |
NID
|
| 0.990-3.60 |
0xED221825
|
| 3.65 |
0xFA6C098C
|
Calls SceSysmem#sceGUIDGetObjectForDriver.
SceKernelObject *sceUIDtoObjectForKernel(SceUID uid);
sceUIDClassIsSubclassForKernel
| Version |
NID
|
| 0.990-1.691 |
not present (in ForDriver)
|
| 3.60-3.61 |
0x48750A5A
|
| 3.63 |
0x7F7D5C4A
|
This is a guessed name. Temp name was sceUIDClassIsWithinSubclassChainForKernel.
SceBool sceUIDClassIsSubclassForKernel(SceClass *pClass, SceClass *pTargetClass);
sceUIDEntryHeapCloseAllPUIDForKernel
| Version |
NID
|
| 0.931-3.60 |
0xFAF96C1F
|
| 3.65 |
0x133024A5
|
int sceUIDEntryHeapCloseAllPUIDForKernel(SceUID guid);
sceKernelUIDEntryHeapGetInfoForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.60-3.61 |
0x686AA15C
|
| 3.63 |
0xCCD47B97
|
Official name may also be sceUIDEntryHeapGetInfoForKernel (seen in 4.00).
typedef struct SceUIDEntryHeapInfo {
SceSize size; //<! Size of this structure (0x18)
SceSize objectSize;
SceSize totalHeapSize;
SceSize totalItemCount;
SceSize unk10;
SceSize unk14;
} SceUIDEntryHeapInfo;
SceInt32 sceKernelUIDEntryHeapGetInfoForKernel(SceUID entryHeapId, SceUIDEntryHeapInfo *pInfo);
sceUIDEntryHeapSetHookForKernel
| Version |
NID
|
| 3.60-3.61 |
0xCD985AEB
|
| 3.63 |
0x666C878F
|
?Implemented in internal system software.? Not implemented in external system software.
int sceUIDEntryHeapSetHookForKernel(SceUID guid, void *pHook);
sceUIDEntryGetNameForKernel
| Version |
NID
|
| 3.60-3.61 |
0x114E6476
|
| 3.63 |
0x5FD15C6E
|
This is a guessed name.
char *sceUIDEntryGetNameForKernel(SceUIDEntry *pEntry);
sceUIDEntryGetLevelForKernel
| Version |
NID
|
| 3.60-3.61 |
0xC2F7D8A4
|
| 3.63 |
0x797C858B
|
This is a guessed name.
SceUInt16 sceUIDEntryGetLevelForKernel(SceUIDEntry *pEntry);
sceUIDEntryGetAttrForKernel
| Version |
NID
|
| 3.60-3.61 |
0x8FB73A29
|
| 3.63 |
0x17F12DCE
|
This is a guessed name.
SceUInt32 sceUIDEntryGetAttrForKernel(SceUIDEntry *pEntry);
sceUIDEntryGetLinkCountForKernel
| Version |
NID
|
| 3.60-3.61 |
0x876A7F44
|
| 3.63 |
0xF3DB2D71
|
This is a guessed name.
SceUInt8 sceUIDEntryGetLinkCountForKernel(SceUIDEntry *pEntry);
sceUIDEntryGetUIDForKernel
| Version |
NID
|
| 3.60-3.61 |
0x6BB6AF94
|
| 3.63 |
0x03A2CAF0
|
This is a guessed name.
SceUID sceUIDEntryGetUIDForKernel(SceUIDEntry *pEntry);
sceGUIDRegisterForKernel
| Version |
NID
|
| 0.990-3.61 |
0xAF42AAD5
|
| 3.63 |
0x6DB44A42
|
SceUID sceGUIDRegisterForKernel(SceClass *pClass, const char *name, SceKernelObject *pObject);
sceGUIDUnregisterForKernel
| Version |
NID
|
| 0.931-0.990 |
0xE79BBCF2
|
| 3.60 |
not present
|
int sceGUIDUnregisterForKernel(SceUID uid);
sceGUIDOpenByGUIDForKernel
| Version |
NID
|
| 0.990-3.61 |
0xCF53EEE4
|
| 3.63 |
0x89D33DF0
|
SceUID sceGUIDOpenByGUIDForKernel(SceUID guid);
sceGUIDNameForKernel
| Version |
NID
|
| 0.990.000-1.060.031 |
0x250EE289
|
| 1.50-3.740.011 |
not present
|
char *sceGUIDNameForKernel(SceUID uid);
sceGUIDtoClassForKernel
| Version |
NID
|
| 0.990-3.61 |
0x66636970
|
| 3.63 |
0x368F1C36
|
SceClass *sceGUIDtoClassForKernel(SceUID guid);
sceGUIDGetObjectWithClassForKernel
| Version |
NID
|
| 0.990-3.61 |
0x7ABFA9A7
|
| 3.63 |
0x0E43E113
|
Possible name are sceUIDGetObjectWithClassForKernel or sceUIDtoProcessForKernel.
int sceGUIDGetObjectWithClassForKernel(SceUID uid, SceClass *pClass, SceKernelObject **obj);
sceGUIDGetUIDVectorByClassForKernel
| Version |
NID
|
| 0.931.010-3.600.011 |
0xEC7D36EF
|
| 3.630.011-3.740.011 |
0x52137FA3
|
Copy UIDs to pVector by referring to all objects created by pClass.
/*
* nVector - maximum number of copied UIDs
* ret_num - number of retrieved UIDs
*/
int sceGUIDGetUIDVectorByClassForKernel(SceClass *pClass, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, SceUInt32 *ret_num);
sceGUIDGetUIDVectorWeakByClassForKernel
| Version |
NID
|
| 0.931.010-1.060.031 |
not present
|
| 1.500.151-3.610.011 |
0x59F577E8
|
| 3.630.011-3.740.011 |
0xE9957329
|
Copy UIDs to pVector by referring to all objects created by pClass.
/*
* nVector - maximum number of copied UIDs
* ret_num - number of retrieved UIDs
*/
int sceGUIDGetUIDVectorWeakByClassForKernel(SceClass *pClass, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, SceUInt32 *ret_num);
sceGUIDGetEntryForKernel
| Version |
NID
|
| 3.60-3.61 |
0x45F2A59C
|
| 3.63 |
0xFF464A49
|
int sceGUIDGetEntryForKernel(SceUID guid, SceUIDEntry **ppEntry);
sceGUIDGetEntryInfoAllForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0x2A79C51C
|
| 3.630.011-3.740.011 |
0x3BF0DE65
|
int sceGUIDGetEntryInfoAllForKernel(SceUInt32 vis_level, SceUID guid, SceUID *pVector, SceUInt32 nVector, void *pInfo);
sceGUIDGetEntryInfoClassForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0xE90CFD62
|
| 3.630.011-3.740.011 |
0x71E934DB
|
int sceGUIDGetEntryInfoClassForKernel(SceUID guid, SceClass *pClass, SceUInt32 vis_level, void *pInfoVector, SceUInt32 nVector, SceUInt32 *ret_num);
sceGUIDKernelCreateForKernel
| Version |
NID
|
| 0.990 |
0xE6FAD50A
|
| 3.60 |
not present
|
Create a GUID with default attribute (0x30000).
int sceGUIDKernelCreateForKernel(SceClass *pClass, const char *name, SceKernelObject **ppEntry);
sceGUIDKernelCreateWithAttrForKernel
| Version |
NID
|
| 0.990-3.61 |
0x53E1FFDE
|
| 3.63 |
0x6D26B066
|
Create a GUID with the specified attribute.
int sceGUIDKernelCreateWithAttrForKernel(SceClass *pClass, const char *name, SceUInt32 attr, SceKernelObject **ppEntry);
sceGUIDKernelCreateWithOptForKernel
| Version |
NID
|
| 0.990-0.995 |
not present
|
| 0.996-3.60 |
0xDF0288D7
|
| 3.65 |
0xFB6390CE
|
This is a guessed name. Temp name was sceKernelCreateUidObjForKernel, scePUIDKernelCreateWithAttrForKernel.
typedef struct SceGUIDKernelCreateOpt { // size is at least 0x20 on FW 3.60
SceUInt32 attr;
SceUInt32 field_4;
SceUID uid;
SceUID pid;
SceUInt32 field_10;
SceUInt32 classAttr;
SceUInt32 uidAttr;
SceUID pid2;
} SceGUIDKernelCreateOpt;
SceUID sceGUIDKernelCreateWithOptForKernel(SceClass *pClass, const char *name, SceGUIDKernelCreateOpt *pOpt, SceKernelObject **ppEntry);
sceGUIDGetVisibilityLevelForKernel
| Version |
NID
|
| 3.60-3.61 |
0xC69666C3
|
| 3.63 |
0x4E923101
|
SceUInt32 sceGUIDGetVisibilityLevelForKernel(SceUID guid);
sceGUIDSetVisibilityLevelForKernel
| Version |
NID
|
| 3.60-3.61 |
0xCB8D03C0
|
| 3.63 |
0xE8CC2166
|
Sets visibilityLevel into guid's GUIDEntry.
int sceGUIDSetVisibilityLevelForKernel(SceUID guid, int visibilityLevel);
sceGUIDFindByObjectForKernel
| Version |
NID
|
| 0.990-3.61 |
0x95ABFDC3
|
| 3.63 |
0xEC90AA11
|
SceUID sceGUIDFindByObjectForKernel(void *pObject);
sceGUIDFindByNameForKernel
| Version |
NID
|
| 3.60-3.61 |
0xCEBA8031
|
| 3.63 |
0xBDE00106
|
SceUID sceGUIDFindByNameForKernel(const char *name);
sceGUIDFindByNameAllForKernel
| Version |
NID
|
| 3.60-3.61 |
0x4B5C85AC
|
| 3.63 |
0xF49C0BE8
|
// return value: to reverse, should be either SceUID guid or void* pObj
SceUID sceGUIDFindByNameAllForKernel(const char *name);
sceGUIDGetPIDForKernel
| Version |
NID
|
| 3.60-3.61 |
0xCF5A2311
|
| 3.63 |
0xBD42A0FC
|
Returns Process ID for guid.
SceUID sceGUIDGetPIDForKernel(SceUID guid);
sceGUIDSetPIDForKernel
| Version |
NID
|
| 3.60-3.61 |
0x812E7A53
|
| 3.63 |
0x46DF8C8A
|
Sets Process ID for guid.
int sceGUIDSetPIDForKernel(SceUID guid, SceUID pid);
sceGUIDSetCNOAForKernel
| Version |
NID
|
| 3.60-3.61 |
0x8D6AF468
|
| 3.63 |
0x5EDDEEB5
|
Setting Class Name Object Attr.
int sceGUIDSetCNOAForKernel(SceUID guid, SceClass *pClass, const char *name, void *pObject, SceUInt32 attr);
sceGUIDSetForKernel
| Version |
NID
|
| 0.931-3.61 |
0xD7B323EB
|
| 3.63 |
0xBF275C5A
|
Re setting the GUID on an object that already has a uid assigned may cause the system to malfunction.
int sceGUIDSetForKernel(SceUID guid, SceClass *pClass, const char *name, SceKernelObject *pObject);
scePUIDGetEntryInfoAllForKernel
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.610.011 |
0x2770A7D7
|
| 3.630.011-3.740.011 |
0x3C3005EE
|
int scePUIDGetEntryInfoAllForKernel(SceUID pid, SceClass *pClass, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, void *pInfo);
scePUIDGetAttrForKernel
| Version |
NID
|
| 3.60-3.61 |
0x86E83C0D
|
| 3.63 |
0x96BD47D1
|
int scePUIDGetAttrForKernel(SceUID pid, SceUID puid, SceUInt32 *pAttr);
scePUIDReleaseObjectForKernel
| Version |
NID
|
| 0.990-3.61 |
0x3FCA782B
|
| 3.63 |
0xCE561224
|
int scePUIDReleaseObjectForKernel(SceUID pid, SceUID puid);
scePUIDGetInfoForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.60-3.61 |
0x12ED88AE
|
| 3.63 |
0x857701D4
|
// pInfo size is 0x14 bytes
int scePUIDGetInfoForKernel(SceUID pid, SceUID puid, void *pInfo);
scePUIDtoGUIDWithDebugForKernel
| Version |
NID
|
| 3.60-3.61 |
0xB3E2AA7A
|
| 3.63 |
0x188C8742
|
This is a guessed name.
SceUID scePUIDtoGUIDWithDebugForKernel(SceUID pid, SceUID puid);
scePUIDReferObjectForKernel
| Version |
NID
|
| 0.990-3.61 |
0x620E00E7
|
| 3.63 |
0x2C15615F
|
int scePUIDReferObjectForKernel(SceUID pid, SceUID puid, SceObject **ppObject);
scePUIDOpenByNameWithOptForKernel
| Version |
NID
|
| 3.60-3.61 |
0x22F79E82
|
| 3.63 |
0x201E970B
|
SceUID scePUIDOpenByNameWithOptForKernel(ScePID pid, const char *name, void *pOpt);
scePUIDGetPUIDVectorByGUIDForKernel
| Version |
NID
|
| 0.931.010-2.06 |
not present
|
| 2.100.081-3.610.011 |
0xBF04FC83
|
| 3.630.011-3.740.011 |
0xCE16AD91
|
int scePUIDGetPUIDVectorByGUIDForKernel(SceUID pid, SceUID guid, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, SceUInt32 *ret_num);
scePUIDGetUIDVectorByClassForKernel
| Version |
NID
|
| 0.990.000-3.610.011 |
0xB16D5136
|
| 3.630.000-3.740.011 |
0x08C05493
|
Similar to #sceGUIDGetUIDVectorByClassForKernel.
int scePUIDGetUIDVectorByClassForKernel(SceUID pid, SceClass *pClass, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, SceUInt32 *ret_num);
scePUIDReferObjectWithClassForKernel
| Version |
NID
|
| 3.60-3.61 |
0x9C53F457
|
| 3.63 |
0x9C23DFF7
|
This is a guessed name.
int scePUIDReferObjectWithClassForKernel(SceUID pid, SceUID puid, SceClass *pClass, void **ppObject);
scePUIDOpenByGUIDWithOptForKernel
| Version |
NID
|
| 3.60-3.61 |
0x53A2E272
|
| 3.63 |
0x1FF2749A
|
This is a guessed name.
SceUID scePUIDOpenByGUIDWithOptForKernel(SceUID pid, SceUID guid, void *pOpt);
scePUIDGetGUIDVectorForKernel
| Version |
NID
|
| 3.60-3.61 |
0x3203AE64
|
| 3.63 |
0x66489B4B
|
This is a guessed name.
int scePUIDGetGUIDVectorForKernel(SceUID pid, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, SceUInt32 *ret_num);
sceKernelGetPhyPartKernelForKernel
| Version |
NID
|
| 0.931-3.61 |
0x4D38F861
|
| 3.63-3.65 |
0x0164D817
|
return gpPhyPartKernel;
void *sceKernelGetPhyPartKernelForKernel(void);
sceKernelGetPhyPartToolForKernel
| Version |
NID
|
| 0.990-3.61 |
0xF8E95A5A
|
| 3.63-3.65 |
0x0B1B4ACA
|
void *sceKernelGetPhyPartToolForKernel(void);
sceKernelGetPhyPartGameForKernel
| Version |
NID
|
| 3.60-3.61 |
0xB60568F9
|
| 3.63-3.65 |
0x62800A6B
|
void *sceKernelGetPhyPartGameForKernel(void);
sceKernelSetPhyPartGameForKernel
| Version |
NID
|
| 3.60-3.61 |
0x77876A8D
|
| 3.63-3.65 |
0x3753C584
|
void sceKernelSetPhyPartGameForKernel(void *pPhyPart);
sceKernelSetPhyPartCdramForKernel
| Version |
NID
|
| 3.60-3.61 |
0x07FEBBCA
|
| 3.63 |
0xDCEF10B2
|
This is a guessed name.
void sceKernelSetPhyPartCdramForKernel(void *pPhyPart);
sceKernelPhyMemLowAllocForKernel
| Version |
NID
|
| 0.931-3.61 |
0x5E169FEF
|
| 3.63 |
0xEA98CCE1
|
Allocate a range of physically contiguous "pages" from a PhyMemLow object.
// type must be one of SCE_KERNEL_PHYMEMLOW_TYPE (0x10001, 0x10002 or 0x20001)
// size and alignment must be aligned to the target PHYMEMLOW granularity
// On success, *pOut contains the base physical address of a range with the provided size
SceInt32 sceKernelPhyMemLowAllocForKernel(SceUInt32 type, SceSize size, SceSize alignment, SceUIntPAddr* pOut);
sceKernelPhyMemLowPA2VAForKernel
| Version |
NID
|
| 0.931-3.61 |
0x0FD6B756
|
| 3.63 |
0x2CFD8C9A
|
// type must be 0x10002
int sceKernelPhyMemLowPA2VAForKernel(int type, void *PA, void **pVA);
sceKernelGetPhyMemLowInfoForKernel
| Version |
NID
|
| 0.931-0.990 |
0x06A4DA6C
|
| 3.60 |
not present
|
// type must be one of SCE_KERNEL_PHYMEMLOW_TYPE (0x10001, 0x10002 or 0x20001)
SceInt32 sceKernelGetPhyMemLowInfoForKernel(SceUInt32 type, SceKernelPhyMemLowInfo *info);
sceKernelPhyMemLowFreeForKernel
| Version |
NID
|
| 0.931-3.61 |
0x18B99FDD
|
| 3.63 |
0x844DF3DA
|
Free a range of physical "pages" from a PhyMemLow object.
// type must be one of SCE_KERNEL_PHYMEMLOW_TYPE (0x10001, 0x10002 or 0x20001)
SceInt32 sceKernelPhyMemLowFreeForKernel(SceUInt32 type, SceUIntPAddr pbase, SceSize size);
sceKernelSetPhyMemLowHookForKernel
| Version |
NID
|
| 3.60-3.61 |
0x2658EE0A
|
| 3.63 |
0x2C7B8D65
|
This is a guessed name.
Only implemented in sysdbg build.
int sceKernelSetPhyMemLowHookForKernel(void *pHook);
sceKernelAllocMemBlockByCommandForKernel
| Version |
NID
|
| 3.60-3.61 |
0xCA91B9D5
|
| 3.63 |
0x455B0A4C
|
typedef struct SceKernelMemBlockAllocCommand { // size is 0x94 on FW 3.65
SceSize size; // Size of this structure
SceUInt32 code;
char* name;
char unk_8[0x74];
void* typeInfo;
char unk_0x84[0x10];
} SceKernelMemBlockAllocCommand;
int sceKernelAllocMemBlockByCommandForKernel(SceKernelMemBlockAllocCommand *pCommand);
sceKernelAllocSimpleMemBlockForKernel
| Version |
NID
|
| 0.990-3.61 |
0xF81F4672
|
| 3.63 |
0x814CDCC5
|
typedef struct SceKernelSimpleMemBlock {
char unk_0[0x14];
void *base;
char unk_18[0x14];
void *PhyPage;
SceSize size;
} SceKernelSimpleMemBlock;
int sceKernelAllocSimpleMemBlockForKernel(const char *name, SceKernelMemBlockType type, SceSize vsize, SceKernelSimpleMemBlock *smb);
sceKernelFreeSimpleMemBlockForKernel
| Version |
NID
|
| 0.990-3.61 |
0xA1FFA2C9
|
| 3.63 |
0xA4DB88E1
|
int sceKernelFreeSimpleMemBlockForKernel(void *a1);
sceKernelGetSimpleMemBlockBaseForKernel
| Version |
NID
|
| 0.990-3.61 |
0x0A8D14EC
|
| 3.63 |
0x39D5A3B7
|
int sceKernelGetSimpleMemBlockBaseForKernel(SceKernelSimpleMemBlock *smb, void **base);
sceKernelSimpleMemBlockGetFIFOForKernel
| Version |
NID
|
| 3.60-3.61 |
0x43DFCE89
|
| 3.63 |
0xBD625136
|
This is a guessed name.
int sceKernelSimpleMemBlockGetFIFOForKernel(void *pResult);
sceKernelGetMemBlockInfoAllForKernel
| Version |
NID
|
| 3.60-3.61 |
0xFEF54604
|
| 3.63 |
0x1D19C864
|
int sceKernelGetMemBlockInfoAllForKernel(void *pPart, int a2, int a3, int a4, int a5, SceUInt32 level, void *pInfoBuffer, int a8, SceUInt32 *a9);
sceKernelGetMemBlockInfoSimpleForKernel
| Version |
NID
|
| 0.990-3.61 |
0x2364A170
|
| 3.63 |
0xBA441FD0
|
int sceKernelGetMemBlockInfoSimpleForKernel(SceUID uid, SceKernelMemBlockInfoSimple *pInfo);
sceKernelGetMemBlockTypeForKernel
| Version |
NID
|
| 3.60-3.61 |
0x289BE3EC
|
| 3.63 |
0xD44FE44B
|
/***
* Gets the memory block type of a memory block
*
* @param[in] uid - SceUID of the memory block
* @param[out] type - Type of the memory block identified by uid
*
* @return 0 on success, < 0 on error.
*/
int sceKernelGetMemBlockTypeForKernel(SceUID uid, unsigned int *type);
sceKernelRemapMemBlockForKernel
| Version |
NID
|
| 0.931-1.05 |
0x8D332AE1
|
| 1.50-3.60 |
not present. Moved to ForDriver
|
Temp name was sceKernelRemapBlockForKernel.
See sceKernelRemapMemBlockForDriver.
sceKernelSetMemBlockDebugCallbackForKernel
| Version |
NID
|
| 3.60-3.61 |
0x01DE3AB7
|
| 3.63 |
0xF57A97A0
|
This is a guessed name.
Only implemented in sysdbg build.
int sceKernelSetMemBlockDebugCallbackForKernel(void *pCallbacks);
sceKernelMemBlockAssocPhyPageForKernel
| Version |
NID
|
| 3.60-3.61 |
0xA88F6D88
|
| 3.63 |
0x441E6BE9
|
This is a guessed name.
int sceKernelMemBlockAssocPhyPageForKernel(SceUID guid, const SceUIntPtr *a2);
sceKernelAllocPartitionStackMemBlockForKernel
| Version |
NID
|
| 3.60-3.61 |
0x64133268
|
| 3.63 |
0x40870E74
|
Temp name was sceKernelAllocStackBlockForKernel.
SceUID sceKernelAllocPartitionStackMemBlockForKernel(const char *name, SceSize size, int a3);
sceKernelMemBlockGetCodeForKernel
| Version |
NID
|
| 3.60-3.61 |
0x61C2AA52
|
| 3.63 |
0x48D2E408
|
This is a guessed name.
SceUint32 sceKernelMemBlockGetCodeForKernel(SceUint32 type);
sceKernelAllocPartitionMemBlockForKernel
| Version |
NID
|
| 0.931-3.60 |
0x5FFE4B79
|
| 3.65 |
0x6DB46017
|
Temp name was sceKernelAllocSystemCallTableForKernel.
SceUID sceKernelAllocPartitionMemBlockForKernel(SceUID part, const char *name, SceKernelMemBlockType type, SceSize size, const struct SceKernelAllocMemBlockOptKernel *pOpt);
sceKernelPartitionGetInfoForKernel
| Version |
NID
|
| 3.60-3.61 |
0x7BE4D3D1
|
| 3.63 |
0xFB101B86
|
int sceKernelPartitionGetInfoForKernel(SceUID part_id, void *pInfo);
| Version |
NID
|
| 0.990-3.61 |
0xEB350679
|
| 3.63 |
0x8FD11E02
|
void *sceKernelGetPhyPageResetForKernel(void);
SceSysmemForKernel_BD33EDDF
| Version |
NID
|
| 0.931 |
0xBD33EDDF
|
| 3.60 |
not present
|
Gets thread's name. Returns 0 on success.
int SceSysmemForKernel_BD33EDDF(int maybe_thid, char **pThreadName);
sceKernelAllocForKernel
| Version |
NID
|
| 0.990-3.60 |
0xC0A4D2F3
|
| 3.65 |
0x85571907
|
void *sceKernelAllocForKernel(SceSize len);
sceKernelAllocWithOptForKernel
| Version |
NID
|
| 3.60-3.61 |
0xA2CD1697
|
| 3.63 |
0xCF3C3F7A
|
typedef struct SceAllocOpt {
SceSize size; // 0x14
SceSize data04; // maybe len align?
SceSize align;
int data0C;
int data10;
} SceAllocOpt;
void *sceKernelAllocWithOptForKernel(SceSize len, SceAllocOpt *pOpt);
sceKernelFreeForKernel
| Version |
NID
|
| 0.990-3.60 |
0xABAB0FAB
|
| 3.65 |
0x4233C16D
|
int sceKernelFreeForKernel(void *ptr);
sceKernelSetAllocFreeHookForKernel
| Version |
NID
|
| 3.60-3.61 |
0xBC2E2B2B
|
| 3.63 |
0x42834422
|
Only implemented in sysdbg build.
int sceKernelSetAllocFreeHookForKernel(void *pHook);
SceSysmemForKernel_C38D61FC
| Version |
NID
|
| 0.990 |
0xC38D61FC
|
| 3.60 |
not present
|
Calls #SceSysmemForDriver_89A44858.
SceSysmemForKernel_7C797940
| Version |
NID
|
| 0.931-0.990 |
0x7C797940
|
| 3.60 |
not present
|
Calls #SceSysmemForKernel_620E00E7 or #sceGUIDReferObjectForDriver.
sceKernelVSlotMapProcMemoryForKernel
| Version |
NID
|
| 3.60-3.61 |
0xFAD03241
|
| 3.63 |
0x14D3807B
|
int sceKernelVSlotMapProcMemoryForKernel(SceUID pid, void *addr, SceSize size, SceUInt32 flag, SceKernelVSlot *pVslot, int *pBaseAddrOrOffset);
sceKernelVSlotUnmapProcMemoryForKernel
| Version |
NID
|
| 3.60-3.61 |
0x789CD5BF
|
| 3.63 |
0x4EEF69C7
|
int sceKernelVSlotUnmapProcMemoryForKernel(SceKernelVSlot *pVslot);
SceSysmemForKernel_ECF9435A
| Version |
NID
|
| 3.60-3.61 |
0xECF9435A
|
| 3.63 |
0xFCB5745A
|
Writes nWords times the 4-byte ch starting at usermode address u_dst. Write is performed with the STRT instruction and DACR=0x15450FC3 (same as |sceKernelCopyToUserTextDomain - required because NID tables are in RX segments).
Used by SceKernelModulemgr to overwrite NID tables once a module's imports are bound with a random value from Bigmac RNG. This overwrite was called "NID Poisoning" by Team Molecule.
int SceSysmemForKernel_ECF9435A(void *u_dst, SceUInt32 ch, SceUInt32 nWords);
SceSysmemForKernel_ECC68E7B
| Version |
NID
|
| 3.60-3.61 |
0xECC68E7B
|
| 3.63 |
0x05822B82
|
int SceSysmemForKernel_ECC68E7B(SceUInt32 phymem_type, SceUInt32 *result);
SceSysmemForKernel_E68A9F1B
| Version |
NID
|
| 3.60-3.61 |
0xE68A9F1B
|
| 3.63 |
0x1DE4953F
|
int SceSysmemForKernel_E68A9F1B(int a1, SceClass **ppClass);
sceKernelCheckOpenVMDomainForKernel
| Version |
NID
|
| 2.000.081-3.610.011 |
0xD514BB56
|
| 3.630.000-3.740.011 |
0x4E6D8BC3
|
Returns 2 if Virtual Machine is open, 0 else. Returns 0x80027101 on error.
SceUInt32 sceKernelCheckOpenVMDomainForKernel(void);
sceeKernelSetNameHeapHookForKernel
| Version |
NID
|
| 3.60-3.61 |
0x1E11F41D
|
| 3.63 |
0x6DBDA03B
|
This is a guessed name.
Not implemented in sysdbg build either. Probably only implemented during real development.
Only return 0.
int sceeKernelSetNameHeapHookForKernel(void *pHook);
SceSysmemForKernel_22708F14
| Version |
NID
|
| 3.60-3.61 |
0x22708F14
|
| 3.63 |
0x456ECB54
|
SceUInt32 SceSysmemForKernel_22708F14(void *a1, int a2);
SceSysmemForKernel_22A26637
| Version |
NID
|
| 3.60-3.61 |
0x22A26637
|
| 3.63 |
0xAD19285A
|
int SceSysmemForKernel_22A26637(void *a1, int a2, int a3, int a4, int a5, int a6, void *a7);
SceSysmemForKernel_C6F04370
| Version |
NID
|
| 3.60-3.61 |
0xC6F04370
|
| 3.63 |
0x02DAD732
|
init budget data in sysmem.
int SceSysmemForKernel_C6F04370(void);
SceSysmemForKernel_B339A865
| Version |
NID
|
| 3.60-3.61 |
0xB339A865
|
| 3.63 |
0x320E907F
|
Returns 0.
int SceSysmemForKernel_B339A865(void);
SceSysmemForKernel_AD5A83E3
| Version |
NID
|
| 3.60-3.61 |
0xAD5A83E3
|
| 3.63 |
0xBF70207B
|
int SceSysmemForKernel_AD5A83E3(SceUID guid, SceUInt32 vis_level, SceUInt32 a3, int *a4);
SceSysmemForKernel_A504BA60
| Version |
NID
|
| 3.60-3.61 |
0xA504BA60
|
| 3.63 |
0xCAB15F74
|
SceSysmemForKernel_7DC46969
| Version |
NID
|
| 3.60-3.61 |
0x7DC46969
|
| 3.63 |
0x8450BFF7
|
Returns 1.
int SceSysmemForKernel_7DC46969(void);
SceSysmemForDriver
sceKernelProcessGetContextForDriver
| Version |
NID
|
| 1.80-3.74 |
0x2ECF7944
|
This is a guessed name.
int sceKernelProcessGetMMUContextForDriver(SceUID pid, SceKernelMMUContext **ppCtx);
sceKernelProcessSwitchContextForDriver
| Version |
NID
|
| 0.990-3.74 |
0x2D711589
|
This is a guessed name.
int sceKernelProcessSwitchMMUContextForDriver(SceKernelMMUContext *new_context, SceKernelMMUContext *prev_context);
scePUIDOpenByGUIDForDriver
| Version |
NID
|
| 0.931-3.60 |
0xBF209859
|
Temp name was sceKernelCreateUserUidForDriver.
SceUID scePUIDOpenByGUIDForDriver(SceUID pid, SceUID guid);
scePUIDOpenByGUIDWithFlagsForDriver
| Version |
NID
|
| 0.990-3.60 |
0xCED1547B
|
Temp name was sceKernelCreateUserUidForClassForDriver.
SceUID scePUIDOpenByGUIDWithFlagsForDriver(SceUID pid, SceUID guid, SceUInt32 flags);
scePUIDOpenByNameForDriver
| Version |
NID
|
| 0.931-3.60 |
0x513B9DDD
|
Temp name was sceKernelCreateUserUidForNameForDriver.
SceUID scePUIDOpenByNameForDriver(SceUID pid, const char *name);
scePUIDOpenByNameWithClassForDriver
| Version |
NID
|
| 0.931-3.60 |
0x8DA0BCA5
|
Equivalent to scePUIDOpenByNameForDriver, but object's class is checked to be a subclass of provided pClass before opening.
SceUID scePUIDOpenByNameWithClassForDriver(ScePID pid, const char *name, SceClass *pClass);
scePUIDOpenByNameWithExactClassForDriver
| Version |
NID
|
| 0.990.000-3.010.031 |
0xB800123C
|
| 3.10-3.740.011 |
not present
|
This is a guessed name. Temp name was add_heap.
Equivalent to scePUIDOpenByNameWithClass, but the object's class must match exactly the provided pClass.
SceUID scePUIDOpenByNameWithExactClassForDriver(ScePID pid, const char *name, const SceClass *pClass);
scePUIDCloseForDriver
| Version |
NID
|
| 0.990-3.60 |
0x84A4AF5E
|
Temp name was sceKernelDeleteUserUidForDriver.
int scePUIDCloseForDriver(SceUID pid, SceUID puid);
scePUIDSetNameForDriver
| Version |
NID
|
| 0.990-3.60 |
0x12624884
|
Temp name was sceKernelSetNameForPidForUidForDriver.
int scePUIDSetNameForDriver(SceUID pid, SceUID puid, const char *name);
scePUIDGetObjectForDriver
| Version |
NID
|
| 0.990-3.60 |
0xFE6D7FAE
|
Temp name was sceKernelGetObjectForPidForUidForDriver.
int scePUIDGetObjectForDriver(SceUID pid, SceUID uid, SceKernelObject **ppEntry);
scePUIDtoGUIDForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x45D22597
|
Temp name was sceKernelKernelUidForUserUidForDriver.
Returns the Global UID of a process based on its Process UID.
SceUID scePUIDtoGUIDForDriver(SceUID pid, SceUID puid);
scePUIDtoGUIDWithClassForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 3.60 |
0x184172B1
|
Temp name was sceKernelKernelUidForUserUidForClassForDriver.
SceUID scePUIDtoGUIDWithClassForDriver(SceUID pid, SceUID puid, SceClass *pClass);
scePUIDGetNameForDriver
| Version |
NID
|
| 0.990-3.60 |
0x09896EB7
|
Temp name was sceKernelGetNameForPidByUidForDriver, scePUIDGetEntryHeapNameForDriver
int scePUIDGetNameForDriver(SceUID pid, SceUID puid, char **pName);
scePUIDGetClassForDriver
| Version |
NID
|
| 0.990-3.60 |
0xE9728A12
|
Temp name was sceKernelGetClassForPidForUidForDriver.
int scePUIDGetClassForDriver(SceUID pid, SceUID puid, SceClass **ppClass);
sceUIDKernelCreateForDriver
| Version |
NID
|
| 0.990.000-1.060.031 |
0x7FC849B1
|
| 1.50-3.740.011 |
not present
|
Calls #sceGUIDKernelCreateForKernel.
Create a UID with default attribute (0x30000).
int sceUIDKernelCreateForDriver(SceClass *pClass, const char *name, SceKernelObject **ppEntry);
sceGUIDKernelCreateForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 1.000.071-3.740.011 |
0x56A13E90
|
Temp name was sceUIDKernelCreate2ForDriver, sceKernelCreateUidObj2ForDriver.
Create a UID with default attribute (0x30000).
SceUID sceGUIDKernelCreateForDriver(SceClass *pClass, const char *name, SceKernelObject **ppEntry);
sceUIDOpenByNameForDriver
| Version |
NID
|
| 0.931-0.990 |
0x796881D6
|
| 3.60 |
not present
|
Calls #sceGUIDOpenByNameForDriver.
SceUID sceUIDOpenByNameForDriver(const char *name);
sceUIDCloseForDriver
| Version |
NID
|
| 0.990 |
0x32C5F628
|
| 3.60 |
not present
|
if (flag_or_addr_or_pid & 0x40000000) == 0 calls #sceGUIDCloseForDriver else #scePUIDCloseForDriver.
int sceUIDCloseForDriver(SceUID uid, SceUInt32 flag_or_addr_or_pid);
SceSysmemForDriver_F09A7D09
| Version |
NID
|
| 0.990 |
0xF09A7D09
|
| 3.60-3.74 |
not present
|
Calls #sceGUIDCloseForDriver.
int SceSysmemForDriver_F09A7D09(SceUID uid);
sceUIDGetDefaultClassForDriver
| Version |
NID
|
| 0.931-0.990 |
0xFE28F5EB
|
| 3.60 |
not present
|
SceClass *sceUIDGetDefaultClassForDriver(void);
sceUIDtoObjectForDriver
| Version |
NID
|
| 0.990 |
0xAB7AC3D1
|
This is a guessed name.
Calls #sceUIDtoObjectForKernel.
SceKernelObject *sceUIDtoObjectForDriver(SceUID uid);
sceUIDtoClassForDriver
| Version |
NID
|
| 0.990 |
0x65B9B393
|
| 3.60 |
not present
|
Calls #sceGUIDtoClassForKernel.
SceClass *sceUIDtoClassForDriver(SceUID uid);
sceUIDClassInitForDriver
| Version |
NID
|
| 0.931-0.990 |
0xE6D75E99
|
| 3.60 |
not present
|
Renamed to sceUIDClassInitClassForDriver.
int sceUIDClassInitForDriver(SceClass *pClass, const char *name, uint32_t uid_class, SceSize item_size, void *constructor, void *destructor);
sceUIDClassInitClassForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x61317102
|
Temp name was sceKernelCreateClassForDriver.
int sceUIDClassInitClassForDriver(SceClass *cls, const char *name, const SceClass *group, SceSize item_size, SceClassCallback create, SceClassCallback destroy);
sceUIDGetClassInfoAllForDriver
| Version |
NID
|
| 0.990 |
0x3EF32C6C
|
| 3.60 |
not present. Moved to ForKernel
|
See sceUIDClassGetClassInfoAllForKernel
sceGUIDCreateForDriver
| Version |
NID
|
| 0.990-3.60 |
0x89A44858
|
Temp name was sceKernelCreateUidObjForUidForDriver.
Create a GUID with default attribute (0x30000) for the specified UID.
SceUID sceGUIDCreateForDriver(SceClass *pClass, const char *name, SceUID guid, SceKernelObject **ppEntry);
sceGUIDOpenByNameForDriver
| Version |
NID
|
| 0.931-3.60 |
0xD76E7452
|
Temp name was sceKernelOpenUidForNameForDriver.
SceUID sceGUIDOpenByNameForDriver(const char *name);
sceGUIDCloseForDriver
| Version |
NID
|
| 0.990-3.60 |
0x047D32F2
|
Temp name was sceKernelDeleteUidForDriver.
int sceGUIDCloseForDriver(SceUID guid);
sceGUIDGetClassForDriver
| Version |
NID
|
| 0.990-3.60 |
0xC74B0152
|
Temp name was sceKernelGetClassForUidForDriver.
int sceGUIDGetClassForDriver(SceUID guid, SceClass **ppClass);
sceGUIDSetNameForDriver
| Version |
NID
|
| 1.50-3.60 |
0x4CFA4100
|
Temp name was sceKernelSetObjectForUidForDriver. Wrongfully named scePUIDSetNameForDriver.
Calls the same routine as sceGUIDSetForKernel, but passes NULL for pClass and pObject.
SceInt32 sceGUIDSetNameForDriver(SceUID guid, const char *name);
sceGUIDNameForDriver
| Version |
NID
|
| 0.990 |
0xB2BB6216
|
| 3.60 |
0xE655852F
|
Temp name was sceKernelGetNameForUid2ForDriver.
char* sceGUIDNameForDriver(SceUID guid);
sceGUIDGetNameForDriver
| Version |
NID
|
| 3.60 |
0xA78755EB
|
Temp name was sceKernelGetNameForUidForDriver.
int sceGUIDGetNameForDriver(SceUID guid, char **pName);
sceGUIDGetObjectForDriver
| Version |
NID
|
| 0.990-3.60 |
0x0FC24464
|
Temp name was sceKernelGUIDGetObjectForDriver.
int sceGUIDGetObjectForDriver(SceUID uid, SceKernelObject **ppEntry);
sceGUIDReferObjectForDriver
| Version |
NID
|
| 3.60 |
0x0F5C84B7
|
Temp name was sceKernelGetObjectForUidForDriver.
int sceGUIDReferObjectForDriver(SceUID uid, SceKernelObject **ppEntry);
sceGUIDReferObjectWithLevelForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 3.60 |
0xF6DB54BA
|
Temp name was sceKernelGetObjectForUidForAttrForDriver.
int sceGUIDReferObjectWithLevelForDriver(SceUID uid, SceUInt32 level, SceKernelObject **pEntry);
sceGUIDReferObjectWithClassLevelForDriver
| Version |
NID
|
| 0.990-3.60 |
0x77066FD1
|
int sceGUIDReferObjectWithClassLevelForDriver(SceUID guid, SceClass *pClass, SceUInt32 level, SceKernelObject **ppEntry);
sceGUIDReferObjectWithClassForDriver
| Version |
NID
|
| 0.990-3.60 |
0x00ED6C14
|
Temp name was sceKernelGetObjForUidForDriver.
int sceGUIDReferObjectWithClassForDriver(SceUID uid, SceClass *pClass, SceKernelObject **ppEntry);
sceGUIDReferObjectWithSubclassForDriver
| Version |
NID
|
| 0.990-3.60 |
0x72A98D17
|
Temp name was sceKernelGetObjectForUidForClassTreeForDriver.
int sceGUIDReferObjectWithSubclassForDriver(SceUID guid, SceClass *pClass, SceKernelObject **ppEntry);
sceGUIDReleaseObjectForDriver
| Version |
NID
|
| 0.990-3.60 |
0x149885C4
|
Temp name was sceKernelUidReleaseForDriver.
int sceGUIDReleaseObjectForDriver(SceUID uid);
sceKernelGetUIDClassForDriver
| Version |
NID
|
| 3.60 |
0x85336A1C
|
This is a guessed name.
SceClass *sceKernelGetUIDClassForDriver(void);
sceKernelIsSubclassForDriver
| Version |
NID
|
| 0.990 |
0x6484D03E
|
| 1.691 |
0x55F4826F
|
| 3.60 |
not present. Moved to ForKernel
|
See sceUIDClassIsSubclassForKernel
SceSysmemForDriver_6F2ACDAE
| Version |
NID
|
| 1.69 |
0x6F2ACDAE
|
| 1.80-3.74 |
not present
|
Temp name was switch_ttb_for_pid.
Changes the TTBR to point to the tables for a given PID.
int SceSysmemForDriver_6F2ACDAE(SceUID pid);
sceKernelAllocMemBlockForDriver
| Version |
NID
|
| 0.931-3.65 |
0xC94850C9
|
The interface is the same as the usermode version of this function, however more types can be specified and more options are in the pOpt argument.
To allocate a kernel RW block of memory, specify type = SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_TMP_RW.
To allocate a block of memory with a specific physical address, specify type = SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_IO_SO_RW or type = SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_IO_RW, pOpt->attr = 2, and pOpt->pbase = physical address.
To allocate a block of memory that is kernel executable, specify type = SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_RX.
To allocate a block of memory that is physically contiguous, specify type = 0x30808006, pOpt->attr = 0x200004 and an alignment to pOpt->alignment.
To allocate a block of memory inside the CDRAM, specify type = 0x40404006.
SceUID sceKernelAllocMemBlockForDriver(const char *name, SceKernelMemBlockType type, SceSize vsize, const struct SceKernelAllocMemBlockOptKernel *pOpt);
sceKernelAllocMemBlockForDebuggerForDriver
| Version |
NID
|
| 0.940-1.50 |
0x59F3159C
|
Same as #sceKernelAllocMemBlockForDriver but authorizes null pOpt.
SceUID sceKernelAllocMemBlockForDebuggerForDriver(const char *name, SceKernelMemBlockType type, SceSize vsize, SceKernelAllocMemBlockOptKernel *pOpt);
sceKernelAllocMemBlockWithInfoForDriver
| Version |
NID
|
| 0.990-3.60 |
0xD44F464D
|
Temp name was sceKernelAllocMemBlockExtForDriver.
SceUID sceKernelAllocMemBlockWithInfoForDriver(const char *name, SceKernelMemBlockType type, SceSize vsize, const struct SceKernelAllocMemBlockOptKernel *pOpt, SceKernelMemBlockInfo *pInfo);
sceKernelFreeMemBlockForDriver
| Version |
NID
|
| 0.931-3.65 |
0x009E1C61
|
int sceKernelFreeMemBlockForDriver(SceUID uid);
sceKernelFindMemBlockByAddrForDriver
| Version |
NID
|
| 0.990-3.60 |
0x8A1742F6
|
SceUID sceKernelFindMemBlockByAddrForDriver(const void *addr, SceSize size);
sceKernelFindProcMemBlockByAddrForDriver
| Version |
NID
|
| 0.990-3.60 |
0x857F1D5A
|
Temp name was sceKernelFindMemBlockByAddrForPidForDriver.
SceUID sceKernelFindProcMemBlockByAddrForDriver(SceUID pid, const void *addr, SceSize size);
sceKernelGetMemBlockAllocSizeForDriver
| Version |
NID
|
| 0.990.000-2.120.011 |
0x63E5754B
|
| 2.500.071-3.740.011 |
not present
|
This function was replaced since System Software version 2.500.071 by #sceKernelGetMemBlockAllocMapSizeForDriver.
int sceKernelGetMemBlockAllocSizeForDriver(SceUID memid, SceSize *pAllocSize);
sceKernelGetMemBlockAllocMapSizeForDriver
| Version |
NID
|
| 0.931.010-2.120.011 |
not present
|
| 2.500.071-3.740.011 |
0x78337B62
|
Temp name was sceKernelMemBlockGetSomeSizeForDriver.
This function is a replacement since System Software version 2.500.071 of #sceKernelGetMemBlockAllocSizeForDriver.
int sceKernelGetMemBlockAllocMapSizeForDriver(SceUID memid, SceSize *pAllocMapSize);
sceKernelGetMemBlockMemtypeByAddrForDriver
| Version |
NID
|
| 0.990-3.60 |
0xF3BBE2E1
|
Temp name was sceKernelFindMemBlockByAddrForDefaultSizeForDriver.
SceKernelMemoryType sceKernelGetMemBlockMemtypeByAddrForDriver(const void *addr);
sceKernelGetMemBlockPARangeForDriver
| Version |
NID
|
| 0.990-3.60 |
0x98C15666
|
Temp name was sceKernelGetMemBlockAddrPairForUidForDriver.
Returns the physical address and size (pRange) of the memory block if it is physically continuous.
int sceKernelGetMemBlockPARangeForDriver(SceUID uid, SceKernelPARange *pRange);
sceKernelGetMemBlockBaseForDriver
| Version |
NID
|
| 0.990-3.74 |
0xA841EDDA
|
/**
* @brief Get mapped base address of memory block.
*
* Get base address of memory block.
* @param[in] uid block id
* @param[out] ppBase base address of memory block
* @retval SCE_OK success
* @retval <SCE_OK Error
*/
int sceKernelGetMemBlockBaseForDriver(SceUID uid, void **ppBase);
sceKernelGetMemBlockVBaseForDriver
| Version |
NID
|
| 3.60 |
0xB81CF0A3
|
Temp name was sceKernelGetMemBlockKernelPageForDriver.
int sceKernelGetMemBlockVBaseForDriver(SceUID uid, void **kernel_page);
sceKernelGetMemBlockMappedBaseForDriver
| Version |
NID
|
| 3.60 |
0x0B1FD5C3
|
int sceKernelGetMemBlockMappedBaseForDriver(SceUID uid, void **basep);
sceKernelGetMemBlockPAVectorForDriver
| Version |
NID
|
| 0.990-3.60 |
0x19A51AC7
|
Temp name was sceKernelGetMemBlockPaddrListForUidForDriver.
int sceKernelGetMemBlockPAVectorForDriver(SceUID uid, SceKernelPAVector *pPAV);
sceKernelGetMemBlockInfoForDriver
| Version |
NID
|
| 0.990-3.60 |
0xA73CFFEF
|
Temp name was sceKernelMemBlockGetInfoExForVisibilityLevelForDriver.
int sceKernelGetMemBlockInfoForDriver(SceUID uid, uint32_t level, SceKernelMemBlockInfoEx *pInfo);
sceKernelGetMemBlockInfoExForDriver
| Version |
NID
|
| 3.60 |
0x24A99FFF
|
This is a guessed name.
int sceKernelGetMemBlockInfoExForDriver(SceUID uid, SceKernelMemBlockInfoEx *pInfo);
sceKernelDecRefCountMemBlockForDriver
| Version |
NID
|
| 0.990-3.60 |
0xF50BDC0C
|
Temp name was sceKernelMemBlockDecRefCounterAndReleaseUidForDriver.
int sceKernelDecRefCountMemBlockDriver(SceUID uid);
sceKernelIncRefCountMemBlockForDriver
| Version |
NID
|
| 0.990-3.60 |
0xEAF3849B
|
Temp name was sceKernelMemBlockIncRefCounterAndReleaseUidForDriver.
int sceKernelIncRefCountMemBlockForDriver(SceUID uid);
sceKernelMemBlockType2MemtypeForDriver
| Version |
NID
|
| 0.931-3.60 |
0x20C811FA
|
int sceKernelMemBlockType2MemtypeForDriver(SceKernelMemBlockType type);
sceKernelMemBlockTypeGetPrivilegesForDriver
| Version |
NID
|
| 3.60 |
0x6A0792A3
|
int sceKernelMemBlockTypeGetPrivilegesForDriver(SceKernelMemBlockType type);
sceKernelMemBlockType2SourceMemTypeForDriver
| Version |
NID
|
| 0.990-3.60 |
0xCB0F3A33
|
This is a guessed name. Temp name was sceKernelMemBlockTypeGetUnknownForDriver.
#define SCE_KERNEL_SOURCE_MEMORY_TYPE_IO 0x100000
#define SCE_KERNEL_SOURCE_MEMORY_TYPE_LPDDR 0x200000
#define SCE_KERNEL_SOURCE_MEMORY_TYPE_CDRAM 0x400000
int sceKernelMemBlockType2SourceMemTypeForDriver (SceKernelMemBlockType type);
sceKernelMapMemBlockForDriver
| Version |
NID
|
| 0.990-3.60 |
0x58D21746
|
Temp name was sceKernelMapBlockUserVisibleForDriver, sceKernelPartitionMapMemBlockForDriver.
int sceKernelMapMemBlockForDriver(SceUID uid);
sceKernelMapMemBlockWithFlagForDriver
| Version |
NID
|
| 3.60 |
0x04059C4B
|
This is a guessed name. Temp name was sceKernelMapBlockUserVisibleWithFlagForDriver.
/**
* Map a memblock.
*
* @param[in] uid - GUID of the memblock to map.
* @param[in] flag - Set to 1 to prevent DCache invalidation before mapping.
*
* @return 0 on success, < 0 on error.
*/
int sceKernelMapMemBlockWithFlagForDriver(SceUID uid, int flag);
sceKernelRemapMemBlockForDriver
| Version |
NID
|
| 0.990-1.06 |
not present
|
| 1.500.151-3.740.011 |
0xDFE2C8CB
|
Temp name was sceKernelRemapBlockForDriver, sceKernelPartialRemapMemBlockForDriver.
This can be used to remap RW memory as RX. To do this, first allocate a memory block of type SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_RW. After you are done writing, call sceKernelRemapMemBlockForDriver with type SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_RX.
int sceKernelRemapMemBlockForDriver(SceUID uid, SceKernelMemBlockType type);
sceKernelUnmapMemBlockForDriver
| Version |
NID
|
| 3.60 |
0xFFCD9B60
|
int sceKernelUnmapMemBlockForDriver(SceUID uid);
sceKernelGetPhysicalMemoryTypeForDriver
| Version |
NID
|
| 0.990-3.60 |
0x0AAA4FDD
|
Temp name was sceKernelVaddrMaybeGetSectionTypeForDriver
int sceKernelGetPhysicalMemoryTypeForDriver(void *vaddr);
sceKernelGetPhyMemInfoForDriver
| Version |
NID
|
| 0.931-3.60 |
0x89475192
|
typedef struct SceKernelPhyMemInfo { // Size is 0xC on 0.931-3.60
SceSize size; // Size of this structure
void* pbase; // Base physical address
SceSize psize; // Physical size
} SceKernelPhyMemInfo;
// as of FW 0.931-0.990, pindex must be one of these values: 1 PhyPartKernel, 8 PageVenezia, 9 PageVIP
#define SCE_KERNEL_PHYMEMPART_KERNEL_INDEX 1
#define SCE_KERNEL_PHYMEMPART_LPDDR2MAIN_KERNEL_INDEX 6
#define SCE_KERNEL_PAGE_VENEZIA_INDEX 8
#define SCE_KERNEL_PAGE_VIP_INDEX 9
SceInt32 sceKernelGetPhyMemInfoForDriver(SceUInt32 pindex, SceKernelPhyMemInfo *pInfo);
sceKernelPartialAllocMemBlockForDriver
| Version |
NID
|
| 3.60 |
0x16713BE8
|
This is a guessed name.
/**
* Allocates PhyPages for a partial range of a memblock.
*
* @param[in] uid - GUID of the memblock.
* @param[in] vbase - Start of the range.
* @param[in] vsize - Size of the range.
* @param[in] check - SCE_KERNEL_MEMBLOCK_PARTIAL_CHECK_[FREE|NONE]
*
* @return 0 on success, < 0 on error.
*/
int sceKernelPartialAllocMemBlockForDriver(SceUID uid, void* vbase, SceSize vsize, SceUInt32 opCheck);
sceKernelPartialFreeMemBlockForDriver
| Version |
NID
|
| 3.60 |
0x8C43B052
|
This is a guessed name.
/**
* Unmaps and frees PhyPages for a partial range of a memblock.
*
* @param[in] uid - GUID of the memblock.
* @param[in] vbase - Start of the range.
* @param[in] vsize - Size of the range.
* @param[in] check - SCE_KERNEL_MEMBLOCK_PARTIAL_CHECK_[ALLOCATED|NONE]
*
* @return 0 on success, < 0 on error.
*/
int sceKernelPartialFreeMemBlockForDriver(SceUID uid, void* vbase, SceSize vsize, SceUInt32 check);
sceKernelPartialMapMemBlockForDriver
| Version |
NID
|
| 3.60 |
0x13805CA8
|
This is a guessed name.
/**
* Maps PhyPages for a partial range of a memblock.
*
* @param[in] uid - GUID of the memblock.
* @param[in] vbase - Start of the range.
* @param[in] vsize - Size of the range.
* @param[in] check - SCE_KERNEL_MEMBLOCK_PARTIAL_CHECK_[ALLOCATED|FREE|ALLOCNOMAP|NONE]
*
* @return 0 on success, < 0 on error.
*/
int sceKernelPartialMapMemBlockForDriver (SceUID uid, void* vbase, SceSize vsize, SceUInt32 check);
sceKernelPartialRemapMemBlockForDriver
| Version |
NID
|
| 3.60 |
0x4C584B29
|
This is a guessed name.
/**
* Remaps PhyPages for a partial range of a memblock.
*
* @param[in] uid - GUID of the memblock.
* @param[in] vbase - Start of the range.
* @param[in] vsize - Size of the range.
* @param[in] op - SCE_KERNEL_MEMBLOCK_PARTIAL_OP_[REMAP_RO|REMAP_RW] | SCE_KERNEL_MEMBLOCK_PARTIAL_CHECK_[MAPPED_RW|MAPPED_RO|NONE]
*
* @return 0 on success, < 0 on error.
*/
int sceKernelPartialRemapMemBlockForDriver(SceUID uid, void* vbase, SceSize vsize, SceUInt32 op);
sceKernelPartialUnmapMemBlockForDriver
| Version |
NID
|
| 3.60 |
0x6C76AD89
|
This is a guessed name.
/**
* Unmaps PhyPages for a partial range of a memblock.
*
* @param[in] uid - GUID of the memblock.
* @param[in] vbase - Start of the range.
* @param[in] vsize - Size of the range.
* @param[in] check - SCE_KERNEL_MEMBLOCK_PARTIAL_CHECK_[MAPPED|NONE]
*
* @return 0 on success, < 0 on error.
*/
int sceKernelPartialUnmapMemBlockForDriver(SceUID uid, void* vbase, SceSize vsize, SceUInt32 check);
sceKernelGetMemBlockProcessForDriver
| Version |
NID
|
| 0.990-3.60 |
0x1EFC96EA
|
int sceKernelGetMemBlockProcessForDriver(SceUID uid);
sceKernelMemBlockToPARangeForDriver
| Version |
NID
|
| 3.60 |
0x64DBE472
|
This is a guessed name. Temp name was sceKernelMemBlockGetVirPageForDriver.
Gets a single PARange from the memblock. Returns an error if the memblock has more than one PARange.
int sceKernelMemBlockToPARangeForDriver(SceUID uid, SceKernelPARange *pRange);
sceKernelMemBlockToPAVectorForDriver
| Version |
NID
|
| 3.60 |
0x987EE587
|
int sceKernelMemBlockToPAVectorForDriver(SceUID uid, SceKernelPAVector *pPAV);
sceKernelCreateHeapForDriver
| Version |
NID
|
| 0.931-3.60 |
0x9328E0E8
|
The heap pool is thread safe.
has list "SCE_KERNEL_HEAP_HAS_HEAPCB".
// pOpt can be NULL
SceUID sceKernelCreateHeapForDriver(const char *name, SceSize size, SceKernelHeapCreateOpt *pOpt);
sceKernelDeleteHeapForDriver
| Version |
NID
|
| 0.940-3.60 |
0xD6437637
|
int sceKernelDeleteHeapForDriver(SceUID uid);
sceKernelVerifyHeapForDriver
| Version |
NID
|
| 0.990-3.60 |
0xC50A9C0D
|
int sceKernelVerifyHeapForDriver(SceUID uid, void *ptr);
sceKernelShrinkHeapForDriver
| Version |
NID
|
| 3.60 |
0x856FA2E3
|
int sceKernelShrinkHeapForDriver(SceUID heapid);
sceKernelAllocHeapMemoryForDriver
| Version |
NID
|
| 0.931-3.60 |
0x7B4CB60A
|
Temp name was sceKernelMemPoolAlloc. Official name might also be sceUIDKernelCreateForDriver.
Calls sceKernelAllocHeapMemoryWithOptionForDriver with a3 = 0.
void *sceKernelAllocHeapMemoryForDriver(SceUID uid, SceSize size);
sceKernelAllocUncacheHeapMemoryForDriver
| Version |
NID
|
| 3.60 |
0x7750CEA7
|
Temp name was sceKernelAllocHeapMemoryFromGlobalHeapForDriver.
Calls sceKernelAllocHeapMemoryForDriver with uncache heap.
void* sceKernelAllocUncacheHeapMemoryForDriver(SceSize size);
sceKernelAllocUncacheHeapMemoryWithOptionForDriver
| Version |
NID
|
| 0.990-3.60 |
0x0B4ED16A
|
Temp name was sceKernelAllocHeapMemoryFromGlobalHeapWithOptForDriver.
Calls sceKernelAllocHeapMemoryWithOptionForDriver with uncache heap.
void* sceKernelAllocUncacheHeapMemoryWithOptionForDriver(SceSize size, SceKernelHeapMemoryOpt *pOpt);
sceKernelAllocHeapMemoryWithOptForDriver
| Version |
NID
|
| 3.60 |
0xB415B5A8
|
Temp name was sceKernelAllocHeapMemoryWithOpt1ForDriver.
Same as sceKernelAllocHeapMemoryForDriver but uses pOpt.
void* sceKernelAllocHeapMemoryWithOptForDriver(SceUID uid, SceSize size, SceKernelHeapMemoryOpt *pOpt);
sceKernelAllocHeapMemoryWithOptionForDriver
| Version |
NID
|
| 0.990-3.60 |
0x49D4DD9B
|
Temp name was sceKernelAllocHeapMemoryWithOpt2ForDriver.
Same as sceKernelAllocHeapMemoryForDriver but uses pOpt.
void* sceKernelAllocHeapMemoryWithOptionForDriver(SceUID uid, SceSize size, SceKernelHeapMemoryOpt *pOpt);
sceKernelFreeHeapMemoryForDriver
| Version |
NID
|
| 0.990-3.60 |
0x3EBCE343
|
Temp name was sceKernelMemPoolFreeForDriver.
int sceKernelFreeHeapMemoryForDriver(SceUID uid, void *ptr);
sceKernelFreeUncacheHeapMemoryForDriver
| Version |
NID
|
| 3.60 |
0xFB817A59
|
Temp name was sceKernelFreeHeapMemoryFromGlobalHeapForDriver.
int sceKernelFreeUncacheHeapMemoryForDriver(void *ptr);
sceKernelCountFillValueFromUserForDriver
| Version |
NID
|
| 3.60 |
0xBDA6E42B
|
Temp name was sceKernelFirstDifferentBlock32UserForDriver.
int sceKernelCountFillValueFromUserForDriver(unsigned int *ptr, int value, int byte_size);
sceKernelCountFillValueFromUserProcForDriver
| Version |
NID
|
| 1.69-3.60 |
0x8334454F
|
Temp name was sceKernelFirstDifferentBlock32UserForPidForDriver.
int sceKernelCountFillValueFromUserProcForDriver(SceUID pid, unsigned int *ptr, int value, int byte_size);
sceKernelCountFillValue64FromUserForDriver
| Version |
NID
|
| 0.931.010-2.120.011 |
not present
|
| 2.500.071-3.740.011 |
0xBB3B02C2
|
Temp name was sceKernelFirstDifferentBlock64UserForDriver.
int sceKernelCountFillValue64FromUserForDriver(unsigned long long *ptr, int unused, unsigned long long value, int byte_size);
sceKernelCountFillValue64FromUserProcForDriver
| Version |
NID
|
| 0.931.010-2.120.011 |
not present
|
| 2.500.071-3.740.011 |
0xE83855FD
|
Temp name was sceKernelFirstDifferentBlock64UserForPidForDriver.
int sceKernelCountFillValue64FromUserProcForDriver(SceUID pid, unsigned long long *ptr, unsigned long long value, int byte_size);
sceKernelVAtoPAForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x8D160E65
|
Temp name was sceKernelGetPaddrForDriver.
This will write the physical address for a virtual address pVA to memory pointed to by pPA.
Returns <0 on error, values >=0 indicate success.
int sceKernelVAtoPAForDriver(ScePVoid pVA, SceUIntPtr *pPA);
sceKernelVAtoPABySWForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x65419BD3
|
Temp name was sceKernelGetPaddrWithSectionTypeCheckForDriver, sceKernelAddressSpaceVAtoPABySWForDriver.
int sceKernelVAtoPABySWForDriver(void *pVA, void **pPA);
sceKernelProcVAtoPAForDriver
| Version |
NID
|
| 0.990.000-2.120.011 |
0xC51934BD
|
| 2.500.071-3.740.011 |
not present
|
int sceKernelProcVAtoPAForDriver(SceUID pid, void *pVA, void **pPA);
sceKernelProcModeVAtoPAForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x61A67D32
|
Temp name was sceKernelGetPaddrForPidForDriver.
int sceKernelProcModeVAtoPAForDriver(SceUID pid, SceUInt32 mode, void *pVA, void **pPA);
sceKernelVARangeToPAVectorForDriver
| Version |
NID
|
| 0.931.010-3.740.011 |
0xE68BEEBD
|
Temp name was sceKernelGetPaddrListForDriver.
This function writes into pVector->output_buffer an array of vRange that encompasses the block of memory specified in the input. pVector->ret_count will contain the number of entries written. If pVector->output_buffer is null, it will just write the count.
int sceKernelVARangeToPAVectorForDriver(const SceKernelVARange *vRange, SceKernelPAVector *pPAV);
sceKernelVARangeToPAVectorBySWForDriver
| Version |
NID
|
| 0.931.010-1.06 |
not present
|
| 1.500.151-3.740.011 |
0x08A8A7E8
|
This is a guessed name. Temp name was sceKernelGetPaddrListForLargePageForDriver.
int sceKernelVARangeToPAVectorBySWForDriver(const SceKernelVARange *vRange, SceKernelPAVector *pPAV);
sceKernelVARangeToPAVectorByHWForDriver
| Version |
NID
|
| 0.931.010-1.06 |
not present
|
| 1.500.151-3.740.011 |
0x16844CE6
|
Temp name was sceKernelGetPaddrListForSmallPageForDriver.
int sceKernelVARangeToPAVectorByHWForDriver(const SceKernelVARange *vRange, SceKernelPAVector *pPAV);
sceKernelVARangeToPARangeForDriver
| Version |
NID
|
| 0.940-3.740.011 |
0xAE36C775
|
Temp name was sceKernelGetPaddrPairForDriver.
int sceKernelVARangeToPARangeForDriver(const SceKernelVARange *vRange, SceKernelPARange *pRange);
sceKernelVARangeToPARangeBySWForDriver
| Version |
NID
|
| 0.931.010-1.06 |
not present
|
| 1.500.151-3.740.011 |
0x32257A24
|
This is a guessed name. Temp name was sceKernelGetPaddrPairForLargePageForDriver.
int sceKernelVARangeToPARangeBySWForDriver(SceKernelVARange *vRange, SceKernelPARange *pRange);
sceKernelVARangeToPARangeByHWForDriver
| Version |
NID
|
| 0.931.010-1.06 |
not present
|
| 1.500.151-3.740.011 |
0xB3575090
|
This is a guessed name. Temp name was sceKernelGetPaddrPairForSmallPageForDriver.
int sceKernelVARangeToPARangeByHWForDriver(SceKernelVARange *vRange, SceKernelPARange *pRange);
sceKernelIsAccessibleRangeForDriver
| Version |
NID
|
| 0.931-3.60 |
0x9C78064C
|
Temp name was sceKernelFindMemBlockForDriver.
Also exported as #sceKernelIsAccessibleRangeForDebugger.
?Returns 0 on success (if is accessible range)?
int sceKernelIsAccessibleRangeForDriver(SceUInt32 permission_type, const void *pVA, SceSize len);
sceKernelIsAccessibleRangeProcForDriver
| Version |
NID
|
| 0.931-3.60 |
0x9F6E45E3
|
Temp name was sceKernelFindMemBlockForPidForDriver.
Also exported as #sceKernelIsAccessibleRangeProcForDebugger.
?Returns 0 on success (if is accessible range)?
int sceKernelIsAccessibleRangeProcForDriver(SceUID pid, SceUInt32 permission_type, const void *pVA, SceSize len);
sceKernelIsEqualAccessibleRangeProcBySWForDriver
| Version |
NID
|
| 1.800.071-3.740.011 |
0xF4AD89D8
|
Temp name was sceKernelProcIsPAWithinSameSection, sceKernelIsPaddrWithinSameSectionForUidForDriver.
int sceKernelIsEqualAccessibleRangeProcBySWForDriver(SceUID pid, int permission_type, void *pVA, SceSize len);
sceKernelGetDebugPADramRangeForDriver
| Version |
NID
|
| 1.800.071-3.740.011 |
0xC9928F5E
|
This is a guessed name. Temp name was sceKernelGetUnknownValidPhysAddressSpaceForDriver.
int sceKernelGetDebugPADramRangeForDriver(SceUIntPtr *address, SceSize *length);
sceKernelIsVAWithinDebugPADramRangeForDriver
| Version |
NID
|
| 1.800.071-3.740.011 |
0xA7C0D1FC
|
This is a guessed and bad name. Temp name was sceKernelIsPaddrWithinUnknownValidPhysAddressSpaceForDriver.
int sceKernelIsVAWithinDebugPADramRangeForDriver(const void *pVA);
sceKernelUserMapForDriver
| Version |
NID
|
| 0.990-3.60 |
0x278BC201
|
Temp name was sceKernelMapUserBlockDefaultTypeForDriver.
Assigns type 0.
SceUID sceKernelUserMapForDriver(const char *name, SceKernelMemoryRefPerm permission, const void *user_buf, SceSize size, void **kernel_page, SceSize *kernel_size, SceUInt32 *kernel_offset);
sceKernelProcUserMapForDriver
| Version |
NID
|
| 0.931.010-3.36 |
not present
|
| 3.500.000-3.740.011 |
0x0091D74D
|
Temp name was sceKernelMapUserBlockForDefaultTypeForPidForDriver. sceKernelProcUserMapForDriver is certainly the real name.
Assigns type 0.
SceUID sceKernelProcUserMapForDriver(SceUID pid, const char *name, SceKernelMemoryRefPerm permission, const void *user_buf, SceSize size, void **kernel_page, SceSize *kernel_size, SceUInt32 *kernel_offset);
sceKernelUserMapWithFlagsForDriver
| Version |
NID
|
| 0.931.030-1.060.031 |
not present
|
| 1.500.151-3.740.011 |
0x7D4F8B5F
|
Temp name was sceKernelMapUserBlockForDriver.
Permission is either "1" for read only, no execute or "2"/"3" for read write, no execute. Type is either 0, 1, or 17 and affects the block type. 0 is default. This will allocate kernel memory starting at kernel_page. To get the same memory as the user pointer, add the kernel_offset. kernel_size is how much is allocated.
// this signature is for FW 1.50-1.69
int sceKernelUserMapWithFlagsForDriver(SceKernelMemoryRefPerm permission, int type, void *user_buf, int size, void **kernel_page, int *kernel_size, int *kernel_offset);
// this signature is for FW 3.60 - it now allows to give a name
int sceKernelUserMapWithFlagsForDriver(char *name, SceKernelMemoryRefPerm permission, int type, void *user_buf, int size, void **kernel_page, int *kernel_size, int *kernel_offset);
sceKernelUserUnmapForDriver
| Version |
NID
|
| 0.990-3.60 |
0x00575B00
|
Temp name was sceKernelMemBlockReleaseForDriver.
int sceKernelUserUnmapForDriver(SceUID uid);
sceKernelUnlockRangeForDriver
| Version |
NID
|
| 3.60 |
0x75C70DE0
|
Temp name was sceKernelMemRangeReleaseForDriver.
int sceKernelUnlockRangeForDriver(void *addr, SceSize size);
sceKernelUnlockRangeProcForDriver
| Version |
NID
|
| 3.60 |
0xA8525B06
|
Temp name was sceKernelMemRangeReleaseForPidForDriver.
int sceKernelUnlockRangeProcForDriver(SceUID pid, void *addr, SceSize size);
sceKernelUnlockRangeWithModeForDriver
| Version |
NID
|
| 3.60 |
0x22CBE925
|
Temp name was sceKernelMemRangeReleaseWithPermForDriver, sceKernelUnlockRangeWithPermForDriver.
Decreases references to pages.
int sceKernelUnlockRangeWithModeForDriver(SceKernelLockMode mode, void *addr, SceSize size);
sceKernelLockRangeForDriver
| Version |
NID
|
| 3.60 |
0x59A4402F
|
Temp name was sceKernelMemRangeRetainForDriver.
int sceKernelLockRangeForDriver(void *addr, SceSize size);
sceKernelLockRangeProcForDriver
| Version |
NID
|
| 3.60 |
0x659586BF
|
Temp name was sceKernelMemRangeRetainForPidForDriver.
int sceKernelLockRangeProcForDriver(SceUID pid, void *addr, SceSize size);
sceKernelLockRangeWithModeForDriver
| Version |
NID
|
| 3.60 |
0xBC0A1D60
|
Temp name was sceKernelMemRangeRetainWithPermForDriver, sceKernelLockRangeWithPermForDriver.
Increases references to pages.
int sceKernelLockRangeWithModeForDriver(SceKernelLockMode mode, const void *addr, SceSize size);
sceKernelReadUserForDriver
| Version |
NID
|
| 0.990 |
0xE08F3967
|
| 3.60 |
not present
|
int sceKernelReadUserForDriver(void *dst, const void *src, SceSize size);
sceKernelCopyToUserForDriver
| Version |
NID
|
| 0.931-3.60 |
0x6D88EF8A
|
Temp name was sceKernelMemcpyKernelToUserForDriver.
Copies size bytes from a kernel buffer to a user buffer. Writes to uaddr are performed using strt-type instructions which cause a Data Abort if the pages are not user-accessible. If any Data Abort occurs during the operation, the exception is swallowed and an error is returned. Otherwise, the function returns SCE_OK.
SceInt32 sceKernelCopyToUserForDriver(void *uaddr, const void *kaddr, SceSize size);
sceKernelCopyToUserProcForDriver
| Version |
NID
|
| 0.931-3.60 |
0x6B825479
|
Temp name was sceKernelMemcpyKernelToUserForPidForDriver, sceKernelProcCopyToUserForDriver.
Temporarily switches to specified process' address space for a call to sceKernelCopyToUser.
SceInt32 sceKernelProcCopyToUserForDriver(ScePID pid, void *uaddr, const void *kaddr, SceSize size);
sceKernelCopyToUserProcDomainForDriver
| Version |
NID
|
| 0.931-1.69 |
0x571D2739
|
| 3.60 |
not present
|
Temp name was sceKernelRoMemcpyKernelToUserForPidForDriver, sceKernelProcCopyToUserRoForDriver.
Same as sceKernelCopyToUserProc, but sets DACR to 0xFFFFFFFF (ignore access permission bits in page table) before the copy then restores it. Use this function instead of sceKernelCopyToUserProc if you need to write data to read-only pages.
SceInt32 sceKernelCopyToUserProcDomainForDriver(SceUID pid, void *dst, const void *src, SceSize size);
sceKernelCopyFromUserForDriver
| Version |
NID
|
| 0.931-3.60 |
0xBC996A7A
|
Temp name was sceKernelMemcpyUserToKernelForDriver.
Copies size bytes from a user buffer to a kernel buffer. Reads from uaddr are performed using ldrt-type instructions which cause a Data Abort if the pages are not user-accessible. If any Data Abort occurs during the operation, the exception is swallowed and an error is returned. Otherwise, the function returns SCE_OK.
SceInt32 sceKernelCopyFromUserForDriver(void *kaddr, const void *uaddr, SceSize size);
sceKernelCopyFromUserProcForDriver
| Version |
NID
|
| 0.931.010-3.60 |
0x605275F8
|
Temp name was sceKernelMemcpyUserToKernelForPidForDriver, sceKernelProcCopyFromUserForDriver.
Temporarily switches to specified process' address space for a call to sceKernelCopyFromUser.
SceInt32 sceKernelCopyFromUserProcForDriver(SceUID pid, void *dst, void *src, SceSize size);
sceKernelCopyFromToUserForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 1.50-3.60 |
0x1BD44DD5
|
Temp name was sceKernelMemcpyUserToUserForDriver, sceKernelUserCopyForDriver.
int sceKernelCopyFromToUserForDriver(void *dst, const void *src, SceSize size);
sceKernelCopyFromToUserProcForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 1.50-3.60 |
0x8E086C33
|
Temp name was sceKernelMemcpyUserToUserForPidForDriver, sceKernelProcUserCopyForDriver.
int sceKernelCopyFromToUserProcForDriver(SceUID pid, void *dst, const void *src, SceSize size);
sceKernelUserStrnlenForDriver
| Version |
NID
|
| 0.931 |
not present (in ForKernel)
|
| 0.940-0.990 |
0xFF06898A
|
| 1.50-3.60 |
not present
|
Temp name was sceKernelStrnlenFromUserForDriver.
SceSize sceKernelUserStrnlenForDriver(const char *s, SceSize maxlen);
sceKernelStrnlenUserForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 1.50-3.60 |
0xB429D419
|
SceSize sceKernelStrnlenUserForDriver(const char *s, SceSize maxlen);
sceKernelProcStrnlenUserForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 1.50-3.60 |
0x9929EB07
|
SceSize sceKernelProcStrnlenUserForDriver(SceUID pid, const char *s, SceSize maxlen);
sceKernelProcUserStrcpyForDriver
| Version |
NID
|
| 0.990-1.50 |
0xEBCB3970
|
| 3.60 |
not present
|
int sceKernelProcUserStrcpyForDriver(SceUID pid, char *dst, const char *src);
sceKernelStrncpyFromUserSpecialForDriver
| Version |
NID
|
| 0.990-1.50 |
0x7440BCDA
|
| 3.60 |
not present
|
int sceKernelStrncpyFromUserSpecialForDriver(char *dst, const char *src, SceSize maxlen, SceSize *dst_size);
sceKernelStrncpyToUserSpecialForDriver
| Version |
NID
|
| 0.990-1.50 |
0x369355F1
|
| 3.60 |
not present
|
int sceKernelStrncpyToUserSpecialForDriver(char *dst, const char *src, SceSize maxlen, SceSize *dst_size);
sceKernelUserStrncpyForDriver
| Version |
NID
|
| 0.931 |
not present. Present but not exported.
|
| 0.940-0.990 |
0xE6D5EFE4
|
| 1.50-3.60 |
not present
|
Returns 0 on success.
int sceKernelUserStrncpyForDriver(char *dst, const char *src, SceSize maxlen);
sceKernelStrncpyFromUserForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 1.50-3.60 |
0xDB3EC244
|
Temp name was sceKernelStrncpyUserToKernelForDriver.
int sceKernelStrncpyFromUserForDriver(char *dst, const char *src, SceSize maxlen);
sceKernelProcStrncpyFromUserForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 1.50-3.60 |
0x75AAF178
|
Temp name was sceKernelStrncpyUserForPidForDriver.
int sceKernelProcStrncpyFromUserForDriver(SceUID pid, char *dst, const char *src, SceSize maxlen);
sceKernelStrncpyToUserForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 1.50-3.60 |
0x80BD6FEB
|
Temp name was sceKernelStrncpyKernelToUserForDriver.
int sceKernelStrncpyToUserForDriver(char* dst, const char *src, SceSize maxlen);
sceKernelProcStrncpyToUserForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 1.50-3.60 |
0xFED82F2D
|
Temp name was sceKernelMemcpyKernelToUserForPidUncheckedForDriver.
int sceKernelProcStrncpyToUserForDriver(SceUID pid, char *dst, const char *src, SceSize maxlen);
SceSysmemForDebugger
This library was removed on FW 1.80.
sceKernelPhysicalAddressSpaceStartForDebugger
| Version |
NID
|
| 0.931 |
0x6AE2188F
|
| 1.691-3.60 |
not present
|
int sceKernelPhysicalAddressSpaceStartForDebugger(void);
sceKernelGetPhysicalAddressSpaceForDebugger
| Version |
NID
|
| 0.931 |
0xE8905626
|
| 1.691-3.60 |
not present
|
In FW 0.931, it calls sceKernelPhysicalAddressSpaceStartForDebugger.
void *sceKernelGetPhysicalAddressSpaceForDebugger(void);
sceKernelIsAccessibleRangeProcForDebugger
?Returns 0 on success (if is accessible range)?
int sceKernelIsAccessibleRangeProcForDebugger(SceUID pid, SceUInt32 mode, const void *pVA, SceSize size);
sceKernelIsAccessibleRangeForDebugger
?Returns 0 on success (if is accessible range)?
int sceKernelIsAccessibleRangeForDebugger(SceUInt32 mode, const void *pVA, SceSize size);
SceSysmem
The SceSysmem library is responsible for both low-level and high-level memory management. There are functions for allocating raw blocks of memory (similar to Linux sbrk) as well as functions for maintaining a heap-like structure (similar to malloc) for kernel, however SceLibKernel implements a proper heap and that is used for user code.
sceKernelMapMemBlock
| Version |
NID
|
| 0.990-1.69 |
0x7B763A21
|
| 3.60 |
not present
|
sceKernelRemapMemBlock
| Version |
NID
|
| 0.990-1.69 |
0x3B29E0F5
|
| 3.60 |
not present
|
sceKernelPartialMapMemBlock
| Version |
NID
|
| 0.990 |
not present
|
| 1.69 |
0xC0A59868
|
| 3.60 |
not present
|
sceKernelUnmapMemBlock
| Version |
NID
|
| 0.990-1.69 |
0xEE30D976
|
| 3.60 |
not present
|
int sceKernelUnmapMemBlock(SceUID uid);
sceKernelPartialUnmapMemBlock
| Version |
NID
|
| 0.990 |
not present
|
| 1.69 |
0xCA99929B
|
| 3.60 |
not present
|
sceKernelGetMemBlockInfoByRange
| Version |
NID
|
| 0.990 |
not present
|
| 0.996-3.60 |
0x006F3DB4
|
/**
* @brief Get memory block informaton by virtual address range
* @param[in] vbase base address
* @param[in] vsize size
* @param[inout] pInfo information structure
*/
int sceKernelGetMemBlockInfoByRange(void *vbase, SceSize vsize, SceKernelMemBlockInfo *pInfo);
sceKernelGetMemBlockInfoByAddr
| Version |
NID
|
| 0.990-3.60 |
0x4010AD65
|
/**
* @brief Get memory block information.
*
* Get information about a memory block.
* @param[in] vbase Base address
* @param[inout] pInfo Information structure
*/
int sceKernelGetMemBlockInfoByAddr(void *vbase, SceKernelMemBlockInfo *pInfo);
sceKernelGetSubbudgetInfo
| Version |
NID
|
| 0.990 |
not present
|
| 1.69-3.60 |
0x832B4A65
|
#define SCE_KERNEL_SUBBUDGET_ID_MAIN (0)
#define SCE_KERNEL_SUBBUDGET_ID_CDLG (1)
typedef struct SceKernelSubbudgetInfo { // size is 0xC on FW 3.60
int size; // Size of this structure
SceUInt32 totalSize;
SceUInt32 freeSize;
} SceKernelSubbudgetInfo;
/**
* Get the subbudget info
*
* @param[in] subbudget - The subbudget ID
* @param[out] pInfo - The subbudget info
*
* @return 0 on success, < 0 on error.
*/
int sceKernelGetSubbudgetInfo(SceInt subbudget, SceKernelSubbudgetInfo *pInfo);
sceKernelGetFreeMemorySize
| Version |
NID
|
| 1.69-3.60 |
0x87CC580B
|
/**
* Get free memory size
*/
int sceKernelGetFreeMemorySize(SceKernelFreeMemorySizeInfo *info);
sceKernelOpenMemBlock
| Version |
NID
|
| 0.990-3.60 |
0x8EB8DFBB
|
// on FW <= 1.691, flags is not used
SceUID sceKernelOpenMemBlock(const char *name, int flags);
sceKernelFindMemBlockByAddr
| Version |
NID
|
| 0.990-3.60 |
0xA33B99D1
|
/**
* Find memory block by virtual range (base address and size)
* If size == 0, API returns a memory block which contains 'start'
* If size > 0, API returns a memory block just fit range [start, start + size].
* @param[in] vaddr base address
* @param[in] size address size
* @retval >=SCE_OK block id
* @retval <SCE_OK error
*/
SceUID sceKernelFindMemBlockByAddr(void *vaddr, SceSize size);
sceKernelFreeMemBlock
| Version |
NID
|
| 0.990-3.60 |
0xA91E15EE
|
/**
* Free memory block.
*
* @param[in] uid block uid
* @retval SCE_OK Success
* @retval <SCE_OK Error code
*/
int sceKernelFreeMemBlock(SceUID uid);
sceKernelFreeMemBlockForVM
| Version |
NID
|
| 3.60 |
0x4EA13FEA
|
int sceKernelFreeMemBlockForVM(SceUID uid);
sceKernelCloseMemBlock
| Version |
NID
|
| 0.990-3.60 |
0xB680E3A0
|
int sceKernelCloseMemBlock(SceUID uid);
sceKernelGetMemBlockBase
| Version |
NID
|
| 0.996-3.60 |
0xB8EF5818
|
/**
* @brief Get mapped base address of memory block.
*
* Get base address of memory block.
* @param[in] uid block id
* @param[out] ppBase base address of memory block
* @retval SCE_OK success
* @retval <SCE_OK Error
*/
int sceKernelGetMemBlockBase(SceUID uid, void **ppBase);
sceKernelAllocMemBlock
| Version |
NID
|
| 0.990-3.60 |
0xB9D5EBDE
|
/**
* Reserve a new memory block.
*
* The memory types that can be specified for type are as follows.
* - SCE_KERNEL_MEMBLOCK_TYPE_USER_RW
* - SCE_KERNEL_MEMBLOCK_TYPE_USER_RW_UNCACHE
* - SCE_KERNEL_MEMBLOCK_TYPE_USER_MAIN_PHYCONT_RW
* - SCE_KERNEL_MEMBLOCK_TYPE_USER_MAIN_PHYCONT_NC_RW
* - SCE_KERNEL_MEMBLOCK_TYPE_USER_CDRAM_RW
*
* Allocate a memory block.
*
* @param[in] name Memory block name
* @param[in] vsize Memory block virtual size
* @param[in] flags Options
* @retval id UID of memory block
* @retval <SCE_OK Error code
*/
SceUID sceKernelAllocMemBlock(const char *name, SceKernelMemBlockType type, SceSize vsize, const struct SceKernelAllocMemBlockOpt *pOpt);
sceKernelAllocUnmapMemBlock
| Version |
NID
|
| 3.60 |
0xEC636BCB
|
int sceKernelAllocUnmapMemBlock(char *name, SceSize size);
sceKernelOpenVMDomain
| Version |
NID
|
| 1.69-3.60 |
0x9CA3EB2B
|
int sceKernelOpenVMDomain();
sceKernelSyncVMDomain
| Version |
NID
|
| 1.69-3.60 |
0x19D2A81A
|
int sceKernelSyncVMDomain(SceUID uid, void *data, SceSize size);
sceKernelCloseVMDomain
| Version |
NID
|
| 1.69-3.60 |
0xD6CA56CA
|
int sceKernelCloseVMDomain();
sceKernelAllocMemBlockForVM
| Version |
NID
|
| 1.69-3.60 |
0xE2D7E137
|
SceUID sceKernelAllocMemBlockForVM(const char *name, SceSize vsize);
sceKernelCheckModelCapability
| Version |
NID
|
| 0.931.010-2.12 |
not present
|
| 2.500.071-3.570.011 |
0x0144FBD9
|
Only bits 7 and 10 are supported.
Returns 0x80020005 if bit is not supported.
On success, returns SCE_TRUE if the model has capability, else SCE_FALSE.
int sceKernelCheckModelCapability(int bit);
sceKernelGetModelForCDialog
| Version |
NID
|
| 3.60 |
0xA2CB322F
|
int sceKernelGetModelForCDialog();
sceKernelGetModel
| Version |
NID
|
| 3.60 |
0xD0D4F729
|
int sceKernelGetModel();
sceKernelIsPSVitaTV
| Version |
NID
|
| 3.60 |
0x1453A5E5
|
int sceKernelIsPSVitaTV();
SceDipsw
sceKernelCheckDipsw
| Version |
NID
|
| 1.69-3.60 |
0x1C783FB2
|
sceKernelClearDipsw
| Version |
NID
|
| 1.69-3.60 |
0x800EDCC1
|
sceKernelSetDipsw
| Version |
NID
|
| 1.69-3.60 |
0x817053D4
|
SceDipswForDriver
sceKernelCheckDipswForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0xA98FC2FD
|
int sceKernelCheckDipswForDriver(int no);
sceKernelClearDipswForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0xF1F3E9FE
|
void sceKernelClearDipswForDriver(int no);
sceKernelSetDipswForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x82E45FBF
|
void sceKernelSetDipswForDriver(int no);
sceKernelGetDipswInfoForDriver
| Version |
NID
|
| 1.800.071-3.740.011 |
0xB2AD48BE
|
This is a guessed name.
All it does is:
return *(int *)(dipsw_addr + 4 * info_id);
info_id possible values:
- 0: CP timestamp 1
- 1: CP Version, CP Board ID
- 2: CP timestamp 2
- 3: ASLR Seed
See KBL Param#DIP Switches.
int sceKernelGetDipswInfoForDriver(SceUInt32 info_id);
SceUartForKernel
sceKernelUartChStartForKernel
| Version |
NID
|
| 0.931-3.60 |
0xA9C74212
|
Temp name was sceKernelUartInitForKernel, sceUartInitForKernel.
It initializes the clock generator registers for the UART channel. See UART Registers. The default baud rate is 115200 for channels 0-5 and 250000 for channel 6.
// channel: 0-6
int sceKernelUartChStartForKernel(SceUInt32 channel);
sceKernelUartReadAvailableForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.60 |
0x38DB7629
|
Temp name was sceUartReadAvailableForKernel.
Returns the number of words available to read from the read FIFO.
int sceKernelUartReadAvailableForKernel(int channel);
sceKernelUartReadForKernel
| Version |
NID
|
| 0.931-3.60 |
0x9BBF1255
|
Temp name was sceUartReadForKernel.
int sceKernelUartReadForKernel(int channel);
sceKernelUartWriteForKernel
| Version |
NID
|
| 0.931-3.60 |
0x41973874
|
Temp name was sceUartWriteForKernel.
int sceKernelUartWriteForKernel(int channel, char c);
sceKernelUartPutcharForKernel
| Version |
NID
|
| 0.931-0.990 |
0xAF243C6A
|
| 3.60 |
not present
|
int sceKernelUartPutcharForKernel(char c);
SceCpu
sceKernelCpuId
| Version |
NID
|
| 1.000.071-3.740.011 |
0x2704CFEE
|
Returns the CPU ID of the current core.
SceUInt sceKernelCpuId(void);
SceCpuForKernel
sceKernelSendEventForKernel
| Version |
NID
|
| 0.990 |
0x45885327
|
| 3.60 |
not present
|
void sceKernelSendEventForKernel(void);
sceKernelWaitForEventForKernel
| Version |
NID
|
| 0.931 |
0xD2629465
|
| 3.60 |
not present
|
void sceKernelWaitForEventForKernel(void);
sceKernelPrintCpuModeForKernel
| Version |
NID
|
| 0.931 |
0xDC99515C
|
| 3.60 |
not present
|
sceKernelTlsKernelSetForKernel
| Version |
NID
|
| 0.940 |
0x7A180AA4
|
| 3.60 |
not present
|
// thread_index must be < 8
void *sceKernelTlsKernelSetForKernel(SceUInt32 thread_index, void *tls);
sceKernelTlsKernelGetForKernel
| Version |
NID
|
| 0.940 |
0x28E080BC
|
| 3.60 |
not present
|
// thread_index must be < 8
void *sceKernelTlsKernelGetForKernel(SceUInt32 thread_index);
sceKernelRoundupDCacheLineForKernel
| Version |
NID
|
| 0.931-0.990 |
0xED512F50
|
| 3.60 |
not present
|
Calls the function previously registered by SceSysmem#sceKernelSetRoundupDCacheLineFuncForKernel.
int sceKernelRoundupDCacheLineForKernel(int a1);
sceKernelSetRoundupDCacheLineFuncForKernel
| Version |
NID
|
| 0.931-0.990 |
0x66C3AA93
|
| 3.60 |
not present
|
Uses CTR and CTR-DMINLINE to determine which function to return.
(int sceKernelRoundupDCacheLineForKernel(int) *) sceKernelSetRoundupDCacheLineFuncForKernel(void);
sceKernelReadUser8ForKernel
| Version |
NID
|
| 0.990 |
0x942B92C3
|
| 3.60 |
not present
|
int sceKernelReadUser8ForKernel(uint8_t *dest, uint8_t *psrc);
sceKernelReadUser16ForKernel
| Version |
NID
|
| 0.990 |
maybe present
|
| 3.60 |
not present
|
int sceKernelReadUser16ForKernel(uint16_t *dest, uint16_t *psrc);
sceKernelReadUser32ForKernel
| Version |
NID
|
| 0.990 |
0x6091086F
|
| 3.60 |
not present
|
int sceKernelReadUser32ForKernel(uint32_t *dest, uint32_t *psrc);
sceKernelWriteUser8ForKernel
| Version |
NID
|
| 0.990 |
0x13B7B151
|
| 3.60 |
not present
|
int sceKernelWriteUser8ForKernel(uint8_t *dest, uint8_t val);
sceKernelWriteUser16ForKernel
| Version |
NID
|
| 0.990 |
maybe present
|
| 3.60 |
not present
|
int sceKernelWriteUser16ForKernel(uint16_t *dest, uint16_t val);
sceKernelWriteUser32ForKernel
| Version |
NID
|
| 0.990 |
0x101894E0
|
| 3.60 |
not present
|
int sceKernelWriteUser32ForKernel(uint32_t *dest, uint32_t val);
sceKernelVMRead8ForKernel
| Version |
NID
|
| 0.990 |
0xA2F0FE9D
|
| 3.60 |
not present
|
int sceKernelVMRead8ForKernel(uint8_t *dest, uint8_t *psrc);
sceKernelVMRead16ForKernel
| Version |
NID
|
| 0.990 |
0xF31D4D10
|
| 3.60 |
not present
|
int sceKernelVMRead16ForKernel(uint16_t *dest, uint16_t *psrc);
sceKernelVMRead32ForKernel
| Version |
NID
|
| 0.931-0.990 |
0x316574B1
|
| 3.60 |
not present
|
int sceKernelVMRead32ForKernel(uint32_t *dest, uint32_t *psrc);
sceKernelVMWrite8ForKernel
| Version |
NID
|
| 0.931 |
0xA3C65664
|
| 3.60 |
not present
|
int sceKernelVMWrite8ForKernel(uint8_t *dest, uint8_t val);
sceKernelVMWrite16ForKernel
| Version |
NID
|
| 0.931 |
0xBF38A460
|
| 3.60 |
not present
|
int sceKernelVMWrite16ForKernel(uint16_t *dest, uint16_t val);
sceKernelVMWrite32ForKernel
| Version |
NID
|
| 0.931 |
0x04D129B2
|
| 3.60 |
not present
|
int sceKernelVMWrite32ForKernel(uint32_t *dest, uint32_t val);
sceKernelMMUIsValidMapForKernel
| Version |
NID
|
| 0.931 |
0x4891F923
|
| 3.60 |
not present
|
int sceKernelMMUIsValidMapForKernel(SceKernelMMUContext *context, const void *vbase, SceSize size, const void *pbase);
sceKernelMMUIsValidUnmapForKernel
| Version |
NID
|
| 0.931 |
0x60EA8433
|
| 3.60 |
not present
|
int sceKernelMMUIsValidUnmapForKernel(SceKernelMMUContext *context, const void *vbase, SceSize size);
sceKernelMMUL1GetInfoForKernel
| Version |
NID
|
| 0.931-0.990 |
0x9D346F87
|
| 3.60 |
not present
|
Parses a L1PT for information about a specific entry. Pass the address of the L1PT in l1pt. Used by sceKernelAddressSpaceGetMMUL1InfoForKernel.
SceInt32 sceKernelMMUL1GetInfoForKernel(void* l1pt, const void *addr, SceKernelMMUL1Info *pInfo);
sceKernelMMUL2GetInfoForKernel
| Version |
NID
|
| 0.931-0.990 |
0x247629A7
|
| 3.60 |
not present
|
int sceKernelMMUL2GetInfoForKernel(int a1, void *addr, void *pInfo);
sceKernelMMUMapSectionsForKernel
| Version |
NID
|
| 0.931-0.990 |
0x868B471A
|
| 3.60 |
not present
|
| 3.65 |
Present, but not exported
|
SceInt32 sceKernelMMUMapSectionsForKernel(const void *ttbr, SceKernelMemoryType code, SceUInt32 domain, void *vaddr, SceSize vsize, void *paddr);
sceKernelMMUMapSupersectionsForKernel
| Version |
NID
|
| 0.931-0.990 |
0x0D9DA15F
|
| 3.60 |
not present
|
| 3.65 |
Present, but not exported
|
SceInt32 sceKernelMMUMapSupersectionsForKernel(const void *ttbr, SceKernelMemoryType code, SceUInt32 domain, void *vaddr, SceSize vsize, void *paddr);
sceKernelMMUMapSmallPagesForKernel
| Version |
NID
|
| 0.931-0.990 |
0xB953E022
|
| 3.60 |
not present
|
| 3.65 |
Present, but not exported
|
int sceKernelMMUMapSmallPagesForKernel(const void *table, SceKernelMemoryType code, void *vbase, SceUInt32 voffset, SceSize vsize, void *paddr);
sceKernelMMUMapSmallPageForKernel
| Version |
NID
|
| 0.931-0.990 |
0xCC7C16F8
|
| 3.60 |
not present
|
int sceKernelMMUMapSmallPageForKernel(const void *table, SceKernelMemoryType code, void *vbase, SceUInt32 voffset, void *paddr);
sceKernelMMUMapLargePagesForKernel
| Version |
NID
|
| 0.931-0.990 |
0x78D32D38
|
| 3.60 |
not present
|
| 3.65 |
Present, but not exported
|
int sceKernelMMUMapLargePagesForKernel(const void *table, SceKernelMemoryType code, void *vbase, SceUInt32 voffset, SceSize vsize, void *paddr);
sceKernelMMUUnmapSectionsWithFlagsForKernel
| Version |
NID
|
| 0.931-0.990 |
0xFC657FD1
|
| 3.60 |
not present
|
int sceKernelMMUUnmapSectionsWithFlagsForKernel(const void *table, uint32_t maybe_ttbr0, void *vbase, SceSize vsize, SceUInt32 flags);
sceKernelMMUUnmapSupersectionsWithFlagsForKernel
| Version |
NID
|
| 0.931-0.990 |
0x0E4D29C6
|
| 3.60 |
not present
|
int sceKernelMMUUnmapSupersectionsWithFlagsForKernel(const void *table, uint32_t maybe_ttbr0, void *vbase, SceSize vsize, SceUInt32 flags);
sceKernelMMUUnmapSmallPagesWithFlagsForKernel
| Version |
NID
|
| 0.931-0.990 |
0x11EBA8CE
|
| 3.60 |
not present
|
int sceKernelMMUUnmapSmallPagesWithFlagsForKernel(const void *table, uint32_t maybe_ttbr0, void *vbase, SceUInt32 voffset, SceSize vsize, SceUInt32 flags);
sceKernelMMUUnmapLargePagesWithFlagsForKernel
| Version |
NID
|
| 0.931-0.990 |
0x44319918
|
| 3.60 |
not present
|
int sceKernelMMUUnmapLargePagesWithFlagsForKernel(const void *table, uint32_t maybe_ttbr0, void *vbase, SceUInt32 voffset, SceSize vsize, SceUInt32 flags);
sceKernelMMUL1VAtoPABySWForKernel
| Version |
NID
|
| 0.990 |
0x8E4ECF17
|
| 3.60 |
not present
|
int sceKernelMMUL1VAtoPABySWForKernel(const void *table, void *pVA, void **pPA);
sceKernelMMUSetL2PageTableForKernel
| Version |
NID
|
| 0.990 |
0xAECA0820
|
| 3.60 |
not present
|
int sceKernelMMUSetL2PageTableForKernel(const void *ttbr, const void *map, const void *pbase);
sceKernelMMUUnsetL2PageTableForKernel
| Version |
NID
|
| 0.990 |
0xCB519DF3
|
| 3.60 |
not present
|
int sceKernelMMUUnsetL2PageTableForKernel(const void *ttbr, const void *PTE);
SceCpuForKernel_CA4124DE
| Version |
NID
|
| 0.990 |
0xCA4124DE
|
| 3.60 |
not present
|
Returns 1, 2 or 6 based on some page/section properties.
int SceCpuForKernel_CA4124DE(const void *table, void *pVA, void **pPA);
sceKernelMMUGetContextForKernel
| Version |
NID
|
| 0.920.050-0.931.010 |
0x211B89DA
|
| 1.03-3.740.011 |
not present
|
Temp name was sceKernelCpuSaveContextForKernel.
int sceKernelMMUGetContextForKernel(SceKernelMMUContext *context);
sceKernelMMUChangeContextForKernel
| Version |
NID
|
| 0.920.050-0.931.010 |
0x0A4F0FB9
|
| 1.03-3.740.011 |
not present
|
Temp name was sceKernelCpuRestoreContextForKernel.
int sceKernelMMUChangeContextForKernel(SceKernelMMUContext *context);
sceKernelMMUVAtoPAWithModeForKernel
| Version |
NID
|
| 0.931-3.60 |
0x67343A07
|
Temp name was sceKernelCpuGetPaddrWithMaskForKernel.
mode (maskPAR) is usually 0x33, sometimes 2.
/*
* mode:
* 0x01 for ATS1CPR test successful
* 0x02 for ATS1CPW test successful
* 0x10 for ATS1CUR test successful
* 0x20 for ATS1CUW test successful
*/
int sceKernelMMUVAtoPAWithModeForKernel(int mode, void *pVA, void **ppPA);
sceKernelMMUCheckRangeWithModeForKernel
| Version |
NID
|
| 0.931 |
0xCCDA3B8C
|
| 3.60 |
not present
|
Return 0 if all pages are valid, < 0 else.
int sceKernelMMUCheckRangeWithModeForKernel(int mode, void *start, SceSize size);
sceKernelMMUVAtoPAForKernel
| Version |
NID
|
| 0.931-3.60 |
0x2A46E800
|
Temp name was sceKernelCpuGetPaddrForKernel.
Uses mode (maskPAR) 0x33.
This will write the physical address for a virtual address pVA to memory pointed to by pPA.
Returns <0 on error, values >=0 indicate success.
int sceKernelMMUVAtoPAForKernel(void *pVA, void **pPA);
sceKernelCpuGetCONTEXTIDRForKernel
| Version |
NID
|
| 3.60 |
0x5B6B3274
|
This is a guessed name.
return (SceUInt8)__mrc(15, 0, 13, 0, 1); // Read CONTEXTIDR (Context ID Register)
SceUInt8 sceKernelCpuGetCONTEXTIDRForKernel(void);
sceKernelCpuUpdateSCTLRForKernel
| Version |
NID
|
| 3.60 |
0x04008CF7
|
int result;
result = __mrc(15, 0, 1, 0, 0) | 0x1806; // Read SCTLR (System Control Register)
__mcr(15, 0, result, 1, 0, 0); // Write SCTLR (System Control Register)
return result;
void sceKernelCpuUpdateSCTLRForKernel(void); // SCTLR (System Control Register)
sceKernelCpuBranchPredictorInvalidateAllISForKernel
| Version |
NID
|
| 3.60 |
0x1BB2BB8D
|
void sceKernelCpuBranchPredictorInvalidateAllISForKernel(void); // BPIALLIS, Branch predictor invalidate all (IS)
sceKernelCpuBranchPredictorInvalidateAllForKernel
| Version |
NID
|
| 3.60 |
0x4C4C7D6B
|
void sceKernelCpuBranchPredictorInvalidateAllForKernel(void); // BPIALL, Branch predictor invalidate all
sceKernelDcacheCleanInvalidateAllForKernel
| Version |
NID
|
| 0.931.010 |
0x85A27F98
|
Flushes PLE then cleans and invalidates L1 Dcache and L2 cache in this order.
void sceKernelDcacheCleanInvalidateAllForKernel(void);
sceKernelL1DcacheInvalidateForKernel
| Version |
NID
|
| 3.60 |
0x470EAE1E
|
Temp name was sceKernelCpuDcacheInvalidateMVACForKernel.
void sceKernelL1DcacheInvalidateForKernel(void* addr); // DCIMVAC, Data cache invalidate by MVA (PoC)
sceKernelL1DcacheInvalidateRangeForKernel
| Version |
NID
|
| 3.60 |
0x583F30D1
|
This is a guessed name. Temp name was sceKernelCpuDcacheInvalidateMVACRangeForKernel.
void sceKernelL1DcacheInvalidateRangeForKernel(void *addr, unsigned int size); // DCIMVAC, Data cache invalidate by MVA (PoC)
sceKernelL1DcacheCleanInvalidateRangeForKernel
| Version |
NID
|
| 0.931-3.60 |
0x6BA2E51C
|
This is a guessed name. Temp name was sceKernelCpuDcacheCleanInvalidateMVACRangeForKernel, sceKernelCpuDcacheWritebackInvalidateRangeForKernel, sceKernelDcacheWritebackInvalidateRangeForKernel.
// DCCIMVAC, Data cache clean and invalidate by MVA (PoC)
void sceKernelL1DcacheCleanInvalidateRangeForKernel(const void *addr, unsigned int size);
sceKernelL1DcacheInvalidateAllForKernel
| Version |
NID
|
| 3.60 |
0x2F3BF020
|
This is a guessed name. Temp name was sceKernelCpuDcacheInvalidateSWForKernel.
void sceKernelL1DcacheInvalidateAllForKernel(void); // DCISW, Data cache invalidate by set/way (all the cache)
sceKernelL1DcacheCleanAllForKernel
| Version |
NID
|
| 3.60 |
0x73A30DB2
|
This is a guessed name. Temp name was sceKernelCpuDcacheCleanSWForKernel.
void sceKernelL1DcacheCleanAllForKernel(void); // DCCSW, Data cache clean by set/way (all the cache)
sceKernelL1DcacheCleanInvalidateAllForKernel
| Version |
NID
|
| 0.931-3.60 |
0x76DAB4D0
|
Guessed name was sceKernelCpuDcacheCleanInvalidateSWForKernel.
void sceKernelL1DcacheCleanInvalidateAllForKernel(void);
sceKernelL1DcacheCleanForKernel
| Version |
NID
|
| 3.60 |
0xF7159B55
|
Temp name was sceKernelCpuDcacheCleanMVACForKernel.
void sceKernelL1DcacheCleanForKernel(void* addr); // DCCMVAC, Data cache clean by MVA (PoC)
sceKernelL1DcacheCleanRangeForKernel
| Version |
NID
|
| 0.931-3.60 |
0xC5C1EE4E
|
Guessed name was sceKernelCpuDcacheCleanMVACRangeForKernel.
void sceKernelL1DcacheCleanRangeForKernel(void *addr, unsigned int size); // DCCMVAC, Data cache clean by MVA (PoC)
sceKernelL1DcacheCleanInvalidateForKernel
| Version |
NID
|
| 3.60 |
0xC8E8C9E9
|
This is a guessed name. Temp name was sceKernelCpuDcacheCleanInvalidateMVACForKernel.
void sceKernelL1DcacheCleanInvalidateForKernel(void *start); // DCCIMVAC, Data cache clean and invalidate by MVA (PoC)
sceKernelL1IcacheInvalidateEntireAllCoreForKernel
| Version |
NID
|
| 0.931-3.60 |
0x264DA250
|
| 3.65 |
0x803C84BF
|
Guessed name was sceKernelCpuIcacheInvalidateAllUISForKernel.
Invalidates the L1 Icache for all cores.
void sceKernelL1IcacheInvalidateEntireAllCoreForKernel(void);
sceKernelL1IcacheInvalidateEntireForKernel
| Version |
NID
|
| 3.60 |
0xAEE0B489
|
This is a guessed name. Temp name was sceKernelCpuIcacheInvalidateAllUForKernel.
Invalidates the entire L1 Icache of this core.
void sceKernelL1IcacheInvalidateEntireForKernel(void); // ICIALLU, Instruction cache invalidate all (PoU)
sceKernelL1IcacheInvalidateRangeForKernel
| Version |
NID
|
| 0.931-3.60 |
0xF4C7F578
|
Temp name was sceKernelCpuIcacheInvalidateRangeForKernel, sceKernelCpuIcacheInvalidateMVAURange.
Invalidates a range in L1 Icache of this core.
// ICIMVAU, Instruction cache invalidate by MVA (PoU)
void sceKernelL1IcacheInvalidateRangeForKernel(void *start, SceSize size);
sceKernelIcacheInvalidateRangeForKernel
| Version |
NID
|
| 0.931-3.60 |
0x19F17BD0
|
| 3.65-3.68 |
0x73E895EA
|
Temp name was sceKernelCpuIcacheAndL2InvalidateMVAURangeForKernel, sceKernelCpuIcacheAndL2WritebackInvalidateRangeForKernel.
Cleans and invalidates range in L2 cache, then in L1 Icache of core.
int sceKernelIcacheInvalidateRangeForKernel(void *start, SceSize size);
sceKernelPleFlushRequestForKernel
| Version |
NID
|
| 3.60 |
0xD0D85FF8
|
Temp name was sceKernelCpuPreloadEngineKillForKernel.
- NSACR (Non-Secure Access Control Register)
- Test bit NS access to the Preload Engine resources
- [>] PLEFF (Preload Engine FIFO flush operation)
- [>] PLEKC (Preload Engine kill channel operation)
- [<] PLEASR (Preload Engine Activity Status Register)
void sceKernelPleFlushRequestForKernel(void);
sceKernelDomainTextMemcpyForKernel
| Version |
NID
|
| 0.931-3.60 |
0x8C683DEC
|
| 3.63-3.65 |
not present. Removed from library.
|
Temp name was sceKernelCpuUnrestrictedMemcpyForKernel.
Unrestricted memcpy by first setting the DACR register to 0xFFFF0000 then doing a memcpy.
In FW 0.931, DACR is set to 0xFFFFFFFF instead and interrupts are disabled for the operation.
int sceKernelDomainTextMemcpyForKernel(void *dest, const void *src, SceSize len);
sceKernelMMUGetMemoryTypeForKernel
| Version |
NID
|
| 3.60 |
0x9B8173F4
|
Return value can be:
- 2
- 8
- 0x40
- 0x80
- 0xD0
- 0x80022007 (SCE_KERNEL_ERROR_VA2PA_FAULT)
int sceKernelMMUGetMemoryTypeForKernel(void *vaddr);
sceKernelCorelockUnlockForKernel
| Version |
NID
|
| 3.60 |
0xA5C9DBBA
|
This is a guessed name. Temp name was sceKernelWaitCore3ForKernel.
typedef struct SceKernelCorelockContext {
int lock;
int16_t core_count;
int16_t last_wait_core;
} SceKernelCorelockContext;
void sceKernelCorelockUnlockForKernel(SceKernelCorelockContext *pCtx);
sceKernelCorelockLockForKernel
| Version |
NID
|
| 0.931-3.60 |
0x9D72DD1B
|
This is a guessed name.
void sceKernelCorelockLockForKernel(SceKernelCorelockContext *pCtx, int core);
sceKernelCorelockInitializeForKernel
| Version |
NID
|
| 0.931-3.60 |
0x4CD4D921
|
| 3.65 |
0xA65F6F14
|
This is a guessed name.
void sceKernelCorelockInitializeForKernel(SceKernelCorelockContext *pCtx);
SceCpuForKernel_43CC6E20
| Version |
NID
|
| 3.60 |
0x43CC6E20
|
DACR off
Does some memory copies between the args.
int SceCpuForKernel_43CC6E20(void *addr, int a2, int a3, int a4);
sceKernelDomainTextBzeroIntForKernel
| Version |
NID
|
| 3.60 |
0x76EB0DD4
|
This is a guessed name.
Temp name was sceCpuUnrestrictedBzeroIntForKernel.
DACR off
int sceKernelDomainTextBzeroIntForKernel(int *addr);
SceCpuForKernel_337473B5
| Version |
NID
|
| 0.931-3.60 |
0x337473B5
|
DACR off
If addr.unk_0 equals 0, changes addr.unk_0 to new_val, else increase addr.unk_4.
int SceCpuForKernel_337473B5(CpuUnkStruct *addr, unsigned int new_val);
sceKernelAtomicSubIfGreater64ForKernel
| Version |
NID
|
| 3.60 |
0x37FBFD12
|
DACR is not disabled
int sceKernelAtomicSubIfGreater64ForKernel(unsigned long long *a1, unsigned int a2);
sceKernelAtomicLimit64ForKernel
| Version |
NID
|
| 3.60 |
0x6190A018
|
DACR is not disabled
int sceKernelAtomicLimit64ForKernel(unsigned long long *result, int limit);
sceKernelAtomicAdd32AndGet64InRangeForKernel
| Version |
NID
|
| 3.60 |
0xD8A7216C
|
DACR is not disabled
int sceKernelAtomicAdd32AndGet64InRangeForKernel(unsigned long long *val, int add_val, int limit);
sceKernelAtomicAdd32AndGet64InHiLoRangeForKernel
| Version |
NID
|
| 3.60 |
0xD37AABE5
|
DACR is not disabled
int sceKernelAtomicAdd32AndGet64InHiLoRangeForKernel(unsigned long long *val, int add_val, int limit);
sceKernelAtomicGet32AndSet64ForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.60 |
0x4553FBDE
|
DACR is not disabled
int sceKernelAtomicGet32AndSet64ForKernel(unsigned long long *result, int src);
sceKernelAtomicGet32AndSet64_2ForKernel
| Version |
NID
|
| 0.990 |
not present
|
| 3.60 |
0x7FB4E7AC
|
Exact same code as SceCpuForKernel_4553FBDE.
DACR is not disabled
int sceKernelAtomicGet32AndSet64_2ForKernel(unsigned long long *result, int src);
sceKernelAtomicDecIfLowPositive32ForKernel
| Version |
NID
|
| 3.60 |
0x8510FA52
|
DACR is not disabled
int sceKernelAtomicDecIfLowPositive32ForKernel(unsigned int *addr);
sceKernelAtomicIncrementHighwaterCounterForKernel
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.610.011 |
0x5F64E5ED
|
| 3.630.011-3.740.011 |
0x9DA58A9E
|
This is a guessed name. Temp name was sceKernelCpuAtomicHiLoAlgorithmForKernel.
Atomically increments a highwater counter.
Highwater counters are 32-bit values holding a current count in the low 16 bits, and a highwater count in the high 16 bits.
This routine increments the current count, and the highwater count if the new current value is higher than highwater.
DACR is not disabled.
Returns the value of the counter after the increment.
SceUInt32 sceKernelAtomicIncrementHighwaterCounterForKernel(SceUInt32 *pCounter);
sceKernelAtomicAddAndGetPositive32InRangeForKernel
| Version |
NID
|
| 3.100.081-3.610.011 |
0x98E91C1C
|
| 3.630.011-3.740.011 |
0x8F40D0FD
|
This is a guessed name.
DACR is not disabled
If val is negative, returns 2 and does not override val.
int sceKernelAtomicAddAndGetPositive32InRangeForKernel(int* val, int add_val, int limit);
SceCpuForKernel_6C7E7B57
| Version |
NID
|
| 0.931-3.60 |
0x6C7E7B57
|
Set TTBR lower value (0x4A).
int SceCpuForKernel_6C7E7B57(uintptr_t ttbr);
SceCpuForKernel_AED8F8D7
| Version |
NID
|
| 0.931 |
0xAED8F8D7
|
| 3.60 |
not present
|
Initialize TTBR.
int SceCpuForKernel_AED8F8D7(const void *ttbr);
sceKernelGetVmaccessRangeForKernel
| Version |
NID
|
| 0.931.010-3.610.011 |
0x9A3281C0
|
| 3.630.011-3.740.011 |
0xC32687D0
|
Returns the start and end address of the Virtual Memory access range. Functions such as sceKernelCopyFromUserForDriver (i.e. kernel<->usermode transfer routines) are located in this range. All functions in the Virtual Memory access range run in ARM mode not in Thumb mode.
See the SceExcpmgr page for more information about how the values returned by this function are used.
Note that the Virtual Memory access range excludes the endpoint. *pRangeEnd is not considered part of the range however *pRangeStart is.
// 0.931.010
void sceKernelGetVmaccessRangeForKernel(SceUIntPtr *pRangeStart, SceUIntPtr *pRangeEnd);
// 0.940-0.990
void sceKernelGetVmaccessRangeForKernel(SceUIntPtr *pOldModelRangeStart, SceUIntPtr *pOldModelRangeEnd, SceUIntPtr *pNewModelRangeStart, SceUIntPtr *pNewModelRangeEnd)
// 3.600.011-3.740.011
void sceKernelGetVmaccessRangeForKernel(SceUIntPtr *pRangeStart, SceUIntPtr *pRangeEnd);
SceCpuForKernel_9CB82EB0
| Version |
NID
|
| 3.60 |
0x9CB82EB0
|
return;
int SceCpuForKernel_9CB82EB0(void);
SceCpuForDriver
SceCpuForDriver_9A9D9C94
| Version |
NID
|
| 0.990.000-0.996.090 |
0x9A9D9C94
|
| 1.03-3.740.011 |
not present
|
SceCpuForDriver_A2E3E4EB
| Version |
NID
|
| 0.990.000-0.996.090 |
0xA2E3E4EB
|
| 1.03-3.740.011 |
not present
|
sceKernelRoundupDCacheLine3ForDriver
| Version |
NID
|
| 0.931.010-1.060.031 |
0xF0849812
|
| 1.50-3.740.011 |
not present
|
int sceKernelRoundupDCacheLine3ForDriver(int a1);
sceKernelAbortForDriver
| Version |
NID
|
| 0.931.010-1.060.031 |
0x6DCA6903
|
| 1.50-3.740.011 |
not present
|
void sceKernelAbortForDriver(void);
sceKernelCpuIdForDriver
| Version |
NID
|
| 0.990-3.60 |
0x5E4D5DE1
|
Returns the CPU ID of the current core.
int sceKernelCpuIdForDriver(void);
sceKernelAtomicAddAndGet8ForDriver
| Version |
NID
|
| 3.60 |
0x1E850481
|
unsigned char sceKernelAtomicAddAndGet8ForDriver (unsigned char *addr, unsigned char val);
sceKernelAtomicAddAndGet16ForDriver
| Version |
NID
|
| 3.60 |
0x59F74E94
|
unsigned short sceKernelAtomicAddAndGet16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicAddAndGet32ForDriver
| Version |
NID
|
| 0.990-3.60 |
0x5F6A8743
|
Adds val to *addr atomically, and returns the result.
unsigned int sceKernelAtomicAddAndGet32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicAddAndGet64ForDriver
| Version |
NID
|
| 3.60 |
0x4E459A03
|
unsigned long long sceKernelAtomicAddAndGet64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicAddUnless8ForDriver
| Version |
NID
|
| 3.60 |
0x5CC62CEC
|
int sceKernelAtomicAddUnless8ForDriver(unsigned char *addr, unsigned char val, unsigned char cmp);
sceKernelAtomicAddUnless16ForDriver
| Version |
NID
|
| 3.60 |
0x0F84AFE9
|
int sceKernelAtomicAddUnless16ForDriver(unsigned short *addr, unsigned short val, unsigned short cmp);
sceKernelAtomicAddUnless32ForDriver
| Version |
NID
|
| 3.60 |
0x1F157DC3
|
int sceKernelAtomicAddUnless32ForDriver(unsigned int *addr, unsigned int val, unsigned int cmp);
sceKernelAtomicAddUnless64ForDriver
| Version |
NID
|
| 3.60 |
0x06CCFA4B
|
int sceKernelAtomicAddUnless64ForDriver(unsigned long long *addr, int unused, unsigned long long val, unsigned long long cmp);
sceKernelAtomicAndAndGet8ForDriver
| Version |
NID
|
| 3.60 |
0x32B62B1A
|
unsigned char sceKernelAtomicAndAndGet8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicAndAndGet16ForDriver
| Version |
NID
|
| 3.60 |
0xB281D52A
|
unsigned short sceKernelAtomicAndAndGet16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicAndAndGet32ForDriver
| Version |
NID
|
| 3.60 |
0xDF899E4B
|
unsigned int sceKernelAtomicAndAndGet32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicAndAndGet64ForDriver
| Version |
NID
|
| 3.60 |
0xD18E7B54
|
unsigned long long sceKernelAtomicAndAndGet64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicClearAndGet8ForDriver
| Version |
NID
|
| 3.60 |
0x8E538AB5
|
unsigned char sceKernelAtomicClearAndGet8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicClearAndGet16ForDriver
| Version |
NID
|
| 3.60 |
0x6B050D7C
|
unsigned short sceKernelAtomicClearAndGet16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicClearAndGet32ForDriver
| Version |
NID
|
| 3.60 |
0x78C1F148
|
unsigned int sceKernelAtomicClearAndGet32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicClearAndGet64ForDriver
| Version |
NID
|
| 3.60 |
0x2149CD4C
|
unsigned long long sceKernelAtomicClearAndGet64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicClearMask8ForDriver
| Version |
NID
|
| 3.60 |
0x1B3336B0
|
void sceKernelAtomicClearMask8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicClearMask16ForDriver
| Version |
NID
|
| 3.60 |
0x1BE58599
|
void sceKernelAtomicClearMask16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicClearMask32ForDriver
| Version |
NID
|
| 3.60 |
0x4AE1BCC0
|
void sceKernelAtomicClearMask32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicClearMask64ForDriver
| Version |
NID
|
| 3.60 |
0x55760309
|
void sceKernelAtomicClearMask64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicCompareAndSet8ForDriver
| Version |
NID
|
| 3.60 |
0x3627F4E0
|
unsigned char sceKernelAtomicCompareAndSet8ForDriver(unsigned char *addr, unsigned char cmp, unsigned char val);
sceKernelAtomicCompareAndSet16ForDriver
| Version |
NID
|
| 3.60 |
0x6F63F56D
|
unsigned short sceKernelAtomicCompareAndSet16ForDriver(unsigned short *addr, unsigned short cmp, unsigned short val);
sceKernelAtomicCompareAndSet32ForDriver
| Version |
NID
|
| 3.60 |
0xCDA96E81
|
unsigned int sceKernelAtomicCompareAndSet32ForDriver(unsigned int *addr, unsigned int cmp, unsigned int val);
sceKernelAtomicCompareAndSet64ForDriver
| Version |
NID
|
| 3.60 |
0x4B527009
|
unsigned long long sceKernelAtomicCompareAndSet64ForDriver(unsigned long long *addr, int unused, unsigned long long cmp, unsigned long long val);
sceKernelAtomicDecIfPositive8ForDriver
| Version |
NID
|
| 3.60 |
0x45153D4E
|
unsigned char sceKernelAtomicDecIfPositive8ForDriver(unsigned char *addr);
sceKernelAtomicDecIfPositive16ForDriver
| Version |
NID
|
| 3.60 |
0x9A693F5B
|
unsigned short sceKernelAtomicDecIfPositive16ForDriver(unsigned short *addr);
sceKernelAtomicDecIfPositive32ForDriver
| Version |
NID
|
| 3.60 |
0x2A71B03C
|
This is a guessed name. Official name might be sceKernelAddressSpaceReleaseForDriver.
unsigned int sceKernelAtomicDecIfPositive32ForDriver(unsigned int* addr);
sceKernelAtomicDecIfPositive64ForDriver
| Version |
NID
|
| 3.60 |
0x267D0B33
|
unsigned long long sceKernelAtomicDecIfPositive64ForDriver(unsigned long long *addr);
sceKernelAtomicGetAndAdd8ForDriver
| Version |
NID
|
| 3.60 |
0xFCDCD4DE
|
unsigned char sceKernelAtomicGetAndAdd8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicGetAndAdd16ForDriver
| Version |
NID
|
| 3.60 |
0x225DF91A
|
unsigned short sceKernelAtomicGetAndAdd16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicGetAndAdd32ForDriver
| Version |
NID
|
| 3.60 |
0x341B6E81
|
unsigned int sceKernelAtomicGetAndAdd32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicGetAndAdd64ForDriver
| Version |
NID
|
| 3.60 |
0x043FD446
|
unsigned long long sceKernelAtomicGetAndAdd64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicGetAndAnd8ForDriver
| Version |
NID
|
| 3.60 |
0xD8E675C0
|
unsigned char sceKernelAtomicGetAndAnd8ForDriver(unsigned char *a1, unsigned char a2);
sceKernelAtomicGetAndAnd16ForDriver
| Version |
NID
|
| 3.60 |
0x4A820BC5
|
unsigned short sceKernelAtomicGetAndAnd16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicGetAndAnd32ForDriver
| Version |
NID
|
| 3.60 |
0x10EB35EB
|
unsigned int sceKernelAtomicGetAndAnd32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicGetAndAnd64ForDriver
| Version |
NID
|
| 3.60 |
0x18A17E07
|
unsigned long long sceKernelAtomicGetAndAnd64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicGetAndClear8ForDriver
| Version |
NID
|
| 3.60 |
0x382D1466
|
unsigned char sceKernelAtomicGetAndClear8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicGetAndClear16ForDriver
| Version |
NID
|
| 3.60 |
0x8E9C086D
|
unsigned short sceKernelAtomicGetAndClear16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicGetAndClear32ForDriver
| Version |
NID
|
| 3.60 |
0xE36F3A46
|
unsigned int sceKernelAtomicGetAndClear32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicGetAndClear64ForDriver
| Version |
NID
|
| 3.60 |
0x88BA6002
|
unsigned long long sceKernelAtomicGetAndClear64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicGetAndOr8ForDriver
| Version |
NID
|
| 3.60 |
0xBDF6F8E4
|
unsigned char sceKernelAtomicGetAndOr8ForDriver(unsigned char *var, unsigned char value);
sceKernelAtomicGetAndOr16ForDriver
| Version |
NID
|
| 3.60 |
0x004F09D1
|
unsigned short sceKernelAtomicGetAndOr16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicGetAndOr32ForDriver
| Version |
NID
|
| 3.60 |
0x2A40BB93
|
unsigned int sceKernelAtomicGetAndOr32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicGetAndOr64ForDriver
| Version |
NID
|
| 3.60 |
0xCB73D6D5
|
unsigned long long sceKernelAtomicGetAndOr64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicGetAndSet8ForDriver
| Version |
NID
|
| 3.60 |
0x29599FC8
|
unsigned char sceKernelAtomicGetAndSet8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicGetAndSet16ForDriver
| Version |
NID
|
| 3.60 |
0x085532C8
|
unsigned short sceKernelAtomicGetAndSet16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicGetAndSet32ForDriver
| Version |
NID
|
| 3.60 |
0x0EE04C03
|
unsigned int sceKernelAtomicGetAndSet32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicGetAndSet64ForDriver
| Version |
NID
|
| 3.60 |
0xD2DEE625
|
unsigned long long sceKernelAtomicGetAndSet64ForDriver(unsigned long long *addr, int unused, unsigned int lo_val, unsigned int hi_val);
sceKernelAtomicGetAndSub8ForDriver
| Version |
NID
|
| 3.60 |
0x7B43D0D7
|
unsigned char sceKernelAtomicGetAndSub8ForDriver (unsigned char *addr, unsigned char val);
sceKernelAtomicGetAndSub16ForDriver
| Version |
NID
|
| 3.60 |
0x3EE9B5B8
|
unsigned short sceKernelAtomicGetAndSub16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicGetAndSub32ForDriver
| Version |
NID
|
| 3.60 |
0xF891CF2A
|
unsigned int sceKernelAtomicGetAndSub32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicGetAndSub64ForDriver
| Version |
NID
|
| 3.60 |
0xA7585370
|
unsigned long long sceKernelAtomicGetAndSub64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicGetAndXor8ForDriver
| Version |
NID
|
| 3.60 |
0xBAF47F7B
|
unsigned char sceKernelAtomicGetAndXor8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicGetAndXor16ForDriver
| Version |
NID
|
| 3.60 |
0x711801E6
|
unsigned short sceKernelAtomicGetAndXor16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicGetAndXor32ForDriver
| Version |
NID
|
| 3.60 |
0x77E34309
|
unsigned int sceKernelAtomicGetAndXor32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicGetAndXor64ForDriver
| Version |
NID
|
| 3.60 |
0xE212ECAD
|
unsigned long long sceKernelAtomicGetAndXor64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicOrAndGet8ForDriver
| Version |
NID
|
| 3.60 |
0x5D515F1B
|
unsigned char sceKernelAtomicOrAndGet8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicOrAndGet16ForDriver
| Version |
NID
|
| 3.60 |
0xADD39B84
|
unsigned short sceKernelAtomicOrAndGet16ForDriver (unsigned short *addr, unsigned short val);
sceKernelAtomicOrAndGet32ForDriver
| Version |
NID
|
| 3.60 |
0xBC248C30
|
unsigned int sceKernelAtomicOrAndGet32ForDriver (unsigned int *addr, unsigned int val);
sceKernelAtomicOrAndGet64ForDriver
| Version |
NID
|
| 3.60 |
0x3E218AF7
|
unsigned long long sceKernelAtomicOrAndGet64ForDriver(unsigned long long *addr, int unused, long long val);
sceKernelAtomicSet8ForDriver
| Version |
NID
|
| 3.60 |
0x0836537E
|
void sceKernelAtomicSet8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicSet16ForDriver
| Version |
NID
|
| 3.60 |
0x532CA3E8
|
void sceKernelAtomicSet16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicSet32ForDriver
| Version |
NID
|
| 3.60 |
0x3168BC57
|
void sceKernelAtomicSet32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicSet64ForDriver
| Version |
NID
|
| 3.60 |
0xC381CE8C
|
void sceKernelAtomicSet64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicSetIfGreaterGet8ForDriver
| Version |
NID
|
| 3.60 |
0xC3868071
|
unsigned char sceKernelAtomicSetIfGreaterGet8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicSetIfGreaterGet16ForDriver
| Version |
NID
|
| 3.60 |
0x875B094D
|
unsigned short sceKernelAtomicSetIfGreaterGet16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicSetIfGreaterGet32ForDriver
| Version |
NID
|
| 3.60 |
0x26F71995
|
unsigned int sceKernelAtomicSetIfGreaterGet32ForDriver(unsigned int *a1, unsigned int val);
sceKernelAtomicSubAndGet8ForDriver
| Version |
NID
|
| 3.60 |
0xEB085370
|
unsigned char sceKernelAtomicSubAndGet8ForDriver(unsigned char *addr, unsigned char val);
sceKernelAtomicSubAndGet16ForDriver
| Version |
NID
|
| 3.60 |
0x515682C9
|
unsigned short sceKernelAtomicSubAndGet16ForDriver(unsigned short *addr, unsigned short val);
sceKernelAtomicSubAndGet32ForDriver
| Version |
NID
|
| 3.60 |
0xA4884C4E
|
unsigned int sceKernelAtomicSubAndGet32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicSubAndGet64ForDriver
| Version |
NID
|
| 3.60 |
0xB5F8919C
|
unsigned long long sceKernelAtomicSubAndGet64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelAtomicXorAndGet8ForDriver
| Version |
NID
|
| 3.60 |
0x03887992
|
unsigned char sceKernelAtomicXorAndGet8ForDriver (unsigned char *a1, unsigned char a2);
sceKernelAtomicXorAndGet16ForDriver
| Version |
NID
|
| 3.60 |
0x646003D6
|
unsigned short sceKernelAtomicXorAndGet16ForDriver (unsigned short *addr, unsigned short val);
sceKernelAtomicXorAndGet32ForDriver
| Version |
NID
|
| 3.60 |
0x4244BE65
|
unsigned int sceKernelAtomicXorAndGet32ForDriver(unsigned int *addr, unsigned int val);
sceKernelAtomicXorAndGet64ForDriver
| Version |
NID
|
| 3.60 |
0x692C51B3
|
unsigned long long sceKernelAtomicXorAndGet64ForDriver(unsigned long long *addr, int unused, unsigned long long val);
sceKernelDcacheInvalidateRangeForDriver
| Version |
NID
|
| 0.931-3.60 |
0x02796361
|
Temp name was sceKernelDcacheInvalidateRange_1ForDriver, sceKernelCpuDcacheAndL2InvalidateMVACRange_1ForDriver, sceKernelCpuDcacheAndL2InvalidateRangeForDriver.
int sceKernelDcacheInvalidateRangeForDriver(const void *start, SceSize size);
sceKernelDcacheInvalidateRangeForL2WBWAForDriver
| Version |
NID
|
| 0.990 |
0x614C6698
|
| 3.60 |
not present
|
Temp name was sceKernelDcacheInvalidateRange_0x10ForDriver, sceKernelCpuDcacheAndL2InvalidateMVACRange_10ForDriver.
int sceKernelDcacheInvalidateRangeForL2WBWAForDriver(const void *start, SceSize size);
sceKernelDcacheInvalidateRangeForL1WBWAForDriver
| Version |
NID
|
| 0.990-3.60 |
0x8B4C26DF
|
Temp name was sceKernelDcacheInvalidateRange_0x20ForDriver, sceKernelCpuDcacheInvalidateRangeForDriver, sceKernelCpuDcacheAndL2InvalidateMVACRange_20ForDriver.
int sceKernelDcacheInvalidateRangeForL1WBWAForDriver(const void *start, SceSize size);
sceKernelDcacheCleanInvalidateRangeForDriver
| Version |
NID
|
| 0.931-3.60 |
0x364E68A4
|
Temp name was sceKernelDcacheCleanInvalidateRange_1ForDriver, sceKernelCpuDcacheAndL2CleanInvalidateMVACRange_1ForDriver, sceKernelCpuDcacheAndL2WritebackInvalidateRangeForDriver, sceKernelDcacheCleanInvalidateRange_0x10ForDriver.
Also have another name "sceKernelDcacheCleanInvalidateRangeForL2WBWAForDriver" in 0.990.
int sceKernelDcacheCleanInvalidateRangeForDriver(const void *start, SceSize size);
sceKernelDcacheCleanInvalidateRangeForL1WBWAForDriver
| Version |
NID
|
| 0.990-3.60 |
0xE551F99B
|
Temp name was sceKernelDcacheCleanInvalidateRange_0x20ForDriver, sceKernelCpuDcacheAndL2CleanInvalidateMVACRange_20ForDriver.
int sceKernelDcacheCleanInvalidateRangeForL1WBWAForDriver(const void *start, SceSize);
sceKernelDcacheCleanRangeForDriver
| Version |
NID
|
| 0.931.010-3.740.011 |
0x103872A5
|
Temp name was sceKernelDcacheCleanRange_1ForDriver, sceKernelCpuDcacheAndL2WritebackRangeForDriver, sceKernelCpuDcacheAndL2CleanMVACRange_1ForDriver.
int sceKernelDcacheCleanRangeForDriver(const void *start, SceSize size);
sceKernelDcacheCleanRangeForL2WBWAForDriver
| Version |
NID
|
| 0.990.000-3.350.011 |
0x2A5344B7
|
| 3.500.011-3.740.011 |
not present
|
Temp name was sceKernelDcacheCleanRange_0x10ForDriver.
int sceKernelDcacheCleanRangeForL2WBWAForDriver(const void *start, SceSize size);
sceKernelDcacheCleanRangeForL1WBWAForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x9CB9F0CE
|
Temp name was sceKernelCpuDcacheWritebackRangeForDriver, flush_dcache, sceKernelDcacheCleanRange_0x20ForDriver, sceKernelCpuDcacheAndL2CleanMVACRange_20ForDriver.
int sceKernelDcacheCleanRangeForL1WBWAForDriver(const void *start, SceSize size);
SceCpuForDriver_E813EBB2
| Version |
NID
|
| 0.990.000-3.740.011 |
0xE813EBB2
|
Cleans L2 memory? A name could be sceKernelWaitL2CacheReg.
#define SceL2CacheReg 0x1A002000
__dsb();
*(int *)(SceL2CacheReg + 0x730) = 0;
while ( *(int *)(SceL2CacheReg + 0x730) & 1 )
;
__dmb();
int SceCpuForDriver_E813EBB2(void);
sceKernelIsUncacheAddressInTmpFsGameForDriver
| Version |
NID
|
| 3.60 |
0x337CBDF3
|
Temp name was sceKernelCpuIsVaddrMappedForDriver.
uint32_t vaddr_memory_type = sceKernelMMUGetMemoryTypeForKernel(vaddr);
if (vaddr_memory_type != 8) {
if (vaddr_memory_type <= 8) {
if (vaddr_memory_type != 2)
return 0;
} else if (vaddr_memory_type != 0x40 && vaddr_memory_type != 0x80)
return 0;
}
return 1;
SceBool sceKernelIsUncacheAddressInTmpFsGameForDriver(void *address);
sceKernelCpuSuspendIntrForDriver
| Version |
NID
|
| 1.60-3.60 |
0x821FC0EE
|
Temp name was sceKernelCpuDisableInterruptsForDriver.
Disables IRQ (FIQ are not disabled, but they're routed to Secure state anyways...) and returns previous interrupt bit status (either 0 or 0x80).
//Return CPSR.I and disable IRQ.
SceKernelIntrStatus sceKernelCpuSuspendIntrForDriver(void);
sceKernelCpuResumeIntrForDriver
| Version |
NID
|
| 1.60-3.60 |
0xF5BAD43B
|
Temp name was sceKernelCpuEnableInterruptsForDriver.
Restore previous IRQ state. Pass the return value of the previous call to sceKernelCpuSuspendIntrForDriver.
//Enable IRQ if prev_state & 0x80.
SceKernelIntrStatus sceKernelCpuResumeIntrForDriver(SceKernelIntrStatus prev_state);
Spinlock functions
The following functions implement a simple mutal exclusion mechanism using atomic operation (LDREX/STREX). Spinlocks are owned by a single thread or CPU at a time. Unlike other lock/sync objects of the kernel, spinlocks can be used under any context. Use spinlocks if the data to protect may be accessed from an IRQ or exception handler.
There are two version of the Spinlock functions: normal functions do not change the CPU state, while the SuspendIntr functions ensure the CPU cannot be interrupted while the lock is held.
The same type of function must be used to lock and unlock a spinlock: for example, calling sceKernelSpinlockLowLockCpuResumeIntr followed by sceKernelSpinlockLowUnlock is an invalid usage of this API.
Spinlocks can take two values: 0 means the spinlock is unlocked, and 1 means the spinlock is locked.
//Unofficial names
typedef int SceKernelSpinlock;
typedef int SceKernelRWSpinlock;
typedef int SceKernelIntrStatus;
//Sample usage:
void function(Object* object) {
sceKernelSpinlockLowLock(&object->lock);
/* ... work on object ... */
sceKernelSpinlockUnlock(&object->lock);
}
void trylock_function(Object* object) {
int res = sceKernelSpinlockLowTrylock(&object->lock);
if (res >= 0) {
/* ... work on object ... */
}
}
void uninterruptible_function(Object* object) {
SceKernelIntrStatus status = sceKernelSpinlockLowLockCpuSuspendIntr(&object->lock);
/* ... work on object ... */
/* interrupts are disabled here */
sceKernelSpinlockUnlock(&object->lock, status);
}
void uninterruptible_trylock_function(Object* object) {
SceKernelIntrStatus status = sceKernelSpinlockLowTrylockCpuSuspendIntr(&object->lock);
if (status >= 0) {
/* ... work on object ... */
/* interrupts are disabled here */
sceKernelSpinlockLowUnlockCpuResumeIntr(&object->lock, status);
}
}
sceKernelSpinlockLowLockForDriver
| Version |
NID
|
| 1.60-3.60 |
0xBF82DEB2
|
Temp name was sceKernelCpuLockStoreLRForDriver.
Acquires a spinlock.
void sceKernelSpinlockLowLockForDriver(SceKernelSpinlock *pLock);
sceKernelSpinlockLowTrylockForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x5AC9D394
|
This is a guessed name. Temp name was sceKernelCpuTryLockStoreLRForDriver, sceKernelSpinlockLowTryLockForDriver.
Attempts to acquire a spinlock.
/**
* @param pLock Pointer to the spinlock
* @retval SCE_OK if the spinlock is acquired
* @retval <0 if the spinlock could not be acquired
*/
int sceKernelSpinlockLowTrylockForDriver(SceKernelSpinlock *pLock);
sceKernelSpinlockLowUnlockForDriver
| Version |
NID
|
| 1.60-3.60 |
0xD6ED0C46
|
Temp name was sceKernelCpuUnlockStoreLRForDriver.
Unlocks a spinlock previously acquired with either sceKernelSpinlockLowLockForDriver or sceKernelSpinlockLowTrylockForDriver.
void sceKernelSpinlockLowUnlockForDriver(SceKernelSpinlock *pLock);
sceKernelSpinlockLowLockCpuSuspendIntrForDriver
| Version |
NID
|
| 0.990-3.60 |
0xD32ACE9E
|
Temp name was sceKernelCpuSuspendIntrForDriver, sceKernelCpuLockSuspendIntrStoreLRForDriver.
Acquires a spinlock and suspend interrupts if necessary.
/**
* @param pLock Pointer to the spinlock
* @return An opaque value describing the interrupt state
*/
SceKernelIntrStatus sceKernelSpinlockLowLockCpuSuspendIntrForDriver(SceKernelSpinlock *pLock);
sceKernelSpinlockLowTrylockCpuSuspendIntrForDriver
| Version |
NID
|
| 3.60 |
0x27C0B340
|
Temp name was sceKernelCpuTryLockSuspendIntrStoreLRForDriver.
Attempts to acquire a spinlock. If successfully acquired, suspends interrupts if necessary.
/**
* @param pLock Pointer to the spinlock
* @retval >=0 if the spinlock is acquired - opaque value describing the interrupt state
* @retval <0 if the spinlock could not be acquired
*/
SceKernelIntrStatus sceKernelSpinlockLowTrylockCpuSuspendIntrForDriver(SceKernelSpinlock *pLock);
sceKernelSpinlockLowUnlockCpuResumeIntrForDriver
| Version |
NID
|
| 0.990-3.60 |
0x7BB9D5DF
|
Temp name was sceKernelCpuUnlockResumeIntrStoreLRForDriver, sceKernelCpuResumeIntrForDriver.
Unlocks a spinlock previously acquired with either sceKernelSpinlockLowLockCpuSuspendIntrForDriver or sceKernelSpinlockLowTrylockCpuSuspendIntrForDriver and resumes interrupts if necessary.
If interrupts were disabled before acquiring the spinlock, they will remain disabled after this call.
void sceKernelSpinlockLowUnlockCpuResumeIntrForDriver(SceKernelSpinlock *pLock, SceKernelIntrStatus prev_state);
RW Spinlock functions
The following functions implement RW spinlocks. This variant of the spinlock allows multiple threads/CPUs to access data at the same time as long as only reads are performed. When acquired for writing, a single thread at a time can access the data and is thus free to modify it. Like regular spinlocks, the RW spinlocks can be used under any context. Use RW spinlocks if the data to protect may be accessed from an IRQ or exception handler.
Like for regular spinlocks, all RWSpinlock functions are available in a normal and SuspendIntr version. Additionally, every function exists in Read and Write variants, depending on whether the caller wants to read or write to the object protected by the lock.
Like for regular spinlocks, the same type of function must be used to lock and unlock a RW spinlock.
Calling sceKernelRWSpinlockLowReadLock followed by sceKernelRWSpinlockLowWriteUnlock is an invalid usage of this API. Calling sceKernelRWSpinlockLowReadLockCpuSuspendIntr followed by sceKernelRWSpinlockLowReadUnlockCpu is also an invalid usage of this API.
RW Spinlocks can take three kind of values: 0 means the spinlock is unlocked, -0x80000000 means the spinlock is write-locked, and a positive value x means that x readers have read-locked the spinlock.
sceKernelRWSpinlockLowReadLockForDriver
| Version |
NID
|
| 3.60 |
0xCAC9AE80
|
This is a guessed name. Temp name was sceKernelCpuSpinLockStoreLRForDriver.
Acquires a RW spinlock for reading data. Modifying the data protected by the spinlock is not allowed.
void sceKernelRWSpinlockLowReadLockForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowTryReadLockForDriver
| Version |
NID
|
| 3.60 |
0x093925BD
|
This is a guessed name. Temp name was sceKernelCpuTrySpinLockStoreLRForDriver.
Attempts to acquire a RW spinlock for reading data.
Even if the spinlock is acquired, modifying the data protected by the spinlock is not allowed.
/**
* @param pLock Pointer to the spinlock
* @retval SCE_OK if the spinlock is acquired
* @retval <0 if the spinlock could not be acquired
*/
int sceKernelRWSpinlockLowTryReadLockForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowReadUnlockForDriver
| Version |
NID
|
| 3.60 |
0xF5FD5676
|
Temp name was sceKernelCpuSpinUnlockStoreLRForDriver.
Unlocks a RW spinlock previously acquired with either sceKernelRWSpinlockLowReadLockForDriver or sceKernelRWSpinlockLowTryReadLockForDriver.
void sceKernelRWSpinlockLowReadUnlockForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowWriteLockForDriver
| Version |
NID
|
| 3.60 |
0x3F42B434
|
This is a guessed name. Temp name was sceKernelCpuLockStoreFlagForDriver.
Acquires a RW spinlock for writing data.
void sceKernelRWSpinlockLowWriteLockForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowTryWriteLockForDriver
| Version |
NID
|
| 3.60 |
0x4F7790B4
|
This is a guessed name. Temp name was sceKernelCpuTryLockStoreFlagForDriver.
Attempts to acquire a RW spinlock for writing data.
/**
* @param pLock Pointer to the spinlock
* @retval SCE_OK if the spinlock is acquired
* @retval <0 if the spinlock could not be acquired
*/
int sceKernelRWSpinlockLowTryWriteLockForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowWriteUnlockForDriver
| Version |
NID
|
| 3.60 |
0xCB8ABDF0
|
Temp name was sceKernelCpuUnlockStoreFlagForDriver.
Unlocks a RW spinlock previously acquired with either sceKernelRWSpinlockLowWriteLockForDriver or sceKernelRWSpinlockLowTryWriteLockForDriver.
void sceKernelRWSpinlockLowWriteUnlockForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowReadLockCpuSuspendIntr
| Version |
NID
|
| 0.990.000-3.740.011 |
0xEC53D007
|
This is a guessed name. Temp name was sceKernelCpuSpinLockSuspendIntrStoreLRForDriver, sceKernelCpuSpinLockIrqSaveForDriver.
Acquires a RW spinlock for reading data and suspends interrupts if necessary.
/**
* @param pLock Pointer to the spinlock
* @return An opaque value describing the interrupt state
*/
SceKernelIntrStatus sceKernelRWSpinlockLowReadLockCpuSuspendIntrForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowTryReadLockCpuSuspendIntrForDriver
| Version |
NID
|
| 3.60 |
0xF02467D1
|
This is a guessed name. Temp name was sceKernelCpuTrySpinLockSuspendIntrStoreLRForDriver.
Attempts to acquire a RW spinlock for reading data. If successfully acquired, suspends interrupts if necessary.
/**
* @param pLock Pointer to the spinlock
* @retval >=0 if the spinlock is acquired - opaque value describing the interrupt state
* @retval <0 if the spinlock could not be acquired
*/
SceKernelIntrStatus sceKernelRWSpinlockLowTryReadLockCpuSuspendIntrForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowReadUnlockCpuResumeIntrForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x740A0750
|
Temp name was sceKernelCpuSpinUnlockResumeIntrStoreLRForDriver, sceKernelCpuSpinLockIrqRestoreForDriver.
Unlocks a RW spinlock previously acquired with either sceKernelRWSpinlockLowReadLockCpuSuspendIntrForDriver or sceKernelRWSpinlockLowTryReadLockCpuSuspendIntrForDriver, and resumes interrupts if necessary.
If interrupts were disabled before acquiring the spinlock, they will remain disabled after this call.
void sceKernelRWSpinlockLowReadUnlockCpuResumeIntrForDriver(SceKernelRWSpinlock *pRWLock, SceKernelIntrStatus prev_state);
sceKernelRWSpinlockLowWriteLockCpuSuspendIntrForDriver
| Version |
NID
|
| 0.990-3.60 |
0x4C38CE4D
|
This is a guessed name. Temp name was sceKernelCpuLockSuspendIntrStoreFlagForDriver.
Acquires a RW spinlock for writing data and suspends interrupts if necessary.
/**
* @param pLock Pointer to the spinlock
* @return An opaque value describing the interrupt state
*/
SceKernelIntrStatus sceKernelRWSpinlockLowWriteLockCpuSuspendIntrForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowTryWriteLockCpuSuspendIntrForDriver
| Version |
NID
|
| 3.60 |
0xDE6482C6
|
This is a guessed name. Temp name was sceKernelCpuTryLockSuspendIntrStoreFlagForDriver.
Attempts to acquire a RW spinlock for writing data. If successfully acquired, suspends interrupts if necessary.
/**
* @param pLock Pointer to the spinlock
* @retval >=0 if the spinlock is acquired - opaque value describing the interrupt state
* @retval <0 if the spinlock could not be acquired
*/
SceKernelIntrStatus sceKernelRWSpinlockLowTryWriteLockCpuSuspendIntrForDriver(SceKernelRWSpinlock *pRWLock);
sceKernelRWSpinlockLowWriteUnlockCpuResumeIntrDriver
| Version |
NID
|
| 0.990-3.60 |
0x9EC91017
|
Temp name was sceKernelCpuUnlockResumeIntrStoreFlagForDriver.
Unlocks a RW spinlock previously acquired with either sceKernelRWSpinlockLowWriteLockCpuSuspendIntrForDriver or sceKernelRWSpinlockLowTryWriteLockCpuSuspendIntrForDriver, and resumes interrupts if necessary.
If interrupts were disabled before acquiring the spinlock, they will remain disabled after this call.
void sceKernelRWSpinlockLowWriteUnlockCpuResumeIntrDriver(SceKernelRWSpinlock *pRWLock, SceKernelIntrStatus prev_state);
SceSysclibForKernel
This library was removed on FW 1.80.
__prnt
| Version |
NID
|
| 0.931-1.50 |
0xE38E7605
|
| 1.80-3.60 |
not present. Moved to ForDriver.
|
This is a guessed name. from PSP.
SceSysclibForKernel_F7E34376
| Version |
NID
|
| 1.50 |
0xF7E34376
|
SceSysclibForKernel_FA746181
| Version |
NID
|
| 0.990-1.50 |
0xFA746181
|
return a1 * (- 0x6e19295b) - 0x6e19295b;
In SceSysmem, it is used internally to modify a global variable, like a multiplication hash function would do.
int SceSysclibForKernel_FA746181(int a1);
SceSysclibForDriver
The C standard library for use in kernel only. Usermode has access to SceLibKernel, which confusingly is usermode only.
Includes standard string functions (no insecure variants like strcpy).
memset2
| Version |
NID
|
| 0.931-1.69 |
0x502B000D
|
| 3.60 |
not present
|
sortof_vsnprintf
| Version |
NID
|
| 0.931-0.990 |
0x589BAF6B
|
| 3.60 |
not present
|
This is a guessed name.
sortof_vsnprintf_2
| Version |
NID
|
| 0.931-0.990 |
0x658EA38E
|
| 3.60 |
not present
|
This is a guessed name.
SceSysclibForDriver_33388DBC
| Version |
NID
|
| 0.931-0.990 |
0x33388DBC
|
| 3.60 |
not present
|
Calculates xor of a1 and a2, then does some calculation with a3.
SceSysclibForDriver_72429909
| Version |
NID
|
| 0.931-0.990 |
0x72429909
|
| 3.60 |
not present
|
SceSysclibForDriver_32373DF7
| Version |
NID
|
| 0.931-0.990 |
0x32373DF7
|
| 3.60 |
not present
|
Helper for strtol in base 10.
int SceSysclibForDriver_32373DF7(char *__nptr, long *plResult);
__aeabi_idiv
| Version |
NID
|
| 3.60 |
0x2518CD9E
|
__aeabi_idivmod
| Version |
NID
|
| 3.60 |
0xAC86B4BA
|
__aeabi_lcmp
| Version |
NID
|
| 3.60 |
0x709077A1
|
__aeabi_lmul
| Version |
NID
|
| 3.60 |
0xFEE5E751
|
__aeabi_uidiv
| Version |
NID
|
| 0.990-3.60 |
0xA9FF1205
|
__aeabi_uidivmod
| Version |
NID
|
| 0.990-3.60 |
0xA46CB7DE
|
__aeabi_ldivmod
| Version |
NID
|
| 3.60 |
0x7554AB04
|
__aeabi_uldivmod
| Version |
NID
|
| 0.931-3.60 |
0x9D148CDE
|
Returns the 64-bit quotient of the division of dividend by divisor.
Used for example to convert SceRtc ticks to a simpler format (divide by time unit in ms) or to compute the number of storage device blocks in SceSdstor (divide by block size).
// ex: __aeabi_uldivmod(tick[0] + 0xd44000, (tick[1] - 0xdcbfff) + (uint)(0xff2bbfff < tick[0]), 1000000, 0);
SceUInt64 __aeabi_uldivmod(SceUInt32 dividend_low, SceUInt32 dividend_hi, SceUInt32 divisor_low, SceUInt32 divisor_hi);
__aeabi_ulcmp
| Version |
NID
|
| 0.931-3.60 |
0xFE900DE8
|
__aeabi_llsr
| Version |
NID
|
| 0.931-3.60 |
0xE46C47E6
|
__aeabi_llsl
| Version |
NID
|
| 0.931-3.60 |
0x72D31F9D
|
__aeabi_lasr
| Version |
NID
|
| 0.931-3.60 |
0x1D89F6C0
|
Temp name was rshift.
__memcpy_chk
| Version |
NID
|
| 3.60 |
0x8A0B0815
|
__memmove_chk
| Version |
NID
|
| 3.60 |
0x35DBB110
|
__memset_chk
| Version |
NID
|
| 3.60 |
0x1A30BB28
|
__stack_chk_fail
| Version |
NID
|
| 1.50-3.60 |
0xB997493D
|
__stack_chk_guard
| Version |
NID
|
| 3.60 |
0x99EEBD1F
|
This is a variable.
__strlcat_chk
| Version |
NID
|
| 3.60 |
0x224BE33F
|
__strlcpy_chk
| Version |
NID
|
| 3.60 |
0xCF86EA38
|
__strncat_chk
| Version |
NID
|
| 3.60 |
0x33EE298B
|
__strncpy_chk
| Version |
NID
|
| 3.60 |
0x96268C53
|
__snprintf_chk
| Version |
NID
|
| 3.60 |
0x7DBE7007
|
__vsnprintf_chk
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0xCBF64DF6
|
__prnt
| Version |
NID
|
| 0.931 |
not present. Present in ForKernel.
|
| 3.60 |
0xE38E7605
|
This is a guessed name. from PSP.
void __prnt(void (* cb)(void *argp, int ch), void *argp, const char *fmt, va_list list);
Supported formats:
| Format |
Description
|
| \x20 |
maybe space fill
|
| # |
unknown
|
| * |
unknown
|
| - |
Left align
|
| + |
unknown
|
| . |
unknown
|
| 0 |
Padding number and Enter zero padding
|
| 1~9 |
Padding number
|
| D |
unknown (maybe with long?)
|
| L |
unknown (maybe with long?)
|
| O |
unknown (maybe with long?)
|
| U |
unknown (maybe with long?)
|
| X |
print hex number as uppercase
|
| c |
print char
|
| d |
print decimal number
|
| h |
unknown
|
| l |
long
|
| o |
unknown
|
| p |
print pointer as lowercase
|
| s |
print strings
|
| u |
unsigned number
|
| x |
print hex number as lowercase
|
Note: cb(argp, ch=0x200) is called at the very beginning of __prnt (before any character is emitted), and cb(argp, ch=0x201) is called at the end of __prnt (after all characters have been emitted).
vsnprintf
| Version |
NID
|
| 0.931-3.60 |
0x3DDBE2E1
|
int vsnprintf(char *s, size_t n, const char *fmt, va_list arg);
get_ctype_table
| Version |
NID
|
| 0.931-0.990 |
0x0614B013
|
| 3.60 |
not present
|
look_ctype_table
| Version |
NID
|
| 3.60 |
0xCDF7F155
|
typedef enum SceCTypeFlag {
SCE_CTYPE_NONE = 0,
SCE_CTYPE_UPPERCASE = 1,
SCE_CTYPE_LOWERCASE = 2,
SCE_CTYPE_NUMBER = 4,
SCE_CTYPE_CONTROL = 8,
SCE_CTYPE_SYMBOL = 0x10,
SCE_CTYPE_INVISIBLE = 0x20,
SCE_CTYPE_HEX_CASE = 0x40
} SceCTypeFlag;
char look_ctype_table(char ch);
memchr
| Version |
NID
|
| 3.60 |
0x60DAEA30
|
bcmp_s
| Version |
NID
|
| 3.60 |
0xB5A4D745
|
This is a guessed name. Temp name was timingsafe_memcmp by mistake since this function actually returns zero/non-zero rather than a positive/zero/negative value.
Compares the contents of two buffers in constant time (for a given length).
Returns 0 if buffers have identical contents, a non-zero value otherwise (i.e., if buffers' contents differ).
int bcmp_s(const void *b1, const void *b2, size_t len);
memcmp
| Version |
NID
|
| 0.931-3.60 |
0xF939E83D
|
memcpy
| Version |
NID
|
| 0.931-3.60 |
0x40C88316
|
memmove
| Version |
NID
|
| 1.50-3.60 |
0x6CC9C1A1
|
On FW 1.69, this seems to be implemented incorrectly.
memset
| Version |
NID
|
| 0.931-3.60 |
0x0AB9BF5C
|
snprintf
| Version |
NID
|
| 1.69-3.60 |
0xAE7A8981
|
strchr
| Version |
NID
|
| 1.50-3.60 |
0x38463759
|
strcmp
| Version |
NID
|
| 1.69-3.60 |
0x0B33BC43
|
strlcat
| Version |
NID
|
| 3.60 |
0x12504E09
|
strlcpy
| Version |
NID
|
| 3.60 |
0x7FB4EBEC
|
strlen
| Version |
NID
|
| 0.931-3.60 |
0xCFC6A9AC
|
strncat
| Version |
NID
|
| 1.69-3.60 |
0xA1D1C32C
|
char *strncat(char *s1, const char *s2, size_t n);
strncmp
| Version |
NID
|
| 1.60-3.60 |
0x12CEE649
|
int strncmp(const char *s0, const char *s1, int n);
strncpy
| Version |
NID
|
| 0.931-3.60 |
0x6D286146
|
strlcpy
| Version |
NID
|
| 0.931.010 |
not present
|
| 0.990-3.600.011 |
0xFE39AEAC
|
This is a guessed name. Temp name was strncpy_s. A potential name may be strlcpy_s if the function is timing-safe.
Similar to strlcpy(): copies up to dstsize - 1 characters from src to dst then NUL-terminates dst (except if dstsize == 0).
The return value is the same as strncpy() (i.e., equal to dst) and not the length of src. This difference can be explained by the fact that strlcpy() is not present in glibc and is not standardized by POSIX.
char *strlcpy(char *dst, const char *src, size_t dstsize);
strnlen
| Version |
NID
|
| 1.69-3.60 |
0xCD4BD884
|
strrchr
| Version |
NID
|
| 1.69-3.60 |
0x7F0E0835
|
strstr
| Version |
NID
|
| 1.69-3.60 |
0x1304A69D
|
strtol
| Version |
NID
|
| 0.931-3.60 |
0xAB77C5AA
|
strtoll
| Version |
NID
|
| 3.60 |
0x87AAAFA2
|
strtoul
| Version |
NID
|
| 3.60 |
0x4E5042DA
|
tolower
| Version |
NID
|
| 3.60 |
0x0021DAF9
|
char tolower(char ch);
toupper
| Version |
NID
|
| 3.60 |
0xA685DCB1
|
char toupper(char ch);
__strcpy_chk
| Version |
NID
|
| 0.931.010-0.990 |
not present
|
| 0.996.090-3.740.011 |
0x545DA5FD
|
Copy a string, with buffer overflow checking.
char * __strcpy_chk(char * dest, const char * src, size_t destlen);
__strcat_chk
| Version |
NID
|
| 0.931.010-0.990 |
not present
|
| 0.996.090-3.740.011 |
0xDE4666F0
|
Concatenate two strings, with buffer overflow checking.
char *__strcat_chk(char *dest, const char *src, SceSize destlen);
SceSysrootForKernel
sceKernelSysrootSWBkptGetOriginalOpcodeForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x9CFF80F9
|
This is a guessed name.
See #sceKernelSysrootSWBkptGetOriginalOpcodeForDriver.
sceKernelSysrootSetGetPrxDebugFlagFuncForKernel
| Version |
NID
|
| 0.940-2.060.011 |
0xE635DFCC
|
| 2.100.081-3.740.011 |
not present
|
This is a guessed name.
Registers the function called by #sceKernelSysrootGetPrxDebugFlagForKernel which is also the fallback function called by #sceKernelSysrootGetCurrentAddressSpaceCBForKernel.
This function has been removed since System Software 2.100.081 because its feature was moved to #SceSysrootForKernel_26458702.
int sceKernelSysrootSetGetPrxDebugFlagFuncForKernel(void *func);
3999F917
sceKernelSysrootGetPrxDebugFlagForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x73522F65
|
This is a guessed name.
Calls the function registered by #sceKernelSysrootSetGetPrxDebugFlagFuncForKernel on System Software version < 2.100.081 and by #sceKernelSysrootRegisterDbgpHandlerForKernel on System Software version >= 2.100.081.
int sceKernelSysrootGetPrxDebugFlagForKernel(SceUID pid, SceUInt32 *pFlag);
SceSysrootForKernel_5E7ECC37
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-2.060.011 |
0x5E7ECC37
|
| 2.100.081-3.740.011 |
not present
|
Registers the function called by #SceSysrootForKernel_5C86E49B.
This function has been removed since System Software version 2.100.081 because its feature is now provided by #sceKernelSysrootRegisterDbgpHandlerForKernel.
int SceSysrootForKernel_5E7ECC37(void *func);
SceSysrootForKernel_5C86E49B
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.740.011 |
0x5C86E49B
|
Calls the handler stored in SceSysrootDbgpHandler at offset 0x10 and registered by #SceSysrootForKernel_5E7ECC37 or #sceKernelSysrootRegisterDbgpHandlerForKernel.
sceKernelSysrootSetProcessDebugSuspendFuncForKernel
| Version |
NID
|
| 0.990.000-3.010.031 |
0x4337841F
|
| 3.10-3.740.011 |
0x4337841F
|
This is a guessed name.
Registers the function called by #sceKernelSysrootProcessDebugSuspendForKernel.
This function has been removed since System Software version 3.10 because its feature is already provided by #SceSysrootForKernel_D29BCA77.
int sceKernelSysrootSetProcessDebugSuspendFuncForKernel(void *func);
sceKernelSysrootProcessDebugSuspendForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x1247A825
|
This is a guessed name. Official name might be as well sceKernelProcessDebugSuspendForKernel.
Calls the function registered by either #sceKernelSysrootSetProcessDebugSuspendFuncForKernel or #SceSysrootForKernel_D29BCA77.
int sceKernelSysrootProcessDebugSuspendForKernel(SceUID pid, int status);
SceSysrootForKernel_150DBA2B
| Version |
NID
|
| 0.990.000-3.360.011 |
0x150DBA2B
|
| 3.500.011-3.740.011 |
not present
|
SceSysrootForKernel_273EAE53
| Version |
NID
|
| 0.990.000-3.360.011 |
0x273EAE53
|
| 3.500.011-3.740.011 |
not present
|
sceKernelSysrootIsKernelProcessForKernel
| Version |
NID
|
| 0.990.000-3.360.011 |
0xE0FC42C3
|
| 3.500.011-3.740.011 |
not present
|
This is a guessed name.
SceBool sceKernelSysrootIsKernelProcessForKernel(void);
sceKernelSysrootRegisterKPLSForKernel
| Version |
NID
|
| 0.990.000-1.70 |
0x23BEAF6B
|
| 1.800.071-3.740.011 |
not present
|
SceSysrootForKernel_571E5B79
| Version |
NID
|
| 0.990.000-3.740.011 |
0x571E5B79
|
See #SceSysrootForDriver_571E5B79.
sceKernelSysrootRegisterDbgpHandlerForKernel
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0x3999F917
|
Registers a debug process handler.
int sceKernelSysrootRegisterDbgpHandlerForKernel(SceSysrootDbgpHandler *handler);
sceKernelSysrootSetGetIntrMMUContextFuncForKernel
| Version |
NID
|
| 0.931.010-3.740.011 |
0x611F17A4
|
This is a guessed name.
Registers the function called by #sceKernelSysrootGetIntrMMUContextForKernel.
int sceKernelSysrootSetGetIntrMMUContextFuncForKernel(void *func);
sceKernelSysrootGetIntrMMUContextForKernel
| Version |
NID
|
| 0.931.010-3.740.011 |
0x118657C6
|
This is a guessed name.
Calls the function registered by #sceKernelSysrootSetGetIntrMMUContextFuncForKernel.
Return value is officially named pIntrMMUContext. "Intr" likely stands for "interrupt".
Used in SceExcpmgr.
SceKernelMMUContext* sceKernelSysrootGetIntrMMUContextForKernel(void);
SceSysrootForKernel_081F2C20
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 1.60-1.69 |
0x081F2C20
|
| 3.60 |
not present
|
Registers sceKernelGetProcessId_2 from SceKernelThreadMgr.
int SceSysrootForKernel_081F2C20(void *func);
SceSysrootForKernel_C5EAF5F7
| Version |
NID
|
| 0.990-3.60 |
0xC5EAF5F7
|
Registers the function called by #SceSysrootForKernel_47724459.
int SceSysrootForKernel_C5EAF5F7(void *func);
SceSysrootForKernel_47724459
| Version |
NID
|
| 0.990-3.60 |
0x47724459
|
Calls the function registered by #SceSysrootForKernel_C5EAF5F7.
SceSysrootForKernel_8747D415
| Version |
NID
|
| 0.990-3.60 |
0x8747D415
|
Registers the function used by #SceSysrootForKernel_B27B7530.
int SceSysrootForKernel_8747D415(void *func);
SceSysrootForKernel_B27B7530
| Version |
NID
|
| 0.990-3.60 |
0xB27B7530
|
Calls the function registered by #SceSysrootForKernel_8747D415.
Used by SceKernelBusError.
SceSysrootForKernel_82FC6405
| Version |
NID
|
| 0.990-3.60 |
0x82FC6405
|
Registers the function used by #SceSysrootForKernel_CD4B84F7.
Used by SceKernelBusError.
int SceSysrootForKernel_82FC6405(void *func);
SceSysrootForKernel_CD4B84F7
| Version |
NID
|
| 0.990-3.60 |
0xCD4B84F7
|
Calls the function registered by #SceSysrootForKernel_82FC6405.
Used by SceKernelBusError.
SceSysrootForKernel_733C243E
| Version |
NID
|
| 0.990-3.60 |
0x733C243E
|
Registers many Sysroot SceProcessmgr callbacks.
int SceSysrootForKernel_733C243E(const SceSysrootForKernel_733C243E_struct *pParam);
SceSysrootForKernel_7334F1E8
| Version |
NID
|
| 3.60 |
0x7334F1E8
|
Calls SceProcessmgr#SceProcessmgrForKernel_C77C2085 function registered by #SceSysrootForKernel_733C243E.
int SceSysrootForKernel_7334F1E8(SceUID pid);
SceSysrootForKernel_D29BCA77
| Version |
NID
|
| 0.990-3.740.011 |
0xD29BCA77
|
Registers many Sysroot SceProcessmgr callbacks.
int SceSysrootForKernel_D29BCA77(const SceSysrootForKernel_D29BCA77_struct *pParam);
SceSysrootForKernel_DD7821AA
| Version |
NID
|
| 0.990-3.60 |
0xDD7821AA
|
Registers the function called by #SceSysrootForKernel_340575CB.
int SceSysrootForKernel_DD7821AA(void *func);
SceSysrootForKernel_340575CB
| Version |
NID
|
| 0.990-3.60 |
0x340575CB
|
Return some PID.
SceUID SceSysrootForKernel_340575CB(void);
sceKernelSysrootSetCheckRemapCodeForUserFuncForKernel
| Version |
NID
|
| 0.990-3.60 |
0xBE1EF51C
|
Registers the function called by #sceKernelSysrootCheckRemapCodeForUserForKernel.
int sceKernelSysrootSetCheckRemapCodeForUserFuncForKernel(void *func);
sceKernelSysrootCheckRemapCodeForUserForKernel
| Version |
NID
|
| 0.990-3.60 |
0xF8769E86
|
sceKernelSysrootAllocCurrentProcessHeapForKernel
| Version |
NID
|
| 0.990-3.60 |
0x2F75C1DC
|
void *sceKernelSysrootAllocCurrentProcessHeapForKernel(SceSize size);
sceKernelSysrootCorelockUnlockForKernel
| Version |
NID
|
| 0.931.010-3.740.011 |
0xAE55B7CC
|
Calls #SceCpuForKernel_A5C9DBBA.
void sceKernelSysrootCorelockUnlockForKernel(void);
SceSysrootForKernel_21F5790B
| Version |
NID
|
| 0.931 |
not present
|
| 3.60 |
0x21F5790B
|
Registers a function related to kernel panic.
int SceSysrootForKernel_21F5790B(void *func);
SceSysrootForKernel_0DF574A9
| Version |
NID
|
| 0.931 |
not present
|
| 3.60 |
0x0DF574A9
|
Calls the function related to kernel panic registered by #SceSysrootForKernel_21F5790B.
int SceSysrootForKernel_0DF574A9(void);
SceSysrootForKernel_2D6B2A79
| Version |
NID
|
| 0.990-3.60 |
0x2D6B2A79
|
Registers a function related to kernel panic, called by #SceSysrootForKernel_CC7A0E63.
SceSysrootForKernel_CC7A0E63
| Version |
NID
|
| 0.990-3.60 |
0xCC7A0E63
|
Calls a function related to kernel panic, registered by #SceSysrootForKernel_2D6B2A79.
// type: 1: kernel_assertion_or_panic, 3: kernel_exception
// size: must be <= 0x1000
// pBuf: address of the buffer got using SceDebugForKernel_BEF921A2
int SceSysrootForKernel_CC7A0E63(int type, SceSize size, const char *pBuf);
SceSysrootForKernel_1D84C4D4
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0x1D84C4D4
|
Get module name, fingerprint and base from address.
int SceSysrootForKernel_1D84C4D4(SceUID pid, uintptr_t address, SceUInt32 *pDbgFingerprint, SceUInt32 *pModuleBase, char *module_name);
SceSysrootForKernel_5B5EBFB1
| Version |
NID
|
| 0.990.000-3.740.011 |
0x5B5EBFB1
|
Registers pointer to SceLT5 used by #SceSysrootForKernel_E20F6FC8.
int SceSysrootForKernel_5B5EBFB1(uint a1);
SceSysrootForKernel_41636522
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.740.011 |
0x41636522
|
Returns current SceLT5 value pointed by pointer registered using #SceSysrootForKernel_E20F6FC8. Long/low (64bit) time in microseconds. It is about "awake" uptime from system boot.
uint64_t SceSysrootForKernel_41636522(void);
SceSysrootForKernel_E20F6FC8
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.740.011 |
0xE20F6FC8
|
Same as #SceSysrootForKernel_41636522 but "asynchronous".
Used by SceDebug Kernel Exceptions handlers.
uint64_t SceSysrootForKernel_E20F6FC8(void);
SceSysrootForKernel_1D8DB3A5
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.740.011 |
0x1D8DB3A5
|
Same as #SceSysrootForKernel_41636522 but "asynchronous".
Returns 0 on success, 0x80020006 if pTime is a NULL pointer.
int SceSysrootForKernel_1D8DB3A5(SceUInt64 *pTime);
sceKernelSysrootCorelockLockForKernel
| Version |
NID
|
| 0.931.010-3.740.011 |
0x8E4B61F1
|
Calls #SceCpuForKernel_9D72DD1B.
int sceKernelSysrootCorelockLockForKernel(SceUInt32 core);
SceSysrootForKernel_06182D59
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.740.011 |
0x06182D59
|
Reimplementation:
int SceSysrootForKernel_06182D59(int idx) {
return *(uint32_t *)(pSysroot + 0x20) + (idx << 0x5);
}
int SceSysrootForKernel_06182D59(int idx);
SceSysrootForKernel_7385CADE
| Version |
NID
|
| 0.931.010-0.990.000 |
not present
|
| 1.000.071-3.740.011 |
0x7385CADE
|
Get current syscall's PID.
// Returns KERNEL_PID if the function has not been set
SceUID SceSysrootForKernel_7385CADE(void);
SceSysrootForKernel_D441DC34
| Version |
NID
|
| 0.931.010-0.990.000 |
not present
|
| 1.000.071-3.740.011 |
0xD441DC34
|
Calls a callback registered by #SceSysrootForKernel_26458702, related to syscall frame printing on kernel panic.
sceKernelSysrootGetSysrootClassItemsizeForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0xEEB867C0
|
This is a guessed name. Derived from get_SceKernelSysrootClass_itemsize.
On System Software version 0.990, returns hardcoded value 0x470.
On System Software version 3.200.010, returns hardcoded value 0x440.
On System Software version 3.600.011, returns hardcoded value 0x41C.
SceSize sceKernelSysrootGetSysrootClassItemsizeForKernel(void);
sceKernelGetSysrootClassObjectForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x085C2BCB
|
This is a guessed name. Derived from get_SceKernelSysrootClass_object.
SceKernelObject *sceKernelGetSysrootClassObjectForKernel(void);
sceKernelSysrootGetLibraryDBForKernel
| Version |
NID
|
| 0.990.000-2.060.011 |
0xCD70C9D7
|
| 2.100.081-3.740.011 |
not present
|
Equivalent to sceKernelGetProcessLibdbForKernel(0x10005) in 3.60
// size is 0x34-bytes on FW 2.00
void *sceKernelSysrootGetLibraryDBForKernel(void *pSysroot);
sceKernelSysrootSetLibraryDBForKernel
| Version |
NID
|
| 0.990.000-2.060.011 |
0xCB58A0F4
|
| 2.100.081-3.740.011 |
not present
|
Maybe sets a pointer to the library stub structure. See Modules.
// size is 0x34-bytes on FW 2.00
int sceKernelSysrootSetLibraryDBForKernel(void *pSysroot, void *pLibDb);
sceKernelSysrootGetProcessLibraryDBForKernel
| Version |
NID
|
| 0.990.000-2.060.011 |
0xF1037820
|
| 2.100.081-3.740.011 |
not present
|
Equivalent to sceKernelGetProcessLibdbForKernel(pid) in System Software version 3.600.011.
The return value of this function is an integer on error, but returns a pointer to LibraryDB on success.
// size is 0x34-bytes on FW 2.00
int sceKernelSysrootGetProcessLibraryDBForKernel(SceUID pid);
sceKernelSysrootAllocForKernel
| Version |
NID
|
| 0.931.010-3.360.011 |
0xB0149E69
|
| 3.500.011-3.740.011 |
Not present
|
Allocates memory from the "Sysroot heap". The Sysroot heap is located after SceSysroot structure and consumes the rest of the page. Allocations from this "heap" are permanent and cannot be returned - there is no sceKernelSysrootFreeForKernel.
Usage of this function is not recommended because of the lack of a "free" function. Use SceSysmem#sceKernelAllocForKernel instead.
void *sceKernelSysrootAllocForKernel(SceSize size);
sceKernelSysrootSetStatusForKernel
| Version |
NID
|
| 0.990-3.740.011 |
0xA84676E3
|
| status |
description
|
| 3 |
Global malloc heap initialization completed.
|
| 4 |
Start initialization for load the module
|
| 0x10 |
Initialization to load the module is complete
|
| 0x100 |
First process create
|
| 0x1000 |
Kernel boot completed.
|
int sceKernelSysrootSetStatusForKernel(SceUInt32 status);
sceKernelSysrootGetProcessCBExitDeleteThreadForKernel
| Version |
NID
|
| 0.990-3.60 |
0xBBFD2E3C
|
sceKernelSysrootGetCurrentProcessCBForKernel
| Version |
NID
|
| 0.990-3.60 |
0x9991B1AF
|
sceKernelSysrootGetCurrentThreadAttrForKernel
| Version |
NID
|
| 0.990-3.60 |
0x73601453
|
int sceKernelSysrootGetCurrentThreadAttrForKernel(SceUint32 *pThrAttr);
sceKernelSysrootGetCurrentTimeForKernel
| Version |
NID
|
| 0.990 |
0x4FCFA359
|
SceRtcTick *sceKernelSysrootGetCurrentTimeForKernel(void);
sceKernelSysrootGetSystemTimeForKernel
| Version |
NID
|
| 0.990-1.692.000 |
0xE0D41319
|
| 3.60 |
not present
|
int sceKernelSysrootGetSystemTimeForKernel(SceRtcTick *pTick)
sceKernelSysrootGetSystemTimeLowForKernel
| Version |
NID
|
| 0.990-1.692.000 |
0x2464329D
|
| 3.60 |
not present
|
int sceKernelSysrootGetSystemTimeLowForKernel(void);
sceKernelSysrootAssertSysrootForKernel
| Version |
NID
|
| 0.990-1.692.000 |
0x1B7F150F
|
| 3.60 |
not present
|
Check sysroot->magic (offset 0xC must be 0xBA97F5A1) and sysroot->magic2 (offset 0x20C must be 0xA008B0C3).
int sceKernelSysrootAssertSysrootForKernel(void *sysroot);
sceKernelSysrootSetVbaseResetVectorForKernel
| Version |
NID
|
| 0.990-3.740.011 |
0x0F2F2B4E
|
sceKernelSysrootThreadMgrStartAfterProcessForKernel
| Version |
NID
|
| 0.990-3.740.011 |
0x0EB5D7CD
|
sceKernelSysrootGetCurrentProcessForKernel
| Version |
NID
|
| 0.931-0.996.090 |
0x5B7570C5
|
Return the current process id.
SceUID sceKernelSysrootGetCurrentProcessForKernel(void);
sceKernelSysrootTrapThreadAfterSyscallForKernel
| Version |
NID
|
| 0.990-3.740.011 |
0x9139E22B
|
Calls a callback registered by #SceSysrootForKernel_26458702.
Prints syscall_critical_usage.
sceKernelSysrootReturnFromExcpToThreadForKernel
| Version |
NID
|
| 0.931-3.740.011 |
0xDADFF828
|
Used in SceExcpmgr.
int sceKernelSysrootReturnFromExcpToThreadForKernel(void);
sceKernelSysrootBacktraceForKernel
| Version |
NID
|
| 0.931-3.740.011 |
0xCC893F37
|
See also SceKernelModulemgr#SceBacktraceForDriver.
int sceKernelSysrootBacktraceForKernel(SceUID threadId, SceKernelCallFrame *pCallFrameBuffer, SceSize numBytesBuffer, SceUInt32 *pNumReturn, SceInt32 mode);
sceKernelSysrootPrintBacktraceForKernel
| Version |
NID
|
| 0.931-3.740.011 |
0x491CE8DF
|
See also SceKernelModulemgr#SceBacktraceForDriver.
int sceKernelSysrootPrintBacktraceForKernel(SceUID processId, const SceKernelCallFrame *pCallFrame, SceUInt32 numFrames);
sceKernelSysrootRegisterBacktraceForKernel
| Version |
NID
|
| 0.940-3.010.031 |
0x1C307A31
|
| 3.60 |
not present
|
int sceKernelSysrootRegisterBacktraceForKernel(int (__cdecl *func)());
sceKernelSysrootGetSharedMemoryForKernel
| Version |
NID
|
| 0.990-3.740.011 |
0xC8C8C321
|
sceKernelSysrootSetSharedMemoryForKernel
| Version |
NID
|
| 0.990-3.740.011 |
0xFBB91741
|
sceKernelSysrootGetUIDEntryHeapForKernel
| Version |
NID
|
| 0.990-3.740.011 |
0x88DE85EF
|
Temp name was sceKernelSysrootGetPUIDEntryHeapForKernel.
Gets the UID Entry Heap of the process.
Kernel process's UID entry heap is the GUIDEntryHeap. All other process' UID entry heaps are PUID heaps.
int sceKernelSysrootGetUIDEntryHeapForKernel(SceUID pid, void **entryHeap);
sceKernelSysrootGetStatusForKernel
| Version |
NID
|
| 0.990-3.740.011 |
0x5C426B19
|
int sceKernelSysrootGetStatusForKernel(void);
sceKernelSysrootIofilemgrStartForKernel
| Version |
NID
|
| 0.990-3.60 |
0xF6A6D205
|
SceSysrootForKernel_F9FB9A2A
| Version |
NID
|
| 0.990.000-2.060.011 |
0xF9FB9A2A
|
| 2.100.081-3.740.011 |
not present
|
Registers the function called by #sceKernelSysrootGetCurrentAddressSpaceCBForKernel.
This function has been removed since System Software 2.100.081 because its feature was moved to #SceSysrootForKernel_D29BCA77.
int SceSysrootForKernel_F9FB9A2A(void *func);
sceKernelSysrootGetCurrentAddressSpaceCBForKernel
| Version |
NID
|
| 0.940-3.740.011 |
0x63EBB05B
|
Gets the current Address Space's control block via TPIDRPRW.
This function calls a callback registered by #SceSysrootForKernel_F9FB9A2A on System Software version < 2.10 and by #SceSysrootForKernel_D29BCA77 on System Software version >= 2.10, if it was registered, else a fallback callback. The fallback callback is registered by #SceSysrootForKernel_E635DFCC on System Software version < 2.10 and by #SceSysrootForKernel_26458702 on System Software version >= 2.10.
SceUIDAddressSpaceObject *sceKernelSysrootGetCurrentAddressSpaceCBForKernel(void);
SceSysrootForKernel_BF82931F
| Version |
NID
|
| 1.500.151-3.740.011 |
0xBF82931F
|
Calls the function registered by #SceSysrootForDriver_2BE874EF.
No usage seen on CEX OS. Maybe used in DEX/TOOL OS.
int SceSysrootForKernel_BF82931F(int maybe_app_id, void *pOut);
SceSysrootForKernel_6D111FA7
| Version |
NID
|
| 1.500.151-3.740.011 |
0x6D111FA7
|
Calls the function registered by #SceSysrootForDriver_3B19B06B.
Used only in SceCoredump.
int SceSysrootForKernel_6D111FA7(int maybe_app_id, void *pOut);
SceSysrootForKernel_2A03DFA1
| Version |
NID
|
| 3.60 |
0x2A03DFA1
|
Calls the function registered by #SceSysrootForDriver_70AD47A9.
Used only in SceCoredump.
// pOut: A buffer of at least 0xF8 bytes
int SceSysrootForKernel_2A03DFA1(void *pOut);
sceKernelSysrootAppMgrSpawnProcessForKernel
| Version |
NID
|
| 0.990-3.60 |
0x3ACACD22
|
sceKernelSysrootGetCachedSecureModuleInfoForKernel
| Version |
NID
|
| 3.60 |
0xF10AB792
|
Temp name was sceKernelSysrootGetSmSelfInfoForKernel.
| Index |
SM SELF location
|
| 0 |
os0:sm/gcauthmgr_sm.self
|
| 1 |
os0:sm/rmauth_sm.self
|
| 2 |
os0:sm/encdec_w_portability_sm.self
|
int sceKernelSysrootGetCachedSecureModuleForKernel(SceCachedSecureModule id, SceCachedSecureModuleInfo *pInfo);
sceKernelSysrootGetProcessSelfAuthInfoForKernel
| Version |
NID
|
| 0.931-3.60 |
0x4F0A4066
|
Temp name was sceSysrootGetSelfAuthInfoForKernel.
int sceKernelSysrootGetProcessSelfAuthInfoForKernel(SceUID pid, SceSelfAuthInfo *pSelfAuthInfo);
sceKernelSysrootGetProcessTitleIdForKernel
| Version |
NID
|
| 3.60 |
0xEC3124A3
|
Temp name was sceSysrootGetProcessTitleIdForPidForKernel.
int sceKernelSysrootGetProcessTitleIdForKernel(SceUID pid, char *title_id, SceSize len);
sceKernelSysrootSetGetFunctionNameByNIDFuncForKernel
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.740.011 |
0xB39CD708
|
Registers the function called by #sceKernelSysrootGetFunctionNameByNIDForKernel.
int sceKernelSysrootSetGetFunctionNameByNIDFuncForKernel(void *func);
sceKernelSysrootGetFunctionNameByNIDForKernel
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.740.011 |
0x0B79E220
|
Mirror of SceSysLibTrace#sceNidsymtblGetFunctionNameByNIDForDriver.
int sceKernelSysrootGetFunctionNameByNIDForKernel(SceNID funcnid, const char **name);
SceSysrootForKernel_26458702
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0x26458702
|
Registers some callbacks for example the fallback callback called by #sceKernelSysrootGetCurrentAddressSpaceCBForKernel.
SceSysrootForKernel_B171CC2D
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0xB171CC2D
|
Register some ModuleMgr handlers.
Used by SceKernelModulemgr.
int SceSysrootForKernel_B171CC2D(SceSysrootModulemgrHandlers *pHandlers);
sceKernelSysrootGetProcessSyscallInfoForKernel
| Version |
NID
|
| 3.60 |
0xFF9F80FF
|
int sceKernelSysrootGetProcessSyscallInfoForKernel(SceUID pid, const void *PC, SceSyscallInfo *pInfo);
sceKernelSysrootGetVbaseResetVectorForKernel
| Version |
NID
|
| 0.990-3.60 |
0xCC85905B
|
Returns the exception vectors base address. The address of the exception vectors for the CPU i is: sceKernelSysrootGetVbaseResetVectorForKernel() + 0x40 * i.
void *sceKernelSysrootGetVbaseResetVectorForKernel(void);
sceKernelSysrootSetLicMgrGetLicenseStatusFuncForKernel
| Version |
NID
|
| 3.60 |
0x71DB83A2
|
Registers SceSblPostSsMgr#sceSblLicMgrGetLicenseStatusForDriver.
int sceKernelSysrootSetLicMgrGetLicenseStatusFuncForKernel(int (__cdecl *sceSblLicMgrGetLicenseStatusForDriver)());
sceKernelSysrootLicMgrGetLicenseStatusForKernel
| Version |
NID
|
| 3.60 |
0x377895EB
|
Called by sceSblAuthMgrAuthHeaderForKernel before Cmep request.
int sceKernelSysrootLicMgrGetLicenseStatusForKernel(void);
sceKernelSysrootGetSysrootForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x3E455842
|
Temp name was sceKernelGetSysbaseForKernel.
Returns pointer to SceUIDSysrootObject in SceSysmem.
SceUIDSysrootObject *sceKernelSysrootGetSysrootForKernel(void);
sceKernelSysrootGetKblParamForKernel
| Version |
NID
|
| 0.931-3.740.011 |
0x9DB56D1F
|
Temp name was sceKernelGetSysrootBufferForKernel, sceSysrootGetSysrootBufferForKernel.
Returns pointer to KBL Param.
SceKblParam *sceKernelSysrootGetKblParamForKernel(void);
sceKernelSysrootGetSoCRevisionForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0xD3872270
|
return pSysroot->soc_revision;
int sceKernelSysrootGetSoCRevisionForKernel(void);
sceKernelSysrootGetPervasiveUnkDwordForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0xFFD6E24D
|
This is a guessed name.
Returns value initially read from physical address 0xE3100004 (ScePervasiveMisc + 0x4).
return pSysroot->pervasive_unk_dword;
int sceKernelSysrootGetPervasiveUnkDwordForKernel(void);
sceKernelSysrootGetKermitRevisionForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x403B509E
|
return pSysroot->kermit_revision;
Used by SceKernelBusError, SceSysStateMgr.
// Return value is 0x1FFFF-masked, at least on recent System Software versions.
SceUInt32 sceKernelSysrootGetKermitRevisionForKernel(void);
sceKernelSysrootGetErnieSleepFactorForKernel
| Version |
NID
|
| 0.996.090-3.740.011 |
0xAB3CC7D0
|
This is a guessed name.
See KBL Param#Sleep Factor.
return kbl_param->sleep_factor;
int sceKernelSysrootGetErnieSleepFactorForKernel(void);
sceKernelSysrootGetErnieWakeupFactorForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x2F97041A
|
This is the official name. Temp name was sceSysrootGetWakeupFactorForKernel.
See KBL Param#Wakeup Factor.
return kbl_param->wakeup_factor;
int sceKernelSysrootGetErnieWakeupFactorForKernel(void);
sceKernelSysrootGetSessionIdForKernel
| Version |
NID
|
| 0.931.010-1.81 |
not present
|
| 2.000.081-3.740.011 |
0x84783B71
|
Writes kbl_param->session_id to buffer.
pSessionId buffer size is 0x10 bytes.
int sceKernelSysrootGetSessionIdForKernel(char *pSessionId);
sceKernelSysrootIsExternalBootModeForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x89D19090
|
return *(int *)(kbl_param->boot_type_indicator_1) & 1;
int sceKernelSysrootIsExternalBootModeForKernel(void);
sceKernelSysrootIsSomeBootModeForKernel
| Version |
NID
|
| 0.990-0.996.090 |
not present
|
| 1.000.071-3.740.011 |
0x7B7F8171
|
This is a guessed name. A possible name is sceKernelIsAllowSdCardFromMgmt.
Used by SceSdif, SceExfatfs.
SceExfatfs will mount sd0: instead of gro0:/grw0: when this function returns SCE_TRUE.
return (*(int *)(kbl_param->boot_type_indicator_1) >> 19) & 1;
Returns true if boot_type_indicator_1 has flag 0x80000 ?sd mode? - (Mgmt bit 1)
int sceKernelSysrootIsSomeBootModeForKernel(void);
sceKernelSysrootIsExternalBootMode2ForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x7918D44E
|
This is a guessed name. Temp name was sceSysrootIsSomeBootMode2ForKernel. A possible name is sceKernelIsAllowFwCheckSkip.
return kbl_param->boot_type_indicator_1[2] & 1;
Return true if boot_type_indicator_1 has flag 0x10000 but it seems to be never set in external (release) second_loader. It allows to bypass current fw version check for module loading.
int sceKernelSysrootIsExternalBootMode2ForKernel(void);
sceKernelSysrootIsUartModeForKernel
| Version |
NID
|
| 0.931.010-3.740.011 |
0xAE7A8F1D
|
This is a guessed name. Temp name was sceSysrootIsSomeModeForKernel.
Returns true if (kbl_param->boot_flags[1] != 0xFF).
Used to check if UART must be initialized or not.
int sceKernelSysrootIsUartModeForKernel(void);
sceKernelSysrootIsSafeModeForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x834439A7
|
int sceKernelSysrootIsSafeModeForKernel(void);
sceKernelSysrootIsUpdateModeForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0xB0E1FC67
|
int sceKernelSysrootIsUpdateModeForKernel(void);
sceKernelSysrootIsBsodRebootForKernel
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0x4373AC96
|
return ((pKblParam->wakeup_factor) & 0x7Fu) == 0x17;
int sceKernelSysrootIsBsodRebootForKernel(void);
sceKernelSysrootIsUsbEnumWakeupForKernel
| Version |
NID
|
| 0.996.090-3.740.011 |
0x79C9AE10
|
if ( *(int *)(kbl_param->unk_C0) & 0x90000 )
return 1;
else
return (*(int *)(kbl_param->wakeup_factor) & 0x7Fu) == 0xF;
int sceKernelSysrootIsUsbEnumWakeupForKernel(void);
sceKernelSysrootIsUnknownRebootForKernel
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0xE4EA1960
|
return (*(int *)(kbl_param->wakeup_factor) & 0x7Fu) <= 1;
int sceKernelSysrootIsUnknownRebootForKernel(void);
sceKernelSysrootIsManufacturingModeForKernel
| Version |
NID
|
| 0.940-3.740.011 |
0x55392965
|
This is a guessed name. Temp name was sceSysrootUseExternalStorageForKernel.
When returns true it allows loading sd0:psp2config.skprx.
Returns true when Manufacturing Mode flag is set:
return (*(int *)(kbl_param->boot_type_indicator_1) >> 2) & 1;
int sceKernelSysrootIsManufacturingModeForKernel(void);
sceKernelSysrootUseInternalStorageForKernel
| Version |
NID
|
| 3.60 |
0x50FE3B4D
|
Returns true when use internal storage flag is not set:
return *(char *)(kbl_param->boot_flags[5]) & 1 ^ 1;
int sceKernelSysrootUseInternalStorageForKernel(void);
sceKernelSysrootGetThreadAccessLevelForKernel
| Version |
NID
|
| 3.60 |
0x20009397
|
Calls int (__cdecl *GetThreadAccessLevel)(); // 0x344 on 3.60
int sceKernelSysrootGetThreadAccessLevelForKernel(void);
sceKernelSysrootAllocRemoteProcessHeapForKernel
| Version |
NID
|
| 0.990-3.60 |
0xD351EBC8
|
Temp name was sceKernelAllocHeapMemoryForKernel.
Same as sceKernelAllocHeapMemoryWithOptForDriver but does set pid to 0x1000B.
Checks that pid is 0x10013 or 0x10005 (kernel).
void* sceKernelSysrootAllocRemoteProcessHeapForKernel(SceUID pid, SceSize size, SceKernelHeapMemoryOpt *pOpt);
sceKernelSysrootGetModulePrivateForKernel
| Version |
NID
|
| 0.990-3.60 |
0x37EC12BB
|
The index idx corresponds to the offset of the ModulePrivate part of the SceUIDSysrootObject structure. See also the Sysmem types section.
The index for Sysmem appears to have changed between old and newer System Software versions. The indices idx used are :
- 3: system memory, related to SceHeap, used on System Software 3.600.011 (0xDC-bytes)
- 5: ?SceKernelIntrMgr data VA?, used on System Software 0.945.000 (?-bytes)
- 7: some process data (?-bytes)
- 9: KBL module CB (0xAC-bytes).
void *sceKernelSysrootGetModulePrivateForKernel(int idx);
sceKernelSysrootSetModulePrivateForKernel
| Version |
NID
|
| 0.990.000-3.740.011 |
0x7A7E7C0C
|
void sceKernelSysrootSetModulePrivateForKernel(int idx, void *data);
sceKernelSysrootSetSysrootForKernel
| Version |
NID
|
| 0.931.010-3.740.011 |
0x36916C30
|
void sceKernelSysrootSetSysrootForKernel(SceUID sysroot_uid);
sceKernelSysrootProcessmgrStart2ForKernel
| Version |
NID
|
| 0.931.011-3.740.011 |
0x62E8F511
|
sceKernelSysrootDbgpSuspendProcessAndWaitResumeForKernel
| Version |
NID
|
| 0.940-3.740.011 |
0x256B2394
|
sceKernelSysrootDbgpSuspendProcessAndWaitResumeForKernel(SceUID pid, SceUID modid, SceUInt32 stopReason, SceUInt64 time);
sceKernelSysrootSetIsUserModeThreadFuncForKernel
| Version |
NID
|
| 0.931.010-2.060.011 |
0x5BD911A8
|
| 2.100.081-3.740.011 |
not present
|
This is a guessed name.
This function has been removed since System Software version 2.100.081 because its feature is now provided by #sceKernelSysrootRegisterDbgpHandlerForKernel.
int sceKernelSysrootSetIsUserModeThreadFuncForKernel(void *func);
sceKernelSysrootIsUserModeThreadForKernel
| Version |
NID
|
| 0.931.011-3.740.011 |
0x7FC7A163
|
sceKernelSysrootGetSecureStatusForKernel
| Version |
NID
|
| 0.940 |
0x0A63CA5E
|
| 3.60 |
not present
|
return *(uint *)some_buf->field_0x28 & 1;
int sceKernelSysrootGetSecureStatusForKernel(void);
sceKernelSysrootIsSecureStateForKernel
| Version |
NID
|
| 0.940 |
0x3193DAB2
|
| 3.60 |
not present
|
return (*(uint *)some_buf->field_0x28 ^ 1) & 1;
SceBool sceKernelSysrootIsSecureStateForKernel(void);
sceKernelSysrootIsColdBootForKernel
| Version |
NID
|
| 0.940-3.60 |
0xD7198963
|
return (*(uint *)some_buf->field_0x28 & 10; // FW 3.60 in IDA PRO
return ((*(uint *)some_buf->field_0x28 ^ 0x10) << 0x1b) >> 0x1f; // FW 0.940 in Ghidra
int sceKernelSysrootIsColdBootForKernel(void);
SceSysrootForDriver
SceSysrootForDriver_4B8C305A
| Version |
NID
|
| ?3.60? |
0x4B8C305A
|
Variable of 12 bytes holding the AutoClockDown idle context.
Used by SceLowio for the AutoClockDown idle loop.
See also: SceSysmem#sceKernelSysrootDisableAutoClockDownForDriver, SceSysmem#sceKernelSysrootEnableAutoClockDownForDriver.
num_active_cores is usually initialized to 0x4. However, if the console is in product mode (as per KBL_Param#Boot_type_indicator_1), then the initialization value is 0x14 instead, which disables the AutoClockDown.
struct low_power_idle_context {
/* backup of ScePervasiveBaseClk registers */
uint32_t arm_baseclk_config[2];
/* counter used to clock down ARM when all cores are idle */
uint32_t num_active_cores; // default: 4, AutoClockDown disabled: 0x14
};
SceSysrootForDriver_6219CC14
| Version |
NID
|
| 3.60-3.65 |
0x6219CC14
|
Used in SceUlobjMgr#SceUlobjMgrForDriver_332F2E58.
int SceSysrootForDriver_6219CC14(int a1, int a2, int a3, int a4, int a5);
SceSysrootForDriver_F804F761
| Version |
NID
|
| 0.931.010-3.18 |
not present
|
| 3.300.041-3.740.011 |
0xF804F761
|
Official name might be sceKernelSysrootHasSDCardSupportForDriver.
This function always returns SCE_FALSE on some release System Software versions, for example 3.500.000 and 3.600.011.
Used in SceSdstor and SceVshBridge#vshSdGetCardInfo.
If this function returns SCE_TRUE, then SceSdif#get_sd_context_part_validate_sd(1) is called.
SceBool SceSysrootForDriver_F804F761(void);
sceKernelSysrootSetVipRpcDebugFuncForDriver
| Version |
NID
|
| 3.60 |
0xA6A0A038
|
This is a guessed name.
void sceKernelSysrootSetVipRpcDebugFuncForDriver(SceKernelSysrootVipRpcDebugFunc func);
sceKernelSysrootClearVipRpcDebugFuncForDriver
| Version |
NID
|
| 3.60 |
0x0ECD711E
|
This is a guessed name.
void sceKernelSysrootClearVipRpcDebugFuncForDriver();
sceKernelSysrootGetVipRpcDebugFuncForDriver
| Version |
NID
|
| 3.60 |
0x483EF108
|
This is a guessed name.
SceKernelSysrootVipRpcDebugFunc sceKernelSysrootGetVipRpcDebugFuncForDriver();
sceKernelSysrootSetVeneziaRpcDebugFuncForDriver
| Version |
NID
|
| 3.60 |
0x47F19DD3
|
This is a guessed name.
void sceKernelSysrootSetVeneziaRpcDebugFuncForDriver(SceKernelSysrootVeneziaRpcDebugFunc func);
sceKernelSysrootClearVeneziaRpcDebugFuncForDriver
| Version |
NID
|
| 3.60 |
0x5B106EB3
|
This is a guessed name.
void sceKernelSysrootClearVeneziaRpcDebugFuncForDriver();
sceKernelSysrootGetVeneziaRpcDebugFuncForDriver
| Version |
NID
|
| 3.60 |
0x49843C16
|
This is a guessed name.
SceKernelSysrootVeneziaRpcDebugFunc sceKernelSysrootGetVeneziaRpcDebugFuncForDriver();
sceKernelApiDeclareTypeInt32ForDriver
| Version |
NID
|
| 3.65 |
0xD86BD6DC
|
Must be called only from syscall context.
This function is used to specify that the currently executing syscall returns an SceInt32 value.
Internally, this information is saved by storing a value in field apiType of the syscall frame, a structure residing on the current thread's kernel stack.
This structure is created by the SVC handler before calling the function implementing any syscall. Before returning to user mode, after the syscall function
has executed, some of the registers r1~r3 are sanitized (set to 0xDEADBEEF) based on the current value of apiType:
Note that the default value of apiType is 0: the default return type of syscall is Int32.
As a result, it is unnecessary to call #sceKernelApiDeclareTypeInt32ForDriver and this function is never used in practice.
Return values of types UInt32, UInt64 and Raw are not examined by the SVC handler.
Return values of types Int32 and Int64 are checked for critical errors: any negative value returned with
bit 30 set (critical error bit) displays the Syscall Critical Usage Error message and debug-suspends the current thread.
(For Int64, negative means that bits 63:31 are set, not just the sign bit (63) - TO BE CHECKED)
void sceKernelApiDeclareTypeInt32ForDriver(void);
sceKernelApiDeclareTypeUInt32ForDriver
| Version |
NID
|
| 3.65 |
0x6E0BC27C
|
See #sceKernelApiDeclareTypeInt32ForDriver.
void sceKernelApiDeclareTypeUInt32ForDriver(void);
sceKernelApiDeclareTypeInt64ForDriver
| Version |
NID
|
| 3.65 |
0x08B8F1D0
|
See #sceKernelApiDeclareTypeInt32ForDriver.
void sceKernelApiDeclareTypeInt64ForDriver(void);
sceKernelApiDeclareTypeUInt64ForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60-3.65 |
0x2A5DBD38
|
See #sceKernelApiDeclareTypeInt32ForDriver.
void sceKernelApiDeclareTypeUInt64ForDriver(void);
sceKernelApiDeclareTypeRawForDriver
| Version |
NID
|
| 3.65 |
0x8A760856
|
See #sceKernelApiDeclareTypeInt32ForDriver.
void sceKernelApiDeclareTypeRawForDriver(void);
sceKernelApiDeclareErrorMsgForDriver
| Version |
NID
|
| 3.65 |
0x8CD02748
|
See #sceKernelApiDeclareTypeInt32ForDriver.
A call to this function overrides any prior call to sceKernelApiDeclareTypeXxx() functions.
Upon return from the syscall function, the error message msg is printed (instead of the generic Syscall Critical Usage Error)
before the current thread is debug-suspended.
void sceKernelApiDeclareErrorMsgForDriver(const char *msg);
sceKernelSysrootGetTimebaseClockFrequencyForDriver
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.500.071-3.740.011 |
0xBFD8F2A2
|
Calls a function registered by #SceSysrootForDriver_C94C76FA.
Used by SceGpuEs4, only on DevKit.
SceUInt32 sceKernelSysrootGetTimebaseClockFrequencyForDriver(void);
SceSysrootForDriver_C94C76FA
| Version |
NID
|
| 0.931.010-3.360.011 |
not present
|
| 3.500.011-3.740.011 |
0xC94C76FA
|
Registers some Sysroot functions related to clock frequency.
int SceSysrootForDriver_C94C76FA(SceSysrootForDriver_C94C76FA_struct *pParam);
SceSysrootForDriver_2BE874EF
| Version |
NID
|
| 1.500.151-3.740.011 |
0x2BE874EF
|
Registers the function called by #SceSysrootForKernel_BF82931F.
Used only in SceAppMgr.
int SceSysrootForDriver_2BE874EF(void *func);
SceSysrootForDriver_3B19B06B
| Version |
NID
|
| 1.500.151-3.740.011 |
0x3B19B06B
|
Registers the function called by #SceSysrootForKernel_6D111FA7.
Used only in SceAppMgr.
int SceSysrootForDriver_3B19B06B(void *func);
SceSysrootForDriver_70AD47A9
| Version |
NID
|
| 1.500.151-3.740.011 |
0x70AD47A9
|
Registers the function called by #SceSysrootForKernel_2A03DFA1.
Used only in SceAppMgr.
int SceSysrootForDriver_70AD47A9(void *func);
SceSysrootForDriver_AA770EF7
| Version |
NID
|
| 0.931.010-3.360.011 |
not present
|
| 3.500.011-3.740.011 |
0xAA770EF7
|
Registers the function called by #SceSysrootForDriver_591BB490.
The function is registered from SceTty2uart only if DIP Switch 211 is set.
int SceSysrootForDriver_AA770EF7(void *func);
SceSysrootForDriver_591BB490
| Version |
NID
|
| 0.931.010-3.360.011 |
not present
|
| 3.500.011-3.740.011 |
0x591BB490
|
Calls the function registered by #SceSysrootForDriver_AA770EF7.
Gets tty2uart information into a 0x1000-sized buffer, similarly to #sceKernelGetTtyInfoForDriver. Returns some size, maybe size of the written tty2uart buffer.
Used only in SceCoredump.
// size: usually 0x1000
int SceSysrootForDriver_591BB490(int magic_or_size, void *pBuf, SceSize size);
SceSysrootForDriver_C5EAF5F7
| Version |
NID
|
| 0.990.000-3.740.011 |
0xC5EAF5F7
|
Registers the function called by #SceSysrootForDriver_47724459.
int SceSysrootForDriver_C5EAF5F7(void *func);
SceSysrootForDriver_47724459
| Version |
NID
|
| 0.990.000-3.740.011 |
0x47724459
|
Calls the function registered by #SceSysrootForDriver_C5EAF5F7.
SceSysrootForDriver_D4457D4F
| Version |
NID
|
| 0.931.010 |
not present
|
| 0.990.000-3.740.011 |
0xD4457D4F
|
Registers the function called by #SceSysrootForDriver_40F28DC6.
int SceSysrootForDriver_D4457D4F(void *func);
SceSysrootForDriver_40F28DC6
| Version |
NID
|
| 0.990-3.740.011 |
0x40F28DC6
|
Calls the function registered by #SceSysrootForDriver_D4457D4F.
sceKernelSysrootGetCompiledSdkVersionByPidForDriver
| Version |
NID
|
| 0.931.010-1.692.000 |
not present
|
| 1.800.071-3.740.011 |
0xCAE820B2
|
Temp name was sceKernelGetProcessHeapIDForDriver.
Calls a callback registered by #SceSysrootForKernel_D29BCA77.
Used in SceKernelModulemgr functions that load modules, for example SceKernelModulemgr#sceKernelStartModuleForPidForKernel.
int sceKernelSysrootGetCompiledSdkVersionByPidForDriver(SceUID pid, SceUInt32 *puiSdkVer);
SceSysrootForDriver_8747D415
| Version |
NID
|
| 0.990-3.60 |
0x8747D415
|
Used by SceDeci4pSDfMgr.
Registers the function called by #SceSysrootForDriver_B27B7530.
int SceSysrootForDriver_8747D415(void *func);
SceSysrootForDriver_B27B7530
| Version |
NID
|
| 0.990-3.60 |
0xB27B7530
|
Calls the function registered by #SceSysrootForDriver_8747D415.
sceKernelSysrootSetGetBuserrorDataFuncForDriver
| Version |
NID
|
| 0.990-3.60 |
0x82FC6405
|
This is a guessed name.
Registers the function called by #sceKernelSysrootGetBuserrorDataForDriver.
int sceKernelSysrootSetGetBuserrorDataFuncForDriver(void *func);
sceKernelSysrootGetBuserrorDataForDriver
| Version |
NID
|
| 0.990-3.60 |
0xCD4B84F7
|
This is a guessed name.
Calls the function registered by #sceKernelSysrootSetGetBuserrorDataFuncForDriver.
SceSysrootForDriver_FF2DD7AB
| Version |
NID
|
| 3.60 |
0xFF2DD7AB
|
Registers something.
typedef struct SceSysrootForDriver_FF2DD7AB_struct { // size is 0x1C on FW 3.60
SceSize size; // Size of this structure
char unk_4[0x18];
} SceSysrootForDriver_FF2DD7AB_struct;
int SceSysrootForDriver_FF2DD7AB(SceSysrootForDriver_FF2DD7AB_struct *pData);
SceSysrootForDriver_3AE319DA
| Version |
NID
|
| 3.60 |
0x3AE319DA
|
Used by SceSyscon.
Get something registered by #SceSysrootForDriver_FF2DD7AB.
int SceSysrootForDriver_3AE319DA(void);
sceKernelSysrootGetHardwareFlagsForDriver
| Version |
NID
|
| 3.60 |
0x46E72428
|
This is a guessed name. Temp name was sceSysrootIsAuCodecIcConexantForDriver.
Writes kbl_param->hardware_flags to buffer.
pFlags buffer size is 0x10 bytes.
int sceKernelSysrootGetHardwareFlagsForDriver(void *pFlags);
sceKernelSysrootGetHardwareInfoForDriver
| Version |
NID
|
| 3.60 |
0x930B1342
|
return kbl_param->hardware_info;
int sceKernelSysrootGetHardwareInfoForDriver(void);
sceKernelSysrootSetSDfCtlSetBootParameterFuncForDriver
| Version |
NID
|
| 3.60 |
0xE541959B
|
int sceKernelSysrootSetSDfCtlSetBootParameterFuncForDriver(void *func);
sceKernelSysrootClearSDfCtlSetBootParameterFuncForDriver
| Version |
NID
|
| 3.60 |
0x9421B223
|
int sceKernelSysrootClearSDfCtlSetBootParameterFuncForDriver(void);
sceKernelSysrootSDfCtlSetBootParameterForDriver
| Version |
NID
|
| 3.60 |
0x7AAC4EE7
|
// bootparam max size is 0x80 bytes
int sceKernelSysrootSDfCtlSetBootParameterForDriver(const char *bootparam);
sceKernelSysrootSetUtMgrGetTrilithiumBufferFuncForDriver
| Version |
NID
|
| 3.60 |
0x35875119
|
Registers the function called by #sceKernelSysrootUtMgrGetTrilithiumBufferForDriver.
int sceKernelSysrootSetUtMgrGetTrilithiumBufferFuncForDriver(void *func);
sceKernelSysrootUtMgrGetTrilithiumBufferForDriver
| Version |
NID
|
| 0.931.010-3.01 |
not present
|
| 3.180.011-3.740.011 |
0xD75D4F37
|
Used in SceSblAuthMgr#sceSblAuthMgrAuthHeaderForKernel to overwrite fSELF authinfo.
Returns 0 on success, 0x800f1a02 on error.
int sceKernelSysrootUtMgrGetTrilithiumBufferForDriver(SceUtokenDecrypted *buffer);
sceKernelSysrootSetSceSblPostSsMgrForDriver_A12C9950FuncForDriver
| Version |
NID
|
| 0.931.010-1.06 |
not present
|
| 1.500.151-3.740.011 |
0xA12C9950
|
Registers the function called by #sceKernelSysrootSceSblPostSsMgrForDriver_56D85EB0ForDriver.
The function is SceSblPostSsMgr#SceSblPostSsMgrForDriver_D8A2D465.
int sceKernelSysrootSetSceSblPostSsMgrForDriver_A12C9950FuncForDriver(void *func);
sceKernelSysrootSceSblPostSsMgrForDriver_56D85EB0ForDriver
| Version |
NID
|
| 3.60 |
0x56D85EB0
|
Used by SceSblACMgr.
Calls the function registered by #sceKernelSysrootSetSceSblPostSsMgrForDriver_56D85EB0FuncForDriver.
The function is SceSblPostSsMgr#SceSblPostSsMgrForDriver_D8A2D465.
sceKernelSysrootSetSblUtMgrHasUNK1FlagFuncForDriver
| Version |
NID
|
| 0.931.010-0.996 |
not present
|
| 1.000.071-3.740.011 |
0xE25D2FD5
|
Registers the functions called by #sceKernelSysrootSblUtMgrHasUNK1FlagForDriver.
int sceKernelSysrootSetSblUtMgrHasUNK1FlagFuncForDriver(void *func);
sceKernelSysrootSblUtMgrHasUNK1FlagForDriver
| Version |
NID
|
| 0.931.010-0.996 |
not present
|
| 1.000.071-3.740.011 |
0x26AA237C
|
Calls the function registered by #sceKernelSysrootSetSblUtMgrHasUNK1FlagFuncForDriver.
int sceKernelSysrootSblUtMgrHasUNK1FlagForDriver(void);
sceKernelSysrootSetSblUtMgrHasUNK2FlagFuncForDriver
| Version |
NID
|
| 3.60 |
0xE2E88E3E
|
Registers the function called by #sceKernelSysrootSblUtMgrHasUNK2FlagForDriver.
int sceKernelSysrootsceSetSblUtMgrHasUNK2FlagFuncForDriver(void *func);
sceKernelSysrootSblUtMgrHasUNK2FlagForDriver
| Version |
NID
|
| 3.60 |
0xE2515A08
|
Calls the function registered by #sceKernelSysrootSetSblUtMgrHasUNK2FlagFuncForDriver.
Used by SceSblACMgr#sceSblACMgrHasSystemDataFilePlayReadyFlagForDriver.
int sceKernelSysrootSblUtMgrHasUNK2FlagForDriver(void);
sceKernelSysrootSetUtMgrHasNpTestFlagFuncForDriver
| Version |
NID
|
| 0.931-3.18 |
not present
|
| 3.300.041-3.740.011 |
0xEE5D6CE9
|
int sceKernelSysrootSetUtMgrHasNpTestFlagFuncForDriver(void *func);
sceKernelSysrootUtMgrHasNpTestFlagForDriver
| Version |
NID
|
| 0.931-3.18 |
not present
|
| 3.300.041-3.740.011 |
0xA43599E9
|
int sceKernelSysrootUtMgrHasNpTestFlagForDriver(void);
SceSysrootForDriver_2D6B2A79
| Version |
NID
|
| 0.990-3.60 |
0x2D6B2A79
|
Registers a function related to kernel panic, called by #SceSysrootForDriver_CC7A0E63 or #SceSysrootForKernel_CC7A0E63.
SceSysrootForDriver_CC7A0E63
| Version |
NID
|
| 0.990-3.60 |
0xCC7A0E63
|
Calls a function related to kernel panic, registered by #SceSysrootForDriver_2D6B2A79 or #SceSysrootForKernel_2D6B2A79.
// type: 1: kernel_assertion_or_panic, 3: kernel_exception
// size: must be <= 0x1000
// pBuf: address of the buffer got using SceDebugForKernel_BEF921A2
int SceSysrootForDriver_CC7A0E63(int type, SceSize size, const char *pBuf);
sceKernelSysrootDisableAutoClockDownForDriver
| Version |
NID
|
| 0.931 |
not present
|
| 3.60 |
0xEE934615
|
Derived from SceVshBridge#vshKernelDisableAutoClockDown.
Atomically adds 0x10 to SceSysrootForDriver_4B8C305A.num_active_cores.
The correct return type may be void instead (currently, return value is the incremented num_active_cores).
int sceKernelSysrootDisableAutoClockDownForDriver(void);
sceKernelSysrootEnableAutoClockDownForDriver
| Version |
NID
|
| 0.931 |
not present
|
| 3.60 |
0xEEF091A7
|
Derived from SceVshBridge#vshKernelEnableAutoClockDown.
Atomically substracts 0x10 from SceSysrootForDriver_4B8C305A.num_active_cores.
The correct return type may be void instead (currently, return value is the decremented num_active_cores).
Used by SceCompat, ScePower, SceKernelDmacMgr, SceSblAuthMgr, SceSblSmschedProxy, SceSblSsSmComm.
int sceKernelSysrootEnableAutoClockDownForDriver(void);
SceSysrootForDriver_6050A467
| Version |
NID
|
| 3.60 |
0x6050A467
|
Debug related. Returns an error when called because there is no handler set for retail.
int SceSysrootForDriver_6050A467(SceUID pid);
SceSysrootForDriver_F4340469
| Version |
NID
|
| 3.60 |
0xF4340469
|
Coredump related. Called during process load. Something is same as in #SceSysrootForDriver_6050A467.
int SceSysrootForDriver_F4340469(int something, SceUID pid, ...);
sceKernelSysrootRegisterCoredumpTriggerForDriver
| Version |
NID
|
| 0.990-3.60 |
0xDD473B05
|
int sceKernelSysrootRegisterCoredumpTriggerForDriver(void *func);
sceKernelSysrootCoredumpTriggerForDriver
| Version |
NID
|
| 0.990-3.60 |
0xCD8CD242
|
Used by SceDeci4pDbgp.
int sceKernelSysrootCoredumpTriggerForDriver(int a1, int a2, int a3, SceCoredumpForDriver_A7D214A7_Opt *pOpt);
sceKernelSysrootRegisterCoredumpCancelForDriver
| Version |
NID
|
| 0.990-3.60 |
0x400B9793
|
int sceKernelSysrootRegisterCoredumpCancelForDriver(void *func);
sceKernelSysrootCoredumpCancelForDriver
| Version |
NID
|
| 0.990-3.60 |
0x80FBC69D
|
int sceKernelSysrootCoredumpCancelForDriver(int a1);
sceKernelSysrootSetProcessHandlerForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x0F07C3FC
|
Registers some handlers.
int sceKernelSysrootSetProcessHandlerForDriver(SceSysrootProcessHandler *pHandler);
sceKernelSysrootClearProcessHandlerForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x5A7FFDC1
|
void sceKernelSysrootClearProcessHandlerForDriver(void);
SceSysrootForDriver_421EFC96
| Version |
NID
|
| 0.931-1.692 |
not present
|
| 1.800.071-3.740.011 |
0x421EFC96
|
Calls SceSysrootProcessHandler's on_process_created.
Used only by SceAppMgr and called on process creation.
Hooked to make it return 0 (success) for example in:
int SceSysrootForDriver_421EFC96(int maybe_pid, int maybe_modid, int a3);
sceKernelSysrootSWBkptGetOriginalOpcodeForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x9CFF80F9
|
This is a guessed name.
int sceKernelSysrootSWBkptGetOriginalOpcodeForDriver(SceUID pid, void *address, SceUInt32 *opcode);
SceSysrootForDriver_571E5B79
| Version |
NID
|
| 0.990.000-3.740.011 |
0x571E5B79
|
Calls SceSysrootProcessHandler's unk_4.
SceSysrootForDriver_51F9C118
| Version |
NID
|
| 3.60-3.65 |
0x51F9C118
|
Calls SceSysrootProcessHandler's unk_18.
Used in SceProcessmgr#SceProcessmgrForKernel_8729DE79.
// a3: second argument of SceProcessmgrForKernel_8729DE79
int SceSysrootForDriver_51F9C118(SceUID pid, SceUID modid, int a3, void* maybe_process_info, SceUInt64 time);
SceSysrootForDriver_582616EC
| Version |
NID
|
| 3.60-3.65 |
0x582616EC
|
Calls SceSysrootProcessHandler's unk_24.
Used in SceProcessmgr#SceProcessmgrForKernel_8729DE79.
// a3: second argument of SceProcessmgrForKernel_8729DE79
int SceSysrootForDriver_582616EC(SceUID pid, SceUID modid, int a3);
sceKernelSysrootDbgpSuspendProcessAndWaitResumeForDriver
| Version |
NID
|
| 0.990-3.60 |
0x256B2394
|
sceKernelSysrootGetShellPidForDriver
| Version |
NID
|
| 0.990-3.60 |
0x05093E7B
|
SceUID sceKernelSysrootGetShellPidForDriver(void);
sceKernelSysrootAppMgrSpawnProcessForDriver
| Version |
NID
|
| 0.990-3.60 |
0x3ACACD22
|
sceKernelSysrootInformUpdateStartedForDriver
| Version |
NID
|
| 0.990-3.60 |
0x9A486846
|
int sceKernelSysrootInformUpdateStartedForDriver(int number1, int number2, const char *str, SceSize len);
sceKernelSysrootInformUpdateOngoingForDriver
| Version |
NID
|
| 0.990-3.60 |
0x9EC02A41
|
int sceKernelSysrootInformUpdateOngoingForDriver(int number1, int number2);
sceKernelSysrootInformUpdateFinishedForDriver
| Version |
NID
|
| 0.990-3.60 |
0x217B2871
|
int sceKernelSysrootInformUpdateFinishedForDriver(int number, const char *str, SceSize len);
sceKernelSysrootSetSwInfoIntForDriver
| Version |
NID
|
| 0.990-3.60 |
0x631141E2
|
int sceKernelSysrootSetSwInfoIntForDriver(char *str, SceSize len, SceUInt32 number);
sceKernelSysrootSetSwInfoStrForDriver
| Version |
NID
|
| 0.990-3.60 |
0x17DD213C
|
int sceKernelSysrootSetSwInfoStrForDriver(char *str1, SceSize len1, char *str2, SceSize len2);
sceKernelSysrootSetSwInfoBinForDriver
| Version |
NID
|
| 0.990-3.60 |
0x9E96D990
|
int sceKernelSysrootSetSwInfoBinForDriver(char *str1, SceSize size1, char *str2, SceSize size2);
sceKernelSysrootSetGetSystemSwVersionFuncForDriver
| Version |
NID
|
| 3.60 |
0x3276086B
|
Temp name was sceKernelSysrootSetSystemSwVersionForDriver.
Used by SceSblUpdateMgr.
void sceKernelSysrootSetGetSystemSwVersionFuncForDriver(void *func);
sceKernelSysrootGetSystemSwVersionForDriver
| Version |
NID
|
| 3.60-3.65 |
0x67AAB627
|
Returns System Software version as int from SceSysmem memory. For exemple: 0x0365000 on 3.65.
int sceKernelSysrootGetSystemSwVersionForDriver(void);
sceKernelSysrootIsSafeModeForDriver
| Version |
NID
|
| 0.990-3.60 |
0x834439A7
|
int sceKernelSysrootIsSafeModeForDriver(void);
sceKernelSysrootIsUpdateModeForDriver
| Version |
NID
|
| 3.60 |
0xB0E1FC67
|
int sceKernelSysrootIsUpdateModeForDriver(void);
sceKernelSysrootGetModelInfoForDriver
| Version |
NID
|
| 0.931 |
not present
|
| 3.60 |
0x4D98B15B
|
This is a guessed name, based on "sysroot->model_info".
Returns sysroot->model_info.
Used only in SceProcessmgr initializeBudget() on module start. According to model_info, ScePhyMemPartShell is allocated with different parameters.
SceUInt32 sceKernelSysrootGetModelInfoForDriver(void);
SceSysrootForDriver_ED688AEE
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0xED688AEE
|
Registers the callback called by #SceSysrootForDriver_F404026C.
SceSysrootForDriver_ED688AEE(void* cb);
SceSysrootForDriver_F404026C
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0xF404026C
|
Calls the callback registered by #SceSysrootForDriver_ED688AEE.
sceKernelSysrootCheckModelCapabilityForDriver
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0x8AA268D6
|
This is an official name. Name derived from #sceKernelSysrootCheckModelCapability.
Each model capability corresponds to a bit in a Sysroot field derived from Syscon Hardware Info and Hardware Info 2.
Model capabilities:
- 0: unknown
- 1: Multi-controllers support
- 2: unknown
- 4: unknown
- 5: unknown
- 6: unknown
- 7: unknown, ?OLED display?
- 8: unknown, ?LCD display?
- 9: unknown, set on almost all models
- 10: unknown
- 11: SD card support
- 12: unknown
- 13: unknown
| Case |
Model |
Model capabilities (raw) |
Model capabilities (bits set)
|
| ErnieHwInfo & 0xFF0000 <= 0x410000 / Unknown Model |
0x10100 |
0x604 |
2, 9, 10
|
| ErnieHwInfo & 0xFF0000 == 0x510000 |
0x20100 |
0x1232 |
1, 4, 5, 9, 12
|
| ErnieHwInfo & 0xFF0000 == 0x600000 |
0x10150 |
0x604 |
2, 9, 10
|
| ErnieHwInfo & 0xFF0000 == 0x700000 |
0x20100 |
0x1232 |
1, 4, 5, 9, 12
|
| ErnieHwInfo & 0xFF0000 == 0x720000 |
0x20110 |
0x232 |
1, 4, 5, 9
|
| ErnieHwInfo & 0xFF0000 == 0x800000 |
0x10200 |
0x604 |
2, 9, 10
|
| ErnieHwInfo & 0xFF0000 == 0x820000 |
0x10220 |
0x604 |
2, 9, 10
|
| PDEL-10xx in PS TV Emulation mode |
0x20101 |
0x252 |
1, 4, 6, 9
|
| (ErnieHwInfo2 & 0x9 == 0) && PSTV or PSTVEmu |
- |
0x80 |
7
|
| ErnieHwInfo2 & 0x9 != 0 |
- |
0x100 |
8
|
| (Model == 0x20110) && (ErnieHwInfo2 & 0x100 != 0) |
- |
0x1000 |
12
|
| (Model == 0x20110) && (ErnieHwInfo2 & 0x100 == 0) |
- |
& ~0x1000 |
UNSET 12
|
| ErnieHwInfo2 & 0x200 != 0 |
- |
0x2000 |
13
|
Used in SceCtrl, SceSdstor, SceUsbEtherRtl and SceVshBridge.
int sceKernelSysrootCheckModelCapabilityForDriver(int capability);
sceKernelSysrootGetSyscallFrameForDriver
| Version |
NID
|
| 3.60-3.65 |
0x44EA3197
|
SceSyscallFrame *sceKernelSysrootGetSyscallFrameForDriver(void);
sceKernelSysrootRegisterInitCallbackForDriver
| Version |
NID
|
| 0.990-3.60 |
0x778D0966
|
// idx: 0-8
// idx 8: func = ScePower/SceMsif functions
int sceKernelSysrootRegisterInitCallbackForDriver(const void *func, SceUInt32 idx, SceUInt32 arg, SceUInt32 *ret);
sceKernelSysrootInvokeInitCallbackForDriver
| Version |
NID
|
| 0.990-3.60 |
0x93CD44CD
|
// idx: 0-8, 5: disable NSKBL, more...?
int sceKernelSysrootInvokeInitCallbackForDriver(int idx);
sceKernelSysrootInvokeInitCallbackExForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 0.990-3.60 |
0x7C2C10E2
|
This is a guessed name.
// idx: 0-8, 5: disable NSKBL, more...?
// unk: argument passed to the init callback
int sceKernelSysrootInvokeInitCallbackExForDriver(int idx, int unk);
SceKernelUtilsForDriver
sceAesDecrypt1ForDriver
| Version |
NID
|
| 0.990-3.60 |
0xD8678061
|
Perform normal AES decrypt.
int sceAesDecrypt1ForDriver(void *ctx, const void *src, void *dst);
sceAesDecrypt2ForDriver
| Version |
NID
|
| 3.60 |
0xE39CD272
|
Perform AES decrypt using encryption round key.
int sceAesDecrypt2ForDriver(void *ctx, const void *src, void *dst);
sceAesEncrypt1ForDriver
| Version |
NID
|
| 0.990-3.60 |
0xC2A61770
|
Perform AES encrypt. There are two functions that are the same on 1.69.
int sceAesEncrypt1ForDriver(void *ctx, const void *src, void *dst);
sceAesEncrypt2ForDriver
| Version |
NID
|
| 1.69-3.60 |
0x302947B6
|
Perform AES encrypt. Similar to sceAesEncrypt1ForDriver.
int sceAesEncrypt2ForDriver(void *ctx, const void *src, void *dst);
sceAesInit1ForDriver
| Version |
NID
|
| 1.69-3.60 |
0xF12B6451
|
This sets up the AES engine. ctx is a 0x3C0 byte buffer (on FW 1.69). blocksize and keysize values are in bits. 128/196/256 are supported values.
last arg to subroutine is 0
int sceAesInit1ForDriver(void *ctx, int blocksize, int keysize, const void *key);
sceAesInit2ForDriver
| Version |
NID
|
| 3.60 |
0xEDA97D6D
|
last arg to subroutine is 1
int sceAesInit2ForDriver(void *ctx, int blocksize, int keysize, const void *key);
sceAesInit3ForDriver
| Version |
NID
|
| 3.60 |
0x72408E29
|
last arg to subroutine is 2
int sceAesInit3ForDriver(void *ctx, int blocksize, int keysize, const void *key);
SceKernelUtilsForDriver_C76A7685
| Version |
NID
|
| 3.60 |
0xC76A7685
|
Looks like it relates to AES InvMixColumns.
SceKernelUtilsForDriver_60ED6EA9
| Version |
NID
|
| 3.60 |
0x60ED6EA9
|
Equivalent to AES getSBox32Value
sceDeflateDecompressForDriver
| Version |
NID
|
| 3.60 |
0x8AF1FAD4
|
sceDeflateDecompressPartialForDriver
| Version |
NID
|
| 3.60 |
0x3D74CCDF
|
sceGzipDecompressForDriver
| Version |
NID
|
| 3.60 |
0x367EE3DF
|
| Version |
NID
|
| 3.60 |
0xCD3AE08F
|
sceGzipGetCompressedDataForDriver
| Version |
NID
|
| 3.60 |
0x63619124
|
sceGzipGetInfoForDriver
| Version |
NID
|
| 3.60 |
0xFFC6A10F
|
sceGzipGetNameForDriver
| Version |
NID
|
| 3.60 |
0xF901FD3E
|
sceGzipIsValidForDriver
| Version |
NID
|
| 3.60 |
0xD8FAEFD4
|
sceHmacSha1DigestForDriver
| Version |
NID
|
| 3.60 |
0x29A28957
|
int sceHmacSha1DigestForDriver(const void *key, int key_len, const void *data, int data_len, void *digest);
sceHmacSha224DigestForDriver
| Version |
NID
|
| 3.60 |
0x7F2A7B99
|
int sceHmacSha224DigestForDriver(const void *key, int key_len, const void *data, int data_len, void *digest);
sceHmacSha256DigestForDriver
| Version |
NID
|
| 3.60 |
0x83EFA1CC
|
int sceHmacSha256DigestForDriver(const void *key, int key_len, const void *data, int data_len, void *digest);
sceMt19937GlobalInitForDriver
| Version |
NID
|
| 3.60 |
0xD428CC2A
|
cp_timestamp_2 is gotten from SceKblParam.
int sceMt19937GlobalInitForDriver(uint32_t cp_timestamp_2);
sceMt19937GlobalUIntInRangeForDriver
| Version |
NID
|
| 0.990-3.60 |
0x875B2A1C
|
Temp name was sceMt19937GlobalUninitForDriver.
// Both the address and size must be aligned on four bytes.
int sceMt19937GlobalUIntInRangeForDriver(void *pBase, SceSize length);
sceMt19937InitForDriver
| Version |
NID
|
| 3.60 |
0x4C9A5730
|
sceMt19937UIntForDriver
| Version |
NID
|
| 3.60 |
0x92AEDFBC
|
sceSfmt19937FillArray32ForDriver
| Version |
NID
|
| 3.60 |
0x2B30548B
|
sceSfmt19937FillArray64ForDriver
| Version |
NID
|
| 3.60 |
0x49B41540
|
sceSfmt19937GenRand32ForDriver
| Version |
NID
|
| 3.60 |
0xBBE4701A
|
sceSfmt19937GenRand64ForDriver
| Version |
NID
|
| 3.60 |
0x45DEAAD6
|
sceSfmt19937InitByArrayForDriver
| Version |
NID
|
| 3.60 |
0x33AE1203
|
sceSfmt19937InitGenRandForDriver
| Version |
NID
|
| 3.60 |
0xAB48C3CA
|
sceSha1BlockInitForDriver
| Version |
NID
|
| 3.60 |
0xE4390FFA
|
int sceSha1BlockInitForDriver(void* ctx);
sceSha1BlockResultForDriver
| Version |
NID
|
| 3.60 |
0x48F24106
|
int sceSha1BlockResultForDriver(void* ctx, void *digest);
sceSha1BlockUpdateForDriver
| Version |
NID
|
| 3.60 |
0x478A6F3C
|
int sceSha1BlockUpdateForDriver(void* ctx, const void *data, int size);
sceSha1DigestForDriver
| Version |
NID
|
| 3.60 |
0x87DC7F2F
|
int sceSha1DigestForDriver(const void *data, int size, void *digest);
sceSha224BlockInitForDriver
| Version |
NID
|
| 3.60 |
0xC762EA6D
|
int sceSha224BlockInitForDriver(void* ctx);
sceSha224BlockResultForDriver
| Version |
NID
|
| 3.60 |
0xFBF2A442
|
int sceSha224BlockResultForDriver(void* ctx, void *digest);
sceSha224BlockUpdateForDriver
| Version |
NID
|
| 3.60 |
0x7556E611
|
int sceSha224BlockUpdateForDriver(void* ctx, const void *data, int size);
sceSha224DigestForDriver
| Version |
NID
|
| 3.60 |
0x9EA9D4DC
|
int sceSha224DigestForDriver(const void *data, int size, void *digest);
sceSha256BlockInitForDriver
| Version |
NID
|
| 3.60 |
0xD909FA2C
|
int sceSha256BlockInitForDriver(void* ctx);
sceSha256BlockResultForDriver
| Version |
NID
|
| 3.60 |
0x4899CD4B
|
int sceSha256BlockResultForDriver(void* ctx, void *digest);
sceSha256BlockUpdateForDriver
| Version |
NID
|
| 3.60 |
0x236A9097
|
int sceSha256BlockUpdateForDriver(void* ctx, const void *data, int size);
sceSha256DigestForDriver
| Version |
NID
|
| 0.931-3.60 |
0xA773A6A8
|
int sceSha256DigestForDriver(const void *data, SceSize size, void *digest);
sceZlibDecompressForDriver
| Version |
NID
|
| 3.60 |
0x900148DB
|
sceZlibGetCompressedDataForDriver
| Version |
NID
|
| 3.60 |
0x01EB6C45
|
sceZlibGetInfoForDriver
| Version |
NID
|
| 3.60 |
0x5B9BCD75
|
sceXorshift128ForDriver
| Version |
NID
|
| 0.990 |
not present
|
| 3.60 |
0x335AF34D
|
Similar implementation as xorshift128.
int sceXorshift128ForDriver(SceUInt32 *state);
SceKernelUtilsForDriver_B55C69B7
| Version |
NID
|
| 3.60 |
0xB55C69B7
|
If buffer is full of zeroes, then each of the four dwords of buffer are set to 1. Always success and always return 0.
Used in SceProcessmgr.
int SceKernelUtilsForDriver_B55C69B7(SceUInt32 *buffer);
SceZlibForDriver
This library was moved to SceSblPostSsMgr#SceZlibForDriver on FW 1.800.071.
zlib compression library.
zlibVersion
| Version |
NID
|
| 3.200.010 |
0x517BC5F7
|
const char *zlibVersion(void);
inflateInit
| Version |
NID
|
| 3.200.010 |
0x81D0667B
|
This function have alias.
int inflateInit(SceZlibStream *strm, const char *version, int stream_size);
SceZlibForDriver_723495A5
| Version |
NID
|
| 0.940-3.60 |
0x723495A5
|
int SceZlibForDriver_723495A5(SceZlibStream *strm, const char *version, int stream_size);
inflateInit2_
| Version |
NID
|
| 3.200.010 |
0x0BDDF66A
|
This function have alias.
int inflateInit2_(SceZlibStream *strm, int windowBits, const char *version, int stream_size);
SceZlibForDriver_21A03034
| Version |
NID
|
| 3.200.010 |
0x21A03034
|
int SceZlibForDriver_21A03034(SceZlibStream *strm, int windowBits, const char *version, int stream_size);
inflateInit_2
| Version |
NID
|
| 3.200.010 |
0x44DA19D2
|
This function have alias.
int inflateInit_2(SceZlibStream *strm, const char *version, int stream_size);
SceZlibForDriver_B03E109B
| Version |
NID
|
| 3.200.010 |
0xB03E109B
|
int SceZlibForDriver_B03E109B(SceZlibStream *strm, const char *version, int stream_size);
inflateInit2_2
| Version |
NID
|
| 3.200.010 |
0xA1E7E8B3
|
This function have alias.
int inflateInit2_2(SceZlibStream *strm, int a2, const char *version, int stream_size);
SceZlibForDriver_AC2F8437
| Version |
NID
|
| 3.200.010 |
0xAC2F8437
|
int SceZlibForDriver_AC2F8437(SceZlibStream *strm, int a2, const char *version, int stream_size);
inflate
| Version |
NID
|
| 3.200.010 |
0xD4A85178
|
This function have alias.
int inflate(SceZlibStream *strm, int flush);
SceZlibForDriver_E4F34A68
| Version |
NID
|
| 1.60-3.60 |
0xE4F34A68
|
inflateSetDictionary
| Version |
NID
|
| 1.60-3.60 |
0x7B16DBD6
|
This function have alias.
int inflateSetDictionary(SceZlibStream *strm, const void *dictionary, int dictLength);
SceZlibForDriver_00561385
| Version |
NID
|
| 3.200.010 |
0x00561385
|
int SceZlibForDriver_00561385(SceZlibStream *strm, const void *dictionary, int dictLength);
inflateEnd
| Version |
NID
|
| 3.200.010 |
0x9030BAE4
|
This function have alias.
int inflateEnd(SceZlibStream *strm);
SceZlibForDriver_134E91EA
| Version |
NID
|
| 3.200.010 |
0x134E91EA
|
int SceZlibForDriver_134E91EA(SceZlibStream *strm);
inflateCopy
| Version |
NID
|
| 3.200.010 |
0x4C27A382
|
This function have alias.
int inflateCopy(SceZlibStream *dst, SceZlibStream *src);
SceZlibForDriver_89B30588
| Version |
NID
|
| 3.200.010 |
0x89B30588
|
int SceZlibForDriver_89B30588(SceZlibStream *dst, SceZlibStream *src);
inflateSyncPoint
| Version |
NID
|
| 3.200.010 |
0x4CB63BCD
|
This function have alias.
int inflateSyncPoint(SceZlibStream *strm);
SceZlibForDriver_834CC4A2
| Version |
NID
|
| 3.200.010 |
0x834CC4A2
|
int SceZlibForDriver_834CC4A2(SceZlibStream *strm);
deflate
| Version |
NID
|
| 1.60-3.60 |
0xE859D60F
|
This function have alias.
int deflate(SceZlibStream *strm, int flush);
SceZlibForDriver_5B718E55
| Version |
NID
|
| 3.200.010-3.60 |
0x5B718E55
|
Used by SceCoredump.
int SceZlibForDriver_5B718E55(SceZlibStream *strm, int flush);
deflateReset
| Version |
NID
|
| 1.60-3.60 |
0x68CFEA45
|
This function have alias.
This function could be deflateResetKeep.
int deflateReset(SceZlibStream *strm);
SceZlibForDriver_211D25F5
| Version |
NID
|
| 3.200.010 |
0x211D25F5
|
int SceZlibForDriver_211D25F5(SceZlibStream *strm);
crc32
| Version |
NID
|
| 1.60-3.60 |
0xE0CE06C0
|
This function have alias.
unsigned long crc32(unsigned long crc, const unsigned char *buf, z_size_t len);
SceZlibForDriver_3370B9AD
| Version |
NID
|
| 3.200.010 |
0x3370B9AD
|
unsigned long SceZlibForDriver_3370B9AD(unsigned long crc, const unsigned char *buf, z_size_t len);
adler32
| Version |
NID
|
| 1.60-3.60 |
0x98619620
|
This function have alias.
SceZlibForDriver_7E823337
| Version |
NID
|
| 3.200.010 |
0x7E823337
|
deflateInit2_2
| Version |
NID
|
| 3.60 |
0x20A122F8
|
May be an initialization function.
Used by SceCoredump.
This function have alias.
int deflateInit2_2(SceZlibStream *strm, int level, int method, int windowBits, int memLevel, int strategy, const char *version, int stream_size);
SceZlibForDriver_BE5CE88A
| Version |
NID
|
| 3.200.010 |
0xBE5CE88A
|
int SceZlibForDriver_BE5CE88A(SceZlibStream *strm, int level, int method, int windowBits, int memLevel, int strategy, const char *version, int stream_size);
deflateEnd
| Version |
NID
|
| 3.60 |
0x5492B3F2
|
Used by SceCoredump.
This function have alias.
int deflateEnd(SceZlibStream *strm);
SceZlibForDriver_A5D70E95
| Version |
NID
|
| 3.200.010 |
0xA5D70E95
|
int SceZlibForDriver_A5D70E95(SceZlibStream *strm);
deflateInit_
| Version |
NID
|
| 3.60 |
0x25F28DA7
|
This function have alias.
int deflateInit_(SceZlibStream *strm, int level, const char *version, int stream_size);
SceZlibForDriver_520CAA7F
| Version |
NID
|
| 3.200.010 |
0x520CAA7F
|
int SceZlibForDriver_520CAA7F(SceZlibStream *strm, int level, const char *version, int stream_size);
SceZlibForDriver_05F712FE
| Version |
NID
|
| 3.200.010 |
0x05F712FE
|
This function have alias.
SceZlibForDriver_67A085C4
| Version |
NID
|
| 3.200.010 |
0x67A085C4
|
SceZlibForDriver_0FA805A3
| Version |
NID
|
| 3.200.010 |
0x0FA805A3
|
This function have alias.
int SceZlibForDriver_0FA805A3(SceZlibStream *strm, int a2, SceUInt16 a3);
SceZlibForDriver_1C344E27
| Version |
NID
|
| 3.200.010 |
0x1C344E27
|
int SceZlibForDriver_1C344E27(SceZlibStream *strm, int a2, SceUInt16 a3);
deflateCopy
| Version |
NID
|
| 3.200.010 |
0x1E135CC1
|
This function have alias.
int deflateCopy(SceZlibStream *dst, SceZlibStream *src);
SceZlibForDriver_3252D28C
| Version |
NID
|
| 3.200.010 |
0x3252D28C
|
int SceZlibForDriver_3252D28C(SceZlibStream *dst, SceZlibStream *src);
SceZlibForDriver_35E0108C
| Version |
NID
|
| 3.200.010 |
0x35E0108C
|
This function have alias.
int SceZlibForDriver_35E0108C(SceZlibStream *strm);
SceZlibForDriver_E2DF5A8B
| Version |
NID
|
| 3.200.010 |
0xE2DF5A8B
|
int SceZlibForDriver_E2DF5A8B(SceZlibStream *strm);
zError
| Version |
NID
|
| 3.200.010 |
0x3B4466F4
|
This function have alias.
const char *zError(int err);
SceZlibForDriver_3F33F55F
| Version |
NID
|
| 3.200.010 |
0x3F33F55F
|
const char *SceZlibForDriver_3F33F55F(int err);
inflateReset
| Version |
NID
|
| 3.200.010 |
0x408311E8
|
This function have alias.
int inflateReset(SceZlibStream *strm);
SceZlibForDriver_EEC6D267
| Version |
NID
|
| 3.200.010 |
0xEEC6D267
|
int SceZlibForDriver_EEC6D267(SceZlibStream *strm);
SceZlibForDriver_4EE6C080
| Version |
NID
|
| 3.200.010 |
0x4EE6C080
|
This function have alias.
SceZlibForDriver_93168F72
| Version |
NID
|
| 3.200.010 |
0x93168F72
|
SceZlibForDriver_5377643A
| Version |
NID
|
| 3.200.010 |
0x5377643A
|
This function have alias.
SceZlibForDriver_7C40CC39
| Version |
NID
|
| 3.200.010 |
0x7C40CC39
|
deflateInit_2
| Version |
NID
|
| 3.200.010 |
0x5A0078D6
|
This function have alias.
int deflateInit_2(SceZlibStream *strm, int level, const char *version, int stream_size);
SceZlibForDriver_AD23EEBB
| Version |
NID
|
| 3.200.010 |
0xAD23EEBB
|
int SceZlibForDriver_AD23EEBB(SceZlibStream *strm, int level, const char *version, int stream_size);
SceZlibForDriver_6ED5B677
| Version |
NID
|
| 3.200.010 |
0x6ED5B677
|
This function have alias.
SceZlibForDriver_7993ADAB
| Version |
NID
|
| 3.200.010 |
0x7993ADAB
|
SceZlibForDriver_7048F14C
| Version |
NID
|
| 3.200.010 |
0x7048F14C
|
This function have alias.
SceZlibForDriver_E323828B
| Version |
NID
|
| 3.200.010 |
0xE323828B
|
SceZlibForDriver_82167CD9
| Version |
NID
|
| 3.200.010 |
0x82167CD9
|
This function have alias.
SceZlibForDriver_E94663DD
| Version |
NID
|
| 3.200.010 |
0xE94663DD
|
SceZlibForDriver_86FF6C8B
| Version |
NID
|
| 3.200.010 |
0x86FF6C8B
|
This function have alias.
SceZlibForDriver_904AA7AE
| Version |
NID
|
| 3.200.010 |
0x904AA7AE
|
SceZlibForDriver_89A13883
| Version |
NID
|
| 3.200.010 |
0x89A13883
|
This function have alias.
SceZlibForDriver_D9BDC778
| Version |
NID
|
| 3.200.010 |
0xD9BDC778
|
SceZlibForDriver_938F34FA
| Version |
NID
|
| 3.200.010 |
0x938F34FA
|
This function have alias.
SceZlibForDriver_BC022D38
| Version |
NID
|
| 3.200.010 |
0xBC022D38
|
deflateInit2_
| Version |
NID
|
| 3.200.010 |
0xE6EB524C
|
This function have alias.
int deflateInit2_(SceZlibStream *strm, int level, int method, int windowBits, int memLevel, int strategy, const char *version, int stream_size);
SceZlibForDriver_F2D8FC1A
| Version |
NID
|
| 3.200.010 |
0xF2D8FC1A
|
int SceZlibForDriver_F2D8FC1A(SceZlibStream *strm, int level, int method, int windowBits, int memLevel, int strategy, const char *version, int stream_size);
SceKernelSuspendForDriver
Used to register handlers for handling suspend/resume related events.
sceKernelLockSuspendForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x4DF40893
|
This is a guessed name.
Called in SceProcessmgr#sceKernelStartProcessForKernel and SceProcessmgr#sceKernelStartProcessExtForKernel just before starting a process.
Called just before NVS write.
int sceKernelLockSuspendForDriver(SceUInt32 a1);
sceKernelUnlockSuspendForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x2BB92967
|
This is a guessed name.
Called in SceProcessmgr#sceKernelStartProcessForKernel and SceProcessmgr#sceKernelStartProcessExtForKernel just after starting a process.
Called just after NVS write.
int sceKernelUnlockSuspendForDriver(SceUInt32 a1);
sceKernelLockSuspendProcForDriver
| Version |
NID
|
| 0.931-3.740.011 |
0x254525F8
|
This is a guessed name.
Temp name was sceKernelPowerLockForDriver.
Used in SceProcessmgr#sceKernelPowerLock.
int sceKernelPowerLockForDriver(SceUInt32 a1);
sceKernelUnlockSuspendProcForDriver
| Version |
NID
|
| 0.931-3.740.011 |
0x230495ED
|
This is a guessed name.
Temp name was sceKernelPowerUnlockForDriver.
Used in SceProcessmgr#sceKernelPowerUnlock.
int sceKernelPowerUnlockForDriver(SceUInt32 a1);
SceKernelSuspendForDriver_FE2118BD
| Version |
NID
|
| 0.990.000-3.740.011 |
0xFE2118BD
|
sceKernelPowerSetIdleCallbackForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0xE677B343
|
This is guessed name.
SceKernelSuspendForDriver_B4B13615
| Version |
NID
|
| 0.990.000-3.740.011 |
0xB4B13615
|
SceKernelSuspendForDriver_AEA9440D
| Version |
NID
|
| 0.990.000-3.740.011 |
0xAEA9440D
|
SceKernelSuspendForDriver_81D9E41C
| Version |
NID
|
| 0.990.000-3.740.011 |
0x81D9E41C
|
SceKernelSuspendForDriver_6A503956
| Version |
NID
|
| 0.990.000-3.740.011 |
0x6A503956
|
SceKernelSuspendForDriver_250ACD90
| Version |
NID
|
| 0.990.000-3.740.011 |
0x250ACD90
|
int SceKernelSuspendForDriver_250ACD90(const SceKernelSuspendPowerCallback *pPowerCallback);
SceKernelSuspendForDriver_0A6CA124
| Version |
NID
|
| 0.990.000-3.740.011 |
0x0A6CA124
|
SceKernelSuspendForDriver_0106C0F0
| Version |
NID
|
| 0.990.000-3.740.011 |
0x0106C0F0
|
sceKernelRegisterSysEventHandlerForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0x04C05D10
|
Temp name was sceKernelSuspendRegisterCallbackForDriver.
Registers a function for handling suspend/resume. resume is 0 if we are currently suspending and 1 if we are currently resuming. opt is passed from the registration. Registration adds an entry to a linked list and returns the block id for the new entry.
Returns the suspend_handler_id.
typedef int (* SceKernelSysEventHandler)(int resume, int event, void *param, void *argp);
SceUID sceKernelRegisterSysEventHandlerForDriver(const char *name, SceKernelSysEventHandler handler, void *argp);
SceKernelSuspendForDriver_CE7A2207
| Version |
NID
|
| 0.990.000-3.740.011 |
0xCE7A2207
|
Registers a handler for a suspend event.
// idx: ex: 0x15
// args: can be 0
SceUID SceKernelSuspendForDriver_CE7A2207(SceUInt idx, void *handler, void *args);
SceKernelSuspendForDriver_105C5752
| Version |
NID
|
| 0.990.000-3.740.011 |
0x105C5752
|
Registers a handler for a resume event.
// idx: ex: 0x15
// args: can be 0
SceUID SceKernelSuspendForDriver_105C5752(SceUInt idx, void *handler, void *args);
SceKernelSuspendForDriver_D4958E6F
| Version |
NID
|
| 0.990.000-3.740.011 |
0xD4958E6F
|
Dispatch handler registered by #SceKernelSuspendForDriver_CE7A2207.
SceUID SceKernelSuspendForDriver_D4958E6F(void *args);
sceKernelUnregisterSysEventHandlerForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0xDD61D621
|
Call with the id returned from suspend_register_handler to remove the entry from the linked list and free the memory.
int sceKernelUnregisterSysEventHandlerForDriver(SceUID id);
sceKernelSysEventDispatchForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0xD4622EA8
|
This function goes through the linked list and calls each handler. If ppFailed is set, then the first handler that returns a negative value stops the call chain and returns the block id of the handler that broke the chain. Otherwise, this function invokes each handler and returns 0.
typedef struct _SceKernelSysEventDispatchSuspendParam {
SceSize size;
SceUInt32 unk_0x04;
SceUInt32 unk_0x08;
SceUInt32 unk_0x0C;
void *pSuspendContextBuffer;
SceUInt32 unk_0x14;
} SceKernelSysEventDispatchSuspendParam;
typedef struct _SceKernelSysEventDispatchResumeParam {
SceSize size;
SceUInt32 unk_0x04;
} SceKernelSysEventDispatchResumeParam;
int sceKernelSysEventDispatchForDriver(SceUInt32 resume, SceUInt32 eventid, void *param, void **ppFailed);
sceKernelPowerTickForDriver
| Version |
NID
|
| 0.990.000-3.740.011 |
0xE0489831
|
Cancel specified idle timers to prevent entering in power save processing.
Returns 0 on success.
typedef enum SceKernelPowerTickType {
/** Cancel all timers */
SCE_KERNEL_POWER_TICK_DEFAULT = 0,
/** Cancel automatic suspension timer */
SCE_KERNEL_POWER_TICK_DISABLE_AUTO_SUSPEND = 1,
/** Cancel OLED-off timer */
SCE_KERNEL_POWER_TICK_DISABLE_OLED_OFF = 4,
/** Cancel OLED dimming timer */
SCE_KERNEL_POWER_TICK_DISABLE_OLED_DIMMING = 6
} SceKernelPowerTickType;
int sceKernelPowerTickForDriver(int type);
SceKernelSuspendForDriver_1FA2F8F1
| Version |
NID
|
| 1.000.071-3.740.011 |
0x1FA2F8F1
|
Calls a power handler.
int SceKernelSuspendForDriver_1FA2F8F1(int a1, int a2);
SceKernelSuspendForDriver_F2B07167
| Version |
NID
|
| 2.100.081-3.740.011 |
0xF2B07167
|
Registers a global variable used by #sceKernelPowerTickForDriver.
int SceKernelSuspendForDriver_F2B07167(int a1);
SceKernelSuspendForDriver_B5C58EE8
| Version |
NID
|
| 2.100.081-3.740.011 |
0xB5C58EE8
|
Registers a global variable used by #sceKernelSysEventDispatchForDriver.
int SceKernelSuspendForDriver_B5C58EE8(int a1);
SceKernelSuspendForDriver_D6124071
| Version |
NID
|
| 2.100.081-3.740.011 |
0xD6124071
|
Registers a global variable used by #sceKernelSysEventDispatchForDriver.
int SceKernelSuspendForDriver_D6124071(int a1);
SceKernelSuspendForDriver_0DE3CC02
| Version |
NID
|
| 2.100.081-3.740.011 |
0x0DE3CC02
|
Registers a global variable used by #SceKernelSuspendForDriver_2BB92967.
int SceKernelSuspendForDriver_0DE3CC02(int a1);
SceKernelSuspendForDriver_4E5A3A23
| Version |
NID
|
| 2.100.081-3.740.011 |
0x4E5A3A23
|
Registers a global variable used by #SceKernelSuspendForDriver_4DF40893.
int SceKernelSuspendForDriver_4E5A3A23(int a1);
SceKernelSuspendForDriver_C00826AC
| Version |
NID
|
| 2.100.081-3.740.011 |
0xC00826AC
|
Registers a global variable used by #SceKernelSuspendForDriver_4DF40893.
int SceKernelSuspendForDriver_C00826AC(int a1);
SceKernelSuspendForDriver_8B3F02B8
| Version |
NID
|
| 2.100.081-3.740.011 |
0x8B3F02B8
|
Registers a global variable used by #SceKernelSuspendForDriver_1FA2F8F1.
int SceKernelSuspendForDriver_8B3F02B8(int a1);
SceQafMgrForDriver
Provides many device permission checks including running app privilege checks, debugging enabled checks, and so on.
SceQafMgrForDriver_41E04800
| Version |
NID
|
| 0.931 |
0x4F20A014
|
| 3.60 |
not present
|
SceQafMgrForDriver_082A4FC2
| Version |
NID
|
| 0.931-3.60 |
0x082A4FC2
|
Temp name was sceSblQafMgrIsAllowHost0AccessForDriver. A potential name could be sceSblQafMgrIsAllowRemoteLoadForDriver.
Used by sceSblFwLoaderLockForDriver, SceKernelModulemgr, SceSysStateMgr and SceSblPostSsMgr.
Used by sceSblSpsfoMgrOpenForDriver.
When this flag is set, it allows for example to load some files from host0:, for example SPSFO and psp2config.skprx.
// (*(uint8_t *)(qaf + 0xE) & 1)
int SceQafMgrForDriver_082A4FC2(void);
sceSblQafMgrIsAllowGameDebugForDriver
| Version |
NID
|
| 0.931-3.60 |
0x694D1096
|
This is a guessed name.
Only used by SceSblACMgr.
Might be something like sceSblQafMgrIsAllowUserAppDebug.
// (*(uint8_t *)(qaf + 0xB) & 4)
int sceSblQafMgrIsAllowGameDebugForDriver(void);
SceQafMgrForDriver_0E588747
| Version |
NID
|
| 0.931-3.60 |
0x0E588747
|
Only used by SceRegistryMgr.
Returns true if the PSVita is an "Internal system".
// (*(uint8_t *)(qaf + 0xF) & 1)
int SceQafMgrForDriver_0E588747(void);
SceSblQafMgrForDriver_4BC1883F
| Version |
NID
|
| 0.931-3.60 |
0x4BC1883F
|
Like a sceSblQafMgrIsAllowPSPEmuDevelopmentForDriver.
// (*(uint8_t *)(qaf + 0x6) & 2)
int SceSblQafMgrForDriver_4BC1883F(void);
sceSblQafMgrIsAllowSystemAppDebugForDriver
| Version |
NID
|
| 0.931-3.60 |
0xCAD47130
|
Used by SceDeci4pDtracep and SceSblACMgr.
If it returns false, syscalls debug trace printf is disabled.
// (*(uint8_t *)(qaf + 0xD) & 2)
int sceSblQafMgrIsAllowSystemAppDebugForDriver(void);
sceSblQafMgrIsAllowKernelDebugForDriver
| Version |
NID
|
| 0.931-3.60 |
0x382C71E8
|
Used by SceKernelModulemgr, SceExcpmgr, SceCrashDump, SceHdmi, SceKernelBlueScreenOfDeath.
// (*(uint8_t *)(qaf + 0xD) & 1)
int sceSblQafMgrIsAllowKernelDebugForDriver(void);
sceSblQafMgrIsAllowQAUpdateForDriver
| Version |
NID
|
| 0.931-3.60 |
0x3CB55F98
|
Only used by SceSblUpdateMgr.
// (*(uint8_t *)(qaf + 0xF) & 1)
int sceSblQafMgrIsAllowQAUpdateForDriver(void);
sceSblQafMgrIsAllowForceUpdateForDriver
| Version |
NID
|
| 0.931-3.60 |
0x8C423C18
|
Only used by SceSblUpdateMgr.
// (*(uint8_t *)(qaf + 0xF) & 2)
int sceSblQafMgrIsAllowForceUpdateForDriver(void);
SceQafMgrForDriver_52B4E164
| Version |
NID
|
| 0.931-3.60 |
0x52B4E164
|
Only used by SceWlanBt and SceEnumWakeUp.
// (*(uint8_t *)(qaf + 0xD) & 1)
int SceQafMgrForDriver_52B4E164(void);
SceQafMgrForDriver_883E9465
| Version |
NID
|
| 0.931-3.60 |
0x883E9465
|
Temp name was sceSblQafMgrIsAllowDecryptedBootConfigLoadForDriver.
Used by SceSysStateMgr only.
Allows loading psp2config.skprx as plaintext format.
// (*(uint8_t *)(qaf + 0xE) & 1)
int SceQafMgrForDriver_883E9465(void);
SceQafMgrForDriver_B9770A13
| Version |
NID
|
| 0.931-3.60 |
0xB9770A13
|
Needed to be enabled to work with DIPSW 251 (Enable "dummytty0:"). Needed by SceSysStateMgr to allow loading host0:psp2config.rpath.
Used by SceKernelModulemgr and SceSysmodule.
// (*(uint8_t *)(qaf + 0xD) & 2)
int SceQafMgrForDriver_B9770A13(void);
sceSblQafMgrIsAllowRemotePlayDebugForDriver
| Version |
NID
|
| 0.931-3.60 |
0xBFD5E463
|
// (*(uint8_t *)(qaf + 0xC) & 2)
int sceSblQafMgrIsAllowRemotePlayDebugForDriver(void);
SceQafMgrForDriver_E573F124
| Version |
NID
|
| 0.931-3.60 |
0xE573F124
|
// (*(uint8_t *)(qaf + 0x0) & 0x10)
int SceQafMgrForDriver_E573F124(void);
sceSblQafMgrIsAllowMarlinTestForDriver
| Version |
NID
|
| 1.03-3.60 |
0x10283EB8
|
// (*(uint8_t *)(qaf + 0xD) & 2)
int sceSblQafMgrIsAllowMarlinTestForDriver(void);
sceSblQafMgrIsAllowNearTestForDriver
| Version |
NID
|
| 1.03-3.60 |
0x9644171D
|
// (*(uint8_t *)(qaf + 0x6) & 2)
int sceSblQafMgrIsAllowNearTestForDriver(void);
SceQafMgrForDriver_AE033133
| Version |
NID
|
| 3.60 |
0xAE033133
|
Only used by SceNpDrm.
// (*(uint8_t *)(qaf + 0x0) & 0x10)
int SceQafMgrForDriver_AE033133(void);
SceQafMgrForDriver_DEC6DF4E
| Version |
NID
|
| 3.60 |
0xDEC6DF4E
|
Only used by SceNpDrm.
// (*(uint8_t *)(qaf + 0xF) & 1)
int SceQafMgrForDriver_DEC6DF4E(void);
sceSblQafMgrIsAllowPSPEmuShowQAInfoForDriver
| Version |
NID
|
| 3.60 |
0xB7B195B2
|
// (*(uint8_t *)(qaf + 0xF) & 1)
int sceSblQafMgrIsAllowPSPEmuShowQAInfoForDriver(void);
sceSblQafMgrIsAllowLoadMagicGateForDriver
| Version |
NID
|
| 3.60 |
0x36E5312E
|
// (*(uint8_t *)(qaf + 0xB) & 0x10)
int sceSblQafMgrIsAllowLoadMagicGateForDriver(void);
sceSblQafMgrIsAllowDtcpIpResetForDriver
| Version |
NID
|
| 3.60 |
0xE8B8F31F
|
// (*(uint8_t *)(qaf + 0x6) & 2)
int sceSblQafMgrIsAllowDtcpIpResetForDriver(void);
sceSblQafMgrIsAllowControlIduAutoUpdateForDriver
| Version |
NID
|
| 3.60 |
0xF8BFEE48
|
// (*(uint8_t *)(qaf + 0x6) & 2)
int sceSblQafMgrIsAllowControlIduAutoUpdateForDriver(void);
sceSblQafMgrIsAllowKeepCoreFileForDriver
| Version |
NID
|
| 3.60 |
0xC1EA75C8
|
// (*(uint8_t *)(qaf + 0xF) & 1)
int sceSblQafMgrIsAllowKeepCoreFileForDriver(void);
SceQafMgrForDriver_70A67A4B
| Version |
NID
|
| 3.60 |
0x70A67A4B
|
// (*(uint8_t *)(qaf + 0xF) & 1)
int SceQafMgrForDriver_70A67A4B(void);
SceQafMgrForDriver_41E04800
| Version |
NID
|
| 3.60 |
0x41E04800
|
Only used by SceAppMgr.
// (*(uint8_t *)(qaf + 0xB) & 4)
int SceQafMgrForDriver_41E04800(void);
SceQafMgrForDriver_7B14DC45
| Version |
NID
|
| 3.60 |
0x7B14DC45
|
Only used by SceAppMgr.
// (*(uint8_t *)(qaf + 0xD) & 2)
int SceQafMgrForDriver_7B14DC45(void);
ScePmMgrForDriver
scePmMgrGetProductModeForDriver
| Version |
NID
|
| 0.931-3.60 |
0x2AC815A2
|
Returns 0 on success, 0x800f0a29 on failure.
Gets kbl_param using sceKernelSysrootGetKblParamForKernel.
result = ((int *)(kbl_param->boot_type_indicator_1) >> 2) & 1; // manufacturing mode flag
int scePmMgrGetProductModeForDriver(char* result);
scePmMgrIsExternalBootModeForDriver
| Version |
NID
|
| 3.60 |
0xBD1F193B
|
Gets kbl_param using sceKernelSysrootGetKblParamForKernel.
return (int *)(kbl_param->boot_type_indicator_1) & 1; // external boot mode flag
int scePmMgrIsExternalBootModeForDriver(void);
SceSblAIMgrForDriver
sceSblAIMgrGetSMIForDriver
| Version |
NID
|
| 3.60 |
0x47D9CF13
|
SMI means Service / Manufacturing Information.
SMI is read from SceKblParam->min_fw_version.
int sceSblAIMgrGetSMIForDriver(SceUInt32 *pSMI);
sceSblAIMgrGetProductCodeForDriver
| Version |
NID
|
| 3.60 |
0x14345161
|
Temp name was sceSblAIMgrGetTargetIdForDriver.
Product Code = Target Id
int sceSblAIMgrGetProductCodeForDriver(void);
sceSblAIMgrGetProductSubCodeForDriver
| Version |
NID
|
| 3.60 |
0xB33CEC8F
|
Product Sub Code = model revision
int sceSblAIMgrGetProductSubCodeForDriver(void);
sceSblAIMgrIsTestForDriver
| Version |
NID
|
| 3.60 |
0x3B638885
|
TEST = Internal Test Unit
Returns true if PsCode Product Code == 0x100.
int sceSblAIMgrIsTestForDriver(void);
sceSblAIMgrIsToolForDriver
| Version |
NID
|
| 3.60 |
0x274663A0
|
TOOL = DevKit
Returns true if PsCode Product Code == 0x101.
int sceSblAIMgrIsToolForDriver(void);
sceSblAIMgrIsDEXForDriver
| Version |
NID
|
| 3.60 |
0xF4B98F66
|
Returns true if PsCode Product Code == 0x102.
int sceSblAIMgrIsDEXForDriver(void);
sceSblAIMgrIsCEXForDriver
| Version |
NID
|
| 3.60 |
0xD78B04A2
|
Returns true if PsCode Product Code 0x103-0x111 AND sceSblAIMgrIsSpecialCEXForDriver returns false.
int sceSblAIMgrIsCEXForDriver(void);
sceSblAIMgrIsVITAForDriver
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0x4273B97B
|
Returns sceSblAIMgrIsGenuineVITAForDriver. If the console is a PS TV, it returns false.
int sceSblAIMgrIsVITAForDriver(void);
sceSblAIMgrIsDolceForDriver
| Version |
NID
|
| 0.931.010-2.060.011 |
not present
|
| 2.100.081-3.740.011 |
0x71608CA3
|
Returns sceSblAIMgrIsGenuineDolceForDriver if returns true else returns sceKernelCheckDipswForDriver(0x98).
int sceSblAIMgrIsDolceForDriver(void);
sceSblAIMgrIsGenuineVITAForDriver
| Version |
NID
|
| 3.60 |
0x963CA644
|
Returns true if:
- PsCode Product Code <= 0x111 AND sceSblAIMgrIsGenuineDolceForDriver returns false
- sceSblAIMgrIsSpecialCEXForDriver returns true AND HardwareInfo != 0x700000 != 0x720000 != 0x510000
int sceSblAIMgrIsGenuineVITAForDriver(void);
sceSblAIMgrIsGenuineDolceForDriver
| Version |
NID
|
| 3.60 |
0xC6E83F34
|
int sceSblAIMgrIsGenuineDolceForDriver(void);
sceSblAIMgrIsDiagForDriver
| Version |
NID
|
| 3.60 |
0x6D5A3FC9
|
Temp name was sceSblAIMgrIsSpecialCEXForDriver, sceSblAIMgrIsCEXJpFatForDriver.
Returns true if PsCode Product Code == 0x103 (Japan), PsCode Product Sub Code == 0x10 (FAT chassis) and PsCode Factory Code == 0x24 (SCE labs).
int sceSblAIMgrIsDiagForDriver(void);
sceSblAIMgrIsToolDVT1ForDriver
| Version |
NID
|
| 0.931-3.60 |
0xBB9D146B
|
Returns true if PsCode Product Code == 0x101 and PsCode Product Sub Code == 3.
int sceSblAIMgrIsToolDVT1ForDriver(void);
sceSblAIMgrIsToolRev4ForDriver
| Version |
NID
|
| 3.60 |
0x37A79140
|
Returns true if PsCode Product Code == 0x101 and PsCode Product Sub Code == 4.
int sceSblAIMgrIsToolRev4ForDriver(void);
sceSblAIMgrIsToolDVT2ForDriver
| Version |
NID
|
| 3.60 |
0xE5E47FF7
|
Returns true if PsCode Product Code == 0x101 and PsCode Product Sub Code == 5.
int sceSblAIMgrIsToolDVT2ForDriver(void);
sceSblAIMgrIsCEXPrototypeRev2ForDriver
| Version |
NID
|
| 3.60 |
0xFF5784B9
|
Returns true if PsCode Product Code == 0x103 and PsCode Product Sub Code == 2.
int sceSblAIMgrIsCEXPrototypeRev2ForDriver(void);
sceSblAIMgrIsCEXPrototypeRev7ForDriver
| Version |
NID
|
| 3.60 |
0x05F79D4A
|
Returns true if PsCode Product Code == 0x103 and PsCode Product Sub Code == 7.
int sceSblAIMgrIsCEXPrototypeRev7ForDriver(void);
SceProcEventForDriver
sceKernelUnregisterProcEventHandlerForDriver
| Version |
NID
|
| 3.60 |
0x3DED57CC
|
Temp name was sceProcEventDeleteUidForDriver.
Wrapper to sceGUIDCloseForDriver.
int sceKernelUnregisterProcEventHandlerForDriver(int uid);
sceKernelRegisterProcEventHandlerForDriver
| Version |
NID
|
| 0.990-3.60 |
0x2A43912D
|
Temp name was sceProcEventCreateEventForDriver.
Uses sceKernelCreateEventForDriver.
Returns uid.
typedef struct SceProcEventInvokeParam1 {
SceSize size; // SceProcEventInvokeParam1 struct size : 0x10
int unk_0x04;
int unk_0x08;
int unk_0x0C;
} SceProcEventInvokeParam1;
typedef struct SceProcEventInvokeParam2 {
SceSize size; // SceProcEventInvokeParam2 struct size : 0x14
SceUID pid;
int unk_0x08;
int unk_0x0C;
int unk_0x10;
} SceProcEventInvokeParam2;
typedef struct SceProcEventHandler {
SceSize size; // SceProcEventHandler struct size : 0x1C
int (* create)(SceUID pid, SceProcEventInvokeParam2 *pParam, void *pCommon);
int (* exit)(SceUID pid, SceProcEventInvokeParam1 *pParam, void *pCommon); // current process exit
int (* kill)(SceUID pid, SceProcEventInvokeParam1 *pParam, void *pCommon); // by SceShell
int (* suspend)(SceUID pid, int phase, SceProcEventInvokeParam1 *pParam, void *pCommon);
int (* resume)(SceUID pid, int phase, SceProcEventInvokeParam1 *pParam, void *pCommon);
int (* event_notify)(int evtype, int phase, SceProcEventInvokeParam2 *pParam, void *pCommon); //for arbitrary event types
} SceProcEventHandler;
/***
* Registers a process event handler
*
* @param[in] name - Name of the event handler
* @param[in] pHandler - Pointer to the handler structure
* @param[in] pCommon - Arbitrary data passed to handlers
*
* @return Positive on success, < 0 on error.
* @note Event handler pointers in pHandler may be NULL.
*/
SceUID sceKernelRegisterProcEventHandlerForDriver(const char *name, SceProcEventHandler *pHandler, void *pCommon);
sceKernelInvokeProcEventHandlerForDriver
| Version |
NID
|
| 3.60 |
0x414CC813
|
Walks the list of registered process event handlers and invokes the ones related to the signaled event.
//Event type constants (for evtype parameter)
#define CREATE_EVENT 1 //<! Call create() handlers
#define EXIT_EVENT 2 //<! Call exit() handlers
#define KILL_EVENT 3 //<! Call kill() handlers
#define SUSPEND_EVENT 4 //<! Call suspend() handlers
#define RESUME_EVENT 5 //<! Call resume() handlers
//All other values result in event_notify() handlers being called
/***
* Invoke process event handlers
*
* @param[in] process - PID of the process for which event happened
* @param[in] evtype - Event type
* @param[in] phase - Unknown
* @param[in] pParam - Pointer to handler parameter
* @param[out] pFailer - Pointer to a variable that receives UID of a failing handler. May be NULL.
* @param[in] stop - GUID of a handler that should stop execution
*
* @return Positive number on success, < 0 on error.
* Corresponds to the last executed handler's return value (or SCE_OK if none were executed).
*
* @note process, pFailer and stop are unofficial argument names
*
* Invocation is performed by walking the list in order (from first to last registered handler):
* - If the GUID of the handler matches the "stop" parameter, the handle is NOT executed and the function returns.
* This can be used to ensure only process event handlers registered before a specific one are executed.
* - If the handler has no function pointer corresponding to the evtype, execution continues with the next handler.
* - If the handler has a function pointer corresponding to the evtype, the function is called with the appropriate
* arguments. If the return value is positive, execution continues with the next handler. If the return value is
* negative, the handler has failed, the GUID of the failing handler is saved in *pFailer if non-NULL and the function
* returns directly.
*/
int sceKernelInvokeProcEventHandlerForDriver(ScePID pid, int evtype, int phase, void* pParam, SceUID *pFailer, SceUID stop);
SceDebugLed
sceKernelGetGPI
| Version |
NID
|
| 3.60 |
0x14F582CF
|
int sceKernelGetGPI(void);
sceKernelSetGPO
| Version |
NID
|
| 3.60 |
0x78E702D3
|
/**
* @brief Output to LED
*
* This sets the content displayed on the DevKit LED.
* @param[in] uiBitd Bit pattern. only low-order 8 bits are valid.
*/
int sceKernelSetGPO(SceUInt32 uiBits);
call_cb74
| Version |
NID
|
| 3.60 |
0x2B6EABAD
|
void call_cb74(int a1, int a2, int a3, int a4);
call_cb78
| Version |
NID
|
| 3.60 |
0x0E6B9890
|
void call_cb78(int a1, int a2, int a3, int a4);
SceDebugLedForDriver
GPI stands for General Purpose Input, and GPO stands for General Purpose Output.
sceKernelGetGPIForDriver
| Version |
NID
|
| 3.60 |
0x14F582CF
|
Only SceDebugLedForDriver function used by SceCoredump.
int sceKernelGetGPIForDriver(void);
sceKernelSetGPIForDriver
| Version |
NID
|
| 3.60 |
0x51C5325A
|
int sceKernelSetGPIForDriver(int value);
sceKernelGetGPOForDriver
| Version |
NID
|
| 3.60 |
0x3BB289F7
|
int sceKernelGetGPOForDriver(void);
sceKernelSetGPOForDriver
| Version |
NID
|
| 3.60 |
0x78E702D3
|
int sceKernelSetGPOForDriver(SceUInt32 uiBits);
sceKernelSetGPOMaskForDriver
| Version |
NID
|
| 3.60 |
0x098473B0
|
sceKernelSetGPOMaskForDriver(int a1, int a2);
call_cb74
| Version |
NID
|
| 3.60 |
0x2B6EABAD
|
void call_cb74(int a1, int a2, int a3, int a4);
set_cb74
| Version |
NID
|
| 3.60 |
0x24173819
|
int set_cb74(void *cb);
call_cb78
| Version |
NID
|
| 3.60 |
0x0E6B9890
|
void call_cb78(int a1, int a2, int a3, int a4);
set_cb78
| Version |
NID
|
| 3.60 |
0xF62154E7
|
int set_cb78(void *cb);
SceDebugForKernel
sceKernelDebugModuleStart2ForKernel
| Version |
NID
|
| 0.931-3.60 |
0xF624CE22
|
int sceKernelDebugModuleStart2ForKernel(void);
sceKernelRegisterKprintfHandlerForKernel
| Version |
NID
|
| 0.931-3.60 |
0x10067B7B
|
Temp name was sceDebugSetHandlersForKernel.
int sceKernelRegisterKprintfHandlerForKernel(int (* handler)(int unk, const char *format, va_list args), void *argp);
sceKernelGetDebugPutcharHandlerForKernel
| Version |
NID
|
| 3.60 |
0xE783518C
|
This is guessed name.
Temp name was sceDebugGetPutcharHandlerForKernel, sceKernelGetDebugPutcharForKernel.
Returns pointer to current debug putchar handler.
void *sceKernelGetDebugPutcharHandlerForKernel(void);
sceKernelRegisterDebugPutcharHandlerForKernel
| Version |
NID
|
| 3.60 |
0xE6115A72
|
Temp name was sceDebugRegisterPutcharHandlerForKernel, sceKernelRegisterDebugPutcharForKernel.
Set debug print char handler.
int sceKernelRegisterDebugPutcharHandlerForKernel(int (* handler)(void *args, char c), void *args);
sceKernelDebugPutcharForKernel
| Version |
NID
|
| 0.931-3.60 |
0x82D2EDCE
|
Temp name was sceDebugPutcharForKernel.
Print character to uart.
Return 1.
int sceKernelDebugPutcharForKernel(char c);
sceKernelTtyPutcharForKernel
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x254A4997
|
This is a guessed name.
Prints a character to the 0x1000-byte buffer returned by SceSysmem#sceKernelGetTtyInfoForDriver.
On success, returns printed size (always 1).
int sceKernelTtyPutcharForKernel(char c);
sceKernelStoppedForKernel
| Version |
NID
|
| 0.931-0.990 |
0xF1F0C365
|
| 3.60 |
not present
|
int sceKernelStoppedForKernel(const char *pFile, const char *pFunc, int line);
panic_on_kernel_exception
| Version |
NID
|
| 0.931 |
not present
|
| 3.60 |
0x082B8D6A
|
| 3.65 |
0xCCABDD98
|
Prints information about a Kernel Exception, ?and certainly calls SceCoredump?, then calls SceSysrootForKernel_0DF574A9 in an infinite loop.
This function doesn't return.
See SceExcpmgr#sceKernelRegisterExceptionHandlerForKernel for the meaning of excpcode.
// excp_name can be:
// UNDEF - Undefined instruction
// PABT - Prefetch Abort
// DABT - Data Abort
// NEST - Nested? Same excpcode as UNDEF
void panic_on_kernel_exception(SceKernelDebugInfo *dbginfo, SceExcpmgrExceptionContext *excp_ctx, int excpcode, const char *excp_name);
register_unk_handler
| Version |
NID
|
| 0.931 |
not present
|
| 3.60 |
0x66D82EC8
|
used by SceDeci4pSDbgp.
handler definition:
handler(int some_level, void *unk, const void *buf);
int register_unk_handler(void *handler);
sceKernelEnableCrashDumpForKernel
| Version |
NID
|
| 0.931.010-1.81 |
not present
|
| 2.000.081-3.610.011 |
0xF857CDD6
|
| 3.630.011-3.740.011 |
0xA465A31A
|
This is a guessed name. Temp name was sceDebugDisableInfoDumpForKernel, sceKernelEnableInfoDumpForKernel.
Returns previous crash dump state.
int sceKernelEnableCrashDumpForKernel(SceBool enable);
register_log_buffer
| Version |
NID
|
| 0.931 |
0x4703ECC4
|
| 3.60 |
not present
|
int register_log_buffer(const void *log_buffer_addr, SceSize log_buffer_size);
start_logging
| Version |
NID
|
| 0.931 |
0x4C377B11
|
| 3.60 |
not present
|
Returns 1 if logging has been started successfully, -1 else.
int start_logging(int state);
stop_logging
| Version |
NID
|
| 0.931 |
0x604F56AE
|
| 3.60 |
not present
|
If state is not zero, stops logging and return 1, else does nothing and return 0.
Returns 1 if logging has been stopped, 0 else.
int stop_logging(void);
refresh_logs
| Version |
NID
|
| 0.931 |
0x04A3046D
|
| 3.60 |
not present
|
int refresh_logs(void);
_sceKernelPrintDebugLogForKernel
| Version |
NID
|
| 0.931 |
0xEFDE973B
|
| 3.60 |
not present
|
If a2 is not zero, the current log buffer address is updated, else it is unchanged.
maxNum is guessed to be either the number of entries or the index of the chosen entry. Entry size is 0x40 bytes.
Uses sceKernelPrintfLevelForDriver to print.
int _sceKernelPrintDebugLogForKernel(int a1, int a2, int maxNum);
sceKernelPrintDebugLogForKernel
| Version |
NID
|
| 0.931 |
0xBD5D0BB0
|
| 3.60 |
not present
|
Calls _sceKernelPrintDebugLogForKernel with maxNum = (log_buf_end - log_buf_start) / 0x40.
int sceKernelPrintDebugLogForKernel(int a1, int a2);
print_with_log_buffer
| Version |
NID
|
| 0.931 |
0x904FF72D
|
| 3.60 |
not present
|
int print_with_log_buffer(const char *string, SceSize maxlen);
sceKernelPrintfCore0ForKernel
| Version |
NID
|
| 0.931 |
0x2D7380FE
|
| 3.60 |
not present
|
Same as sceKernelPrintfForDriver but only prints if CPU ID is 0.
int sceKernelPrintfCore0ForKernel(const char *fmt, ...);
sceKernelPrintfLevelCore0ForKernel
| Version |
NID
|
| 0.931 |
0x14241F51
|
| 3.60 |
not present
|
Same as sceKernelPrintfLevelForDriver but only prints if CPU ID is 0.
int sceKernelPrintfLevelCore0ForKernel(int level, const char *fmt, ...);
sceKernelSetDebugLevelForKernel
| Version |
NID
|
| 0.931-3.60 |
0xBE2C05A2
|
Temp name was sceKernelSetMinimumLogLevelForKernel.
SceUInt32 sceKernelSetDebugLevelForKernel(SceUInt32 dbgLevel);
sceKernelGetDebugLevelForKernel
| Version |
NID
|
| 0.931 |
0xDA6B6770
|
| 3.60 |
not present
|
Temp name was sceKernelGetMinimumLogLevelForKernel.
Returns the dbgLevel set by sceKernelSetDebugLevelForKernel.
SceUInt32 sceKernelGetDebugLevelForKernel(void);
sceKernelSetAssertLevelForKernel
| Version |
NID
|
| 0.931-3.60 |
0xCE9060F1
|
Temp name was sceKernelSetMinimumAssertionLevelForKernel.
Overrides in memory g_assertLevel set by DIP switches 201 and 202.
Returns the previous assert level.
SceInt32 sceKernelSetAssertLevelForKernel(SceUInt32 assertLevel);
sceKernelGetAssertLevelForKernel
Temp name was sceKernelGetMinimumAssertionLevelForKernel.
Returns g_assertLevel from memory.
SceInt32 sceKernelGetAssertLevelForKernel(void);
SceDebugForKernel_BEF921A2
| Version |
NID
|
| 0.931 |
not present
|
| 3.60-3.61 |
0xBEF921A2
|
| 3.63 |
0x5D6F0CFC
|
// buf size is 0x1000 bytes
// buf_400 size is 0x400 bytes
SceSSize SceDebugForKernel_BEF921A2(void *dst, int cpuId, SceUInt64 time, SceKernelDebugInfo *dbginfo, const void *excp_info_buf_0x400, int excpcode);
add_entry
| Version |
NID
|
| 0.931-0.990 |
0x1208240D
|
| 3.60 |
not present
|
// ex: add_entry(0xA1, in_lr, 3, name); in SceSysmem
// ex: add_entry(0xAB, in_lr, 1, uid); in SceSysmem
// ex: add_entry(0xBB, in_lr, 0, param_4); in SceProcessmgr
int add_entry(SceSize maxlen, int a2, int a3, void *log_buffer_start);
add_entry2
| Version |
NID
|
| 0.931 |
0x061A4657
|
| 3.60 |
not present
|
int add_entry2(int a1, const char *msg, void *log_buffer_start, int a4);
sceDebugRegisterBacktraceInternalForKernel
| Version |
NID
|
| 0.931-3.610.011 |
0xEFF9962B
|
| 3.630.011-3.740.011 |
0x91E7D24F
|
This is a guessed name.
Registers a callback for SceKernelModulemgr#sceKernelBacktraceInternalForDriver.
If callback runs successfully (returns >= 0), value of pNumReturn is used as third argument of PrintBacktrace, else PrintBacktrace is not called at all.
int sceDebugRegisterBacktraceInternalForKernel(int (* callback)(SceUID threadId, SceKernelCallFrame *pCallFrameBuffer, SceSize numBytesBuffer, SceUInt32 *pNumReturn, SceInt32 mode));
sceDebugRegisterPrintBacktraceForKernel
| Version |
NID
|
| 0.931-3.60 |
0xB5943011
|
This is a guessed name.
Registers a callback for SceKernelModulemgr#sceKernelPrintBacktraceForDriver.
int sceDebugRegisterPrintBacktraceForKernel(int (* callback)(SceUID processId, const SceKernelCallFrame *pCallFrame, SceUInt32 numFrames));
sceKernelPrintSyscallFrameForKernel
| Version |
NID
|
| 3.60 |
0x25E31E18
|
| 3.65 |
0xBCC8D0B2
|
// if pSyscallFrame is NULL, it will use the current syscall frame
// pResult is a pointer to a 0x10 bytes buffer and may be NULL
void sceKernelPrintSyscallFrameForKernel(SceUID pid, SceSyscallFrame *pSyscallFrame, SceUInt32 *pResult);
SceDebugForKernel_F1F861CF
| Version |
NID
|
| 2.00-3.60 |
0xF1F861CF
|
Registers a callback that is called when a crash occur.
Used by SceKernelBlueScreenOfDeath.
int SceDebugForKernel_F1F861CF(void *cb);
SceDebugForKernel_1526DD83
| Version |
NID
|
| 3.20 |
0x1526DD83
|
Register sceEventLogPutForDriver internal callback.
SceDebugForDriver
If AllowKernelDebug QA flag is not set, calls to functions with non-zero SceKernelDebugLevel are ignored.
sceKernelPrintfForDriver
| Version |
NID
|
| 0.931-3.60 |
0x391B74B7
|
Temp name was sceDebugPrintfForDriver.
int sceKernelPrintfForDriver(const char *fmt, ...);
sceKernelVprintfForDriver
| Version |
NID
|
| 0.931-3.60 |
0x411C0733
|
int sceKernelVprintfForDriver(const char *fmt, va_list arg);
sceKernelPrintfLevelForDriver
| Version |
NID
|
| 0.931-3.60 |
0x1A3F2AA4
|
int sceKernelPrintfLevelForDriver(SceUInt32 level, const char *fmt, ...);
sceKernelVprintfLevelForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x611A158B
|
int sceKernelVprintfLevelForDriver(SceUInt32 level, const char *fmt, va_list arg);
sceKernelPrintfLevelWithInfoForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0xD9703808
|
This is a guessed name.
Temp name was sceKernelPrintfLevelWithCtxForDriver.
int sceKernelPrintfLevelWithInfoForDriver(SceUInt32 level, int flags, const SceKernelDebugInfo *dbginfo, const char *fmt, ...);
sceKernelPrintfWithInfoForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x02B04343
|
This is a guessed name.
Temp name was sceDebugPrintf2ForDriver, sceKernelVprintfLevelWithCtxForDriver.
int sceKernelPrintfWithInfoForDriver(SceUInt32 flags, const SceKernelDebugInfo *dbginfo, const char *fmt, ...);
sceKernelAssertForDriver
| Version |
NID
|
| 0.931-3.60 |
0x35A35322
|
Temp name was sceDebugPrintKernelAssertionForDriver.
Condition 0 can trigger "kernel stopped".
// 0.931-0.990:
// addr is maybe not an argument but the stack pointer got within the function
int sceKernelAssertForDriver(SceBool condition, const char *pFile, const char *pFunc, int line, const void *addr);
// 3.60:
int sceKernelAssertForDriver(SceBool condition, const SceKernelDebugInfo *dbginfo, const void *addr);
sceKernelAssertLevelForDriver
| Version |
NID
|
| 0.931-3.60 |
0xFD753E7A
|
// 0.931-0.990:
int sceKernelAssertLevelForDriver(int level, SceBool condition, const char *pFile, const char *pFunc, int line, const void *addr);
// 3.60:
int sceKernelAssertLevelForDriver(int level, SceBool condition, const SceKernelDebugInfo *dbginfo, const void *addr);
sceKernelPrintfAssertLevelForDriver
| Version |
NID
|
| 0.931 |
not present
|
| 0.990-3.60 |
0x821A2D59
|
This is a guessed name.
Temp name was sceDebugPrintfKernelAssertionForDriver, sceKernelVprintfAssertLevelForDriver.
// 0.990:
int sceKernelPrintfAssertLevelForDriver(SceUInt32 level, SceBool condition, const char *pFile, const char *pFunc, int line, const void *addr, const char *fmt, va_list arg);
// 3.50-3.60:
int sceKernelPrintfAssertLevelForDriver(SceUInt32 level, SceBool condition, const SceKernelDebugInfo *dbginfo, const void *lr, const char *fmt, ...);
sceKernelGetAssertLevelForDriver
Temp name was sceKernelGetMinimumAssertionLevelForDriver.
Returns g_assertLevel from memory.
SceInt32 sceKernelGetAssertLevelForDriver(void);
sceKernelPanicForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x391B5B74
|
Temp name was sceDebugPrintKernelPanicForDriver.
int sceKernelPanicForDriver(const SceKernelDebugInfo *dbginfo, const void *addr);
sceKernelPrintfPanicForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x00CCE39C
|
void sceKernelPrintfPanicForDriver(const SceKernelDebugInfo *dbginfo, const void *addr, const char *fmt, ...);
sceKernelGetDebugTailLogForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x62466B0A
|
Temp name was sceKernelGetTtyInfoForDriver.
Gets tty tail log.
// max bufSize is 0x1000
int sceKernelGetDebugTailLogForDriver(void *pBuf, SceSize bufSize);
_sceEventLogPutForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x95B38C6C
|
Derived from SceVshBridge#_vshEventLogPut.
Calls SceSysmem#sceEventLogPutForDriver with KERNEL PID and SceSysmem#SceSysrootForKernel_D441DC34 return value as second argument.
// id: 10001 (SceProcessmgr), 20001 (SceWlanBt)
// index: 1, 2, 3, 4, 5 (SceProcessmgr), 1, 2, 3, 4 (SceWlanBt)
// a3: 0 (SceProcessmgr, SceWlanBt)
// bufSize: 0x1C (SceProcessmgr), 4 (SceWlanBt)
// max bufSize is 0x80
int _sceEventLogPutForDriver(int id, int index, int a3, void *pBuf, SceSize bufSize);
sceEventLogPutForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x912CF2BA
|
This is a guessed name.
// max bufSize is 0x80
int sceEventLogPutForDriver(SceUInt32 pid, int a2, int id, int index, int a5, void *pBuf, SceSize bufSize);
sceKernelGetEventLogForDriver
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0xCC5365D3
|
Temp name was sceEventLogGetInfoForDriver.
Copy by blocks of 0x30 bytes (or maybe 0xC0 bytes).
// max bufSize is 0xC00 (0x40 blocks of size 0x30)
int sceKernelGetEventLogForDriver(SceKernelDebugEventLog *pBuf, SceSize bufSize, SceSize *pReadBlocks);
SceSysmemForTZS
sceKernelProcModeVAtoPAForTZS
| Version |
NID
|
| 0.931 |
0x119B9547
|
| 0.990-3.73 |
not present
|
int sceKernelProcModeVAtoPAForTZS(SceUID pid, uint32_t mode, void *pVA, void **pPA);
sceKernelAllocPartitionStackMemBlockForTZS
| Version |
NID
|
| 0.931 |
0x69022B7F
|
| 0.990-3.73 |
not present
|
| Version |
NID
|
| 0.940-1.80 |
0x3FEF6B39
|
| 3.60-3.73 |
not present
|
sceKernelDeleteHeapForTZS
| Version |
NID
|
| 0.931-3.60 |
0x624454BC
|
sceKernelCreateHeapForTZS
| Version |
NID
|
| 0.931-3.60 |
0x56A16D84
|
sceKernelAllocHeapMemoryWithOptionForTZS
| Version |
NID
|
| 0.931-3.60 |
0xEA712806
|
sceKernelAllocHeapMemoryForTZS
| Version |
NID
|
| 0.931-3.60 |
0x473871D8
|
sceKernelFreeHeapMemoryForTZS
| Version |
NID
|
| 0.931-3.60 |
0x42FB5B12
|
sceKernelAllocUncacheHeapMemoryForTZS
| Version |
NID
|
| 0.940-3.60 |
0x29DE887D
|
sceKernelAllocUncacheHeapMemoryWithOptionForTZS
| Version |
NID
|
| 0.931-3.60 |
0x6A3FBAF0
|
sceKernelFreeUncacheHeapMemoryForTZS
| Version |
NID
|
| 0.931-3.60 |
0x2F18E288
|
sceKernelNameHeapDeleteForTZS
| Version |
NID
|
| 0.990-3.60 |
0xF459D09D
|
sceKernelNameHeapInsertForTZS
| Version |
NID
|
| 0.990-3.60 |
0x42AD34AB
|
sceKernelSetSuspendIntrFuncForTZS
| Version |
NID
|
| 0.940-1.80 |
0xB4306D21
|
| 3.60-3.73 |
not present
|
sceKernelSetResumeIntrFuncForTZS
| Version |
NID
|
| 0.940-1.80 |
0x418111B0
|
| 3.60-3.73 |
not present
|
sceKernelAddressSpaceUnmapForTZS
| Version |
NID
|
| 0.940-3.60 |
0x31273DC7
|
sceKernelGetMemBlockBaseForTZS
| Version |
NID
|
| 0.931-3.60 |
0xE1DEDFF4
|
/**
* @brief Get mapped base address of memory block.
*
* Get base address of memory block.
* @param[in] uid block id
* @param[out] ppBase base address of memory block
* @retval SCE_OK success
* @retval <SCE_OK Error
*/
int sceKernelGetMemBlockBaseForTZS(SceUID uid, void **ppBase);
sceKernelFreeMemBlockForTZS
| Version |
NID
|
| 0.940-3.60 |
0x658EACE3
|
sceKernelAllocMemBlockForTZS
| Version |
NID
|
| 0.940-3.60 |
0x402EB970
|
SceUID sceKernelAllocMemBlockForTZS(const char *name, SceKernelMemBlockType type, SceSize vsize, const struct SceKernelAllocMemBlockOptKernel *pOpt);
sceKernelAllocPartitionMemBlockForTZS
| Version |
NID
|
| 0.940-3.60 |
0x0028E26C
|
Temp name was sceKernelAllocMemBlockForPidForTZS.
SceUID sceKernelAllocPartitionMemBlockForTZS(SceUID pid, const char *name, SceKernelMemBlockType type, SceSize vsize, const struct SceKernelAllocMemBlockOptKernel *pOpt);
sceKernelVAtoPAForTZS
| Version |
NID
|
| 0.931-3.60 |
0x1DEADF6C
|
This will write the physical address for a virtual address pVA to memory pointed to by ppPA.
Returns <0 on error, values >=0 indicate success.
int sceKernelVAtoPAForTZS(void *pVA, void **ppPA);
sceKernelVARangeToPAVectorForTZS
| Version |
NID
|
| 0.931-3.60 |
0x9D43E416
|
sceKernelCreateAddressSpaceForTZS
| Version |
NID
|
| 0.931 |
0x21906368
|
| 0.990-3.73 |
not present
|
SceSysmemForTZS_038EAEEE
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x038EAEEE
|
SceDipswForTZS
sceKernelCheckDipswForTZS
| Version |
NID
|
| 0.940-3.60 |
0xA98FC2FD
|
SceUartForTZS
sceUartWriteForTZS
| Version |
NID
|
| 0.990-3.60 |
0x3AFD5E71
|
SceDebugForTZS
sceKernelDebugModuleStart2ForTZS
| Version |
NID
|
| 0.931 |
0x32E3D4B9
|
int sceKernelDebugModuleStart2ForTZS(void);
sceKernelRegisterKprintfHandlerForTZS
| Version |
NID
|
| 0.931 |
0x0AD558D5
|
int sceKernelRegisterKprintfHandlerForTZS(int (*kprintf)(const char *fmt, ...), const void *args);
sceKernelDebugPutcharForTZS
| Version |
NID
|
| 0.931 |
0xD36F27BA
|
Print character.
int sceKernelDebugPutcharForTZS(char c);
sceKernelStoppedForTZS
| Version |
NID
|
| 0.931-0.990 |
0xCB502FD1
|
| 1.80 |
not present
|
int sceKernelStoppedForTZS(const char *maybe_pFile, const char *maybe_pFunc, int maybe_line);
sceKernelAssertForTZS
| Version |
NID
|
| 0.931-3.60 |
0x2F9B8AA8
|
// 0.931-0.990:
int sceKernelAssertForTZS(SceBool condition, const char *pFile, const char *pFunc, int line, const void *addr);
// 3.60:
int sceKernelAssertForTZS(SceBool condition, const SceKernelDebugInfo *dbginfo, const void *addr);
sceKernelAssertLevelForTZS
| Version |
NID
|
| 3.60 |
0x618F89E6
|
// 3.60:
int sceKernelAssertLevelForTZS(int level, SceBool condition, const SceKernelDebugInfo *dbginfo, const void *addr);
sceKernelGetAssertLevelForTZS
| Version |
NID
|
| 3.60 |
0xF851BA4F
|
Returns g_assertLevel from memory.
SceInt32 sceKernelGetAssertLevelForTZS(void);
_sceKernelPrintDebugLogForTZS
| Version |
NID
|
| 0.931 |
0x4FF6536C
|
int _sceKernelPrintDebugLogForTZS(int a1, int a2, int maxNum);
sceKernelPrintDebugLogForTZS
| Version |
NID
|
| 0.931 |
0x85BF33E1
|
int sceKernelPrintDebugLogForTZS(int a1, int a2);
print_with_log_buffer
| Version |
NID
|
| 0.931 |
0x1FD92289
|
int print_with_log_buffer(const char *msg, SceSize maxlen);
sceKernelPrintfForTZS
| Version |
NID
|
| 0.931-1.80 |
0x1655E0E3
|
int sceKernelPrintfForTZS(const char *fmt, ...);
sceKernelPrintfLevelForTZS
| Version |
NID
|
| 0.931-1.80 |
0xC70CBB58
|
int sceKernelPrintfLevelForTZS(int level, const char *fmt, ...);
sceKernelPrintfCore0ForTZS
| Version |
NID
|
| 0.931 |
0x08F8AD70
|
Same as sceKernelPrintfForTZS but only prints if CPU ID is 0.
int sceKernelPrintfCore0ForTZS(const char *fmt, ...);
sceKernelPrintfLevelCore0ForTZS
| Version |
NID
|
| 0.931-1.80 |
0xD4E6A0C0
|
Same as sceKernelPrintfLevelForTZS but only prints if CPU ID is 0.
int sceKernelPrintfLevelCore0ForTZS(int level, const char *fmt, ...);
sceKernelSetMinimumLogLevelForTZS
| Version |
NID
|
| 0.931 |
0x898E417E
|
/**
* @brief Specifies the minimum severity level for the output of logging information.
*
* Specifies the minimum severity level for the output of logging information. The default level is SCE_DBG_LOG_LEVEL_TRACE.
*
* @param minimumLogLevel The minimum severity at which debugging messages should be output.
* @retval SCE_OK The operation was completed successfully.
* @retval Negative value Error code
*/
int sceKernelSetMinimumLogLevelForTZS(SceInt32 minimumLogLevel);
register_log_buffer
| Version |
NID
|
| 0.931 |
0xF2A87E96
|
int register_log_buffer(const void *log_buffer_addr, SceSize log_buffer_size);
start_logging
| Version |
NID
|
| 0.931 |
0x1FF65E15
|
int start_logging(int state);
stop_logging
| Version |
NID
|
| 0.931 |
0x5A35E3E0
|
If state is not zero, stops logging and return 1, else does nothing and return 0.
Returns 1 if logging has been stopped, 0 else.
int stop_logging(void);
refresh_logs
| Version |
NID
|
| 0.931 |
0x91B41C34
|
int refresh_logs(void);
add_entry
| Version |
NID
|
| 0.931 |
0x95E1A80B
|
int add_entry(int a1, int a2, int a3, void *log_buffer_start);
add_entry2
| Version |
NID
|
| 0.931 |
0x538319EB
|
int add_entry2(int a1, const char *msg, void *log_buffer_start, int a4);
register_unk_cb
| Version |
NID
|
| 0.931 |
0x3598118B
|
The callback has this definition:
// unk: 2 or 3
int unk_cb(SceUID pid, void *buf, SceSize size, int *pOut, int unk);
If unk_cb runs successfully (return >= 0), pOut is used as third argument of unk_cb2, else unk_cb2 is not called at all.
int register_unk_cb(void *some_cb);
register_unk_cb2
| Version |
NID
|
| 0.931 |
0xE844FC5A
|
| 0.990-3.60 |
not present
|
The callback has this definition:
int unk_cb2(SceUID pid, void *buf, int unk);
int register_unk_cb2(void *some_cb);
sceKernelPanicForTZS
| Version |
NID
|
| 0.931 |
not present
|
| 1.80-3.60 |
0x563B623D
|
SceDebugForTZS_0D799DAE
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0x0D799DAE
|
int SceDebugForTZS_0D799DAE(SceUInt32 msg_type, void *msg_ctx, const char *fmt, va_list arg);
SceDebugForTZS_D26EB4BB
| Version |
NID
|
| 0.931-0.990 |
not present
|
| 3.60 |
0xD26EB4BB
|
int SceDebugForTZS_D26EB4BB(SceBool condition, SceUInt32 msg_type, void *msg_ctx, const char *fmt, ...);
SceCpuForTZS
- 0.931: 0xACA39932: unknown, save context that will be restored with 0xCA74C9A2
- 0.931: 0xCA74C9A2: unknown, restore context saved with 0xACA39932
- 0.931: 0xE0B34336: unknown, same as SceCpuForKernel_9D72DD1B
- 0.931-0.990: 0x40DEC1B6: sceKernelWaitForEvent
- 0.931-0.990: 0xF42F079B: sceKernelSendEvent
- 0.940: 0x1266F962: sceKernelAbort
- 0.931-0.940: 0x98BF47D3: sceKernelGetVmaccessRange
- 0.931: 0x49AD8B60: sceKernelSetFIQModeStack
- 0.931: 0xC2A428F3: sceKernelSetMonModeStack
- 0.931: 0xD9013440: sceKernelSetIRQModeStack
- 0.931: 0xDF17E4A3: sceKernelSetUndModeStack
- 0.931: 0xF832C341: sceKernelSetAbtModeStack
- 0.931: 0xFB1D3114: sceKernelSetSvcModeStack
- 0.931: 0xF6CE21EA: sceKernelPrintCpuMode
- 3.60: 0x31E78A4B: unknown
- 3.60: 0x4FED4BCE: unknown
- 3.60: 0x7548CBCF: unknown
- 3.60: 0xD4E7413D: unknown
1.80:
NID 0: 0x0A15B41C: sceKernelL1DcacheCleanInvalidateAll
NID 1: 0x17A88E69: sceKernelL1DcacheCleanRange
NID 2: 0x190D96D5: sceKernelDcacheCleanRange
NID 3: 0x2A0A3DC6
NID 4: 0x2B6403F8: on FW 3.60, does nothing and returns -1. sceKernelCpuWaitL2Cache
NID 5: 0x2FE24445: sceKernelCpuAtomicSet32
NID 6: 0x308D7ABE: sceKernelCpuDcacheInvalidateMVACRange
NID 7: 0x324727D1: sceKernelGetCpsr
NID 8: 0x39FCFCC2: sceKernelDomainTextMemcpy
NID 9: 0x44C423D3: sceKernelCpuId
NID 10: 0x49B11FF8
NID 11: 0x71FD9AB5: sceKernelSpinlockLowLock
NID 12: 0x72CA4F7A: sceKernelGetSpsr
NID 13: 0x75D87321: sceKernelCpuAtomicOrAndGet32
NID 14: 0x7A5373EB: sceKernelDcacheCleanInvalidateRange
NID 15: 0x7CCE9480: sceKernelDcacheCleanInvalidateAll
NID 16: 0x864E3DED
NID 17: 0x9E4C0D0D: on FW 3.60, does nothing and returns -1
NID 18: 0xA5965CBF: sceKernelL1IcacheInvalidateEntireAllCore
NID 19: 0xACF209F3: sceKernelSpinlockLowTrylockCpuSuspendIntr
NID 20: 0xB421FAFD: sceKernelL1IcacheInvalidateRange
NID 21: 0xB8F00FBE: sceKernelSpinlockLowUnlockCpuResumeIntr
NID 22: 0xC4137AED: sceKernelPleFlushRequest
NID 23: 0xCD98416C: sceKernelSpinlockLowUnlock
NID 24: 0xCDD46655: sceKernelDcacheInvalidateRange
NID 25: 0xD67A4356: sceKernelSpinlockLowLockCpuSuspendIntr
NID 26: 0xEFD6F289: sceKernelCpuAtomicCompareAndSet8
SceSysclibForTZS
__stack_chk_fail
| Version |
NID
|
| 1.80-3.60 |
0xE5457B97
|
__stack_chk_guard
| Version |
NID
|
| 3.60 |
0xBA505B15
|
This is a variable.
strncpy
| Version |
NID
|
| 0.940-3.60 |
0x361850BB
|
memcpy
| Version |
NID
|
| 0.931-3.60 |
0xBE3AF2EE
|
memset
| Version |
NID
|
| 0.931-3.60 |
0x956DB750
|
SceSysrootForTZS
sceKernelSysrootBacktraceForTZS
| Version |
NID
|
| 0.931 |
0xF26A5E68
|
sceKernelSysrootPrintBacktraceForTZS
| Version |
NID
|
| 0.931 |
0x463EA380
|
sceKernelSysrootShowCallerInfoForTZS
| Version |
NID
|
| 0.931 |
0x2F3D9414
|
sceKernelSysrootGetModulePrivateForTZS
| Version |
NID
|
| 0.931-1.80 |
0xC9DD8EB3
|
sceKernelSysrootSetModulePrivateForTZS
| Version |
NID
|
| 0.931-1.80 |
0xEA572BD9
|
sceKernelSysrootSetSharedMemoryForTZS
| Version |
NID
|
| 0.940-1.80 |
0x45EEB2E0
|
sceKernelSysrootGetKermitRevisionForTZS
| Version |
NID
|
| 0.940-1.80 |
0xDB3DAB76
|
sceKernelSysrootGetSharedMemoryForTZS
| Version |
NID
|
| 0.931-3.60 |
0x1C96096F
|
sceKernelSysrootCorelockLockForTZS
| Version |
NID
|
| 0.931-1.80 |
0xD653194A
|
sceKernelSysrootGetVbaseMonitorVectorForTZS
| Version |
NID
|
| 0.931-1.80 |
0xD4E6D8E8
|
sceKernelSysrootGetKernelMMUContextForTZS
| Version |
NID
|
| 0.931-1.80 |
0xA8B7DAF9
|
sceKernelSysrootCorelockUnlockForTZS
| Version |
NID
|
| 0.931-1.80 |
0x2F5FD9A8
|
sceKernelSysrootGetVbaseResetVectorForTZS
| Version |
NID
|
| 0.931-1.80 |
0x2460ADFA
|
sceKernelIsColdBootForTZS
| Version |
NID
|
| 0.940-1.80 |
0x0567B4B9
|
sceKernelIsSecureStateForTZS
| Version |
NID
|
| 0.940 |
0xEFA54B46
|
| 3.60 |
not present
|
sceKernelSysrootGetErnieWakeupFactorForTZS
| Version |
NID
|
| 0.940-1.80 |
0x8E871C6D
|
sceKernelSysrootGetKblParamForTZS
| Version |
NID
|
| 0.931-1.80 |
0x29C1049E
|
Returns pointer to KBL Param buffer.
void *sceKernelSysrootGetKblParamForTZS(void);
sceKernelSysrootAllocForTZS
| Version |
NID
|
| 0.940-1.80 |
0x1A9E1D28
|
void *sceKernelSysrootAllocForTZS(uint32_t size);
sceKernelSysrootGetModelInfoForTZS
| Version |
NID
|
| 3.60 |
0xD6FBF445
|
This is guessed name.
sceSysrootGetSessionIdForTZS
| Version |
NID
|
| 3.60 |
0xCC36643A
|
This is guessed name.
sceKernelSysrootGetSleepFactorForTZS
| Version |
NID
|
| 3.60 |
0x7DA87A7F
|
This is guessed name.
sceKernelSysrootGetCoredumpEncryptionKeyForTZS
| Version |
NID
|
| 3.60 |
0x32546BDB
|
This is guessed name.
SceQafMgrForTZS
sceSblQafManagerIsAllowKernelDebugForTZS
| Version |
NID
|
| 0.990-1.80 |
0x54D22D74
|
return *(char *)(sceKernelSysrootGetKblParamForTZS() + 0x2D) & 1;
ScePmMgrForTZS
sceSblPmMgrGetProductModeForTZS
| Version |
NID
|
| 0.990-3.60 |
0xCF554E69
|
SceSblAIMgrForTZS
sceSblAIMgrIsCEXForTZS
| Version |
NID
|
| 0.990-3.60 |
0x536B38F4
|