Difference between revisions of "SceSysmem"
Jump to navigation
Jump to search
(814 intermediate revisions by 4 users not shown) | |||
Line 2: | Line 2: | ||
== Module == | == Module == | ||
+ | |||
This module exists in both non-secure and secure world. The non-secure world SELF can be found in <code>os0:kd/sysmem.skprx</code>. It also can be found in the [[Boot Sequence|Boot Image]]. | This module exists in both non-secure and secure world. The non-secure world SELF can be found in <code>os0:kd/sysmem.skprx</code>. It also can be found in the [[Boot Sequence|Boot Image]]. | ||
Line 25: | Line 26: | ||
|- | |- | ||
| 0.990-1.692 || [[SceSysmem#SceSysmemForDebugger|SceSysmemForDebugger]] || Non-secure || Kernel || 0xC7309957 | | 0.990-1.692 || [[SceSysmem#SceSysmemForDebugger|SceSysmemForDebugger]] || Non-secure || Kernel || 0xC7309957 | ||
+ | |- | ||
+ | | 1.80-3.74 || [[SceSysmem#SceSysmemForDebugger|SceSysmemForDebugger]] || Non-secure || Kernel || not present. Removed. | ||
|- | |- | ||
| 0.990-3.60 || [[SceSysmem#SceSysmem|SceSysmem]] || Non-secure || User || 0x37FE725A | | 0.990-3.60 || [[SceSysmem#SceSysmem|SceSysmem]] || Non-secure || User || 0x37FE725A | ||
Line 36: | Line 39: | ||
| 3.63-3.65 || [[SceSysmem#SceUartForKernel|SceUartForKernel]] || Non-secure || Kernel || 0x1CCD9BA3 | | 3.63-3.65 || [[SceSysmem#SceUartForKernel|SceUartForKernel]] || Non-secure || Kernel || 0x1CCD9BA3 | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.990-3.740.011 || [[SceSysmem#SceCpu|SceCpu]] || Non-secure || User || 0x45265161 |
|- | |- | ||
| 0.990-3.61 || [[SceSysmem#SceCpuForKernel|SceCpuForKernel]] || Non-secure || Kernel || 0x54BF2BAB | | 0.990-3.61 || [[SceSysmem#SceCpuForKernel|SceCpuForKernel]] || Non-secure || Kernel || 0x54BF2BAB | ||
Line 44: | Line 47: | ||
| 0.990-3.65 || [[SceSysmem#SceCpuForDriver|SceCpuForDriver]] || Non-secure || Kernel || 0x40ECDB0E | | 0.990-3.65 || [[SceSysmem#SceCpuForDriver|SceCpuForDriver]] || Non-secure || Kernel || 0x40ECDB0E | ||
|- | |- | ||
− | | 0.990-1. | + | | 0.990-1.692 || [[SceSysmem#SceSysclibForKernel|SceSysclibForKernel]] || Non-secure || Kernel || 0x24878615 |
|- | |- | ||
− | | 1.80 || [[SceSysmem#SceSysclibForKernel|SceSysclibForKernel]] || Non-secure || Kernel || Removed | + | | 1.80-3.74 || [[SceSysmem#SceSysclibForKernel|SceSysclibForKernel]] || Non-secure || Kernel || not present. Removed. |
|- | |- | ||
| 0.990-3.65 || [[SceSysmem#SceSysclibForDriver|SceSysclibForDriver]] || Non-secure || Kernel || 0x7EE45391 | | 0.990-3.65 || [[SceSysmem#SceSysclibForDriver|SceSysclibForDriver]] || Non-secure || Kernel || 0x7EE45391 | ||
Line 56: | Line 59: | ||
| 0.990-3.65 || [[SceSysmem#SceKernelUtilsForDriver|SceKernelUtilsForDriver]] || Non-secure || Kernel || 0x496AD8B4 | | 0.990-3.65 || [[SceSysmem#SceKernelUtilsForDriver|SceKernelUtilsForDriver]] || Non-secure || Kernel || 0x496AD8B4 | ||
|- | |- | ||
− | | 0.990-1. | + | | 0.990-1.692 || [[SceSysmem#SceZlibForDriver|SceZlibForDriver]] || Non-secure || Kernel || 0xE241534E |
|- | |- | ||
− | | 1.80 || [[SceSysmem#SceZlibForDriver|SceZlibForDriver]] || Non-secure || Kernel || Moved to [[SceSblPostSsMgr]] | + | | 1.80-3.74 || [[SceSysmem#SceZlibForDriver|SceZlibForDriver]] || Non-secure || Kernel || not present. Moved to [[SceSblPostSsMgr#SceZlibForDriver]]. |
|- | |- | ||
| 0.990-3.65 || [[SceSysmem#SceKernelSuspendForDriver|SceKernelSuspendForDriver]] || Non-secure || Kernel || 0x7290B21C | | 0.990-3.65 || [[SceSysmem#SceKernelSuspendForDriver|SceKernelSuspendForDriver]] || Non-secure || Kernel || 0x7290B21C | ||
Line 100: | Line 103: | ||
| 0.931-3.60 || [[SceSysmem#SceSblAIMgrForTZS|SceSblAIMgrForTZS]] || Secure || Kernel || 0x60D19047 | | 0.931-3.60 || [[SceSysmem#SceSblAIMgrForTZS|SceSblAIMgrForTZS]] || Secure || Kernel || 0x60D19047 | ||
|} | |} | ||
+ | |||
+ | 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 == | == Types == | ||
− | + | See [[SceSysmem Types]]. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == SysEvent == | |
− | |||
− | |||
− | |||
− | + | Dispatcher | |
− | |||
− | |||
− | |||
− | |||
− | + | {| class="wikitable sortable mw-collapsible mw-collapsed" | |
− | + | |- | |
+ | ! Module !! Type !! Event !! Description | ||
+ | |- | ||
+ | | [[ScePower]] || 0 || 0x100 || <code>SCE_KERNEL_SYSEVENT_SUSPEND_START</code>. before sceKernelCpuSuspendIntr. | ||
+ | |- | ||
+ | | [[ScePower]] || 0 || 0x101 || unknown | ||
+ | |- | ||
+ | | [[ScePower]] || 0 || 0x102 || unknown. later sceKernelCpuResumeIntr. | ||
+ | |- | ||
+ | | [[ScePower]] || 0 || 0x20F -> 0x200 || <code>SCE_KERNEL_SYSEVENT_SUSPEND_PHASE2</code>. after sceKernelCpuResumeIntr. | ||
+ | |- | ||
+ | | [[ScePower]] || 0 || 0x400 || <code>SCE_KERNEL_SYSEVENT_SUSPEND_PHASE1_START</code>. | ||
+ | |- | ||
+ | | [[ScePower]] || 0 || 0x401 || <code>SCE_KERNEL_SYSEVENT_SUSPEND_PHASE1_MAIN</code>. (this is a guessed name. but should be official name) | ||
+ | |- | ||
+ | | [[ScePower]] || 0 || 0x402 || <code>SCE_KERNEL_SYSEVENT_SUSPEND_PHASE1_END</code>. (this is a guessed name) | ||
+ | |- | ||
+ | | [[ScePower]] || 1 || 0x1000 || <code>SCE_KERNEL_SYSEVENT_SUSPEND_FREEZE_TIME</code>. | ||
+ | |- | ||
+ | | [[ScePower]] || 1 || 0x400F -> 0x4000 || <code>SCE_KERNEL_SYSEVENT_SUSPEND_PHASE0</code>. | ||
+ | |- | ||
+ | | [[ScePower]] || 1 || 0x10000 -> 0x1000F || <code>SCE_KERNEL_SYSEVENT_RESUME_PHASE0</code>. | ||
+ | |- | ||
+ | | [[ScePower]] || 1 || 0x40000 || <code>SCE_KERNEL_SYSEVENT_RESUME_MELT_TIME</code>. before sceKernelCpuResumeIntr. | ||
+ | |- | ||
+ | | [[ScePower]] || 1 || 0x100000 || <code>SCE_KERNEL_SYSEVENT_RESUME_PHASE1_START</code>. after sceKernelCpuResumeIntr. | ||
+ | |- | ||
+ | | [[ScePower]] || 1 || 0x100001 || <code>SCE_KERNEL_SYSEVENT_RESUME_PHASE1_MAIN</code>. | ||
+ | |- | ||
+ | | [[ScePower]] || 1 || 0x100002 || <code>SCE_KERNEL_SYSEVENT_RESUME_PHASE1_END</code>. (this is a guessed name) | ||
+ | |- | ||
+ | | [[ScePower]] || 1 || 0x400000 || <code>SCE_KERNEL_SYSEVENT_RESUME_COMPLETED | ||
+ | |} | ||
− | + | Handler | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | {| class="wikitable sortable mw-collapsible mw-collapsed" | |
− | + | |- | |
− | + | ! Module !! Type !! Event !! Description | |
− | + | |- | |
− | + | | [[SceAppMgr]] || 0 || 0x20F || _sceAppMgrSystemSuspend | |
− | + | |- | |
− | + | | [[SceAppMgr]] || 1 || 0x400000 || _sceAppMgrSystemResume | |
− | + | |- | |
− | + | | [[SceAudio]] || 0 || 0x1000 || Something | |
− | + | |- | |
− | + | | [[SceAudio]] || 0 || 0x400F || Something | |
− | + | |- | |
− | + | | [[SceAudio]] || 0 || 0x102 || Something | |
− | + | |- | |
− | + | | [[SceAudio]] || 1 || 0x1000F || Something | |
− | + | |- | |
− | + | | [[SceAudioin]] (SceAudioIn) || 0 || 0x102 || Something | |
− | + | |- | |
− | + | | [[SceAudioin]] (SceAudioIn) || 1 || 0x1000F || Something | |
− | + | |- | |
− | + | | [[SceAVConfig]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceAVConfig]] || 1 || 0x400000 || Something | |
− | + | |- | |
− | + | | [[SceAVConfig]] || 1 || 0x1000F || Something | |
− | + | |- | |
− | + | | [[SceAVConfig]] || 1 || 0x100001 || Something | |
− | + | |- | |
− | + | | [[SceBt]] || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceBt]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceBt]] || 1 || 0x100001 || Something | |
− | + | |- | |
− | + | | [[SceBt]] || 1 || 0x100002 || Something | |
− | + | |- | |
− | + | | [[SceCamera]] || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceCamera]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceCamera]] || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceCamera]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceCamera]] || 1 || 0x100002 || Something | |
− | + | |- | |
− | + | | [[SceClockgen]] || 1 || 0x10000 || Something | |
− | + | |- | |
− | + | | [[SceClockgen]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceCodec]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceCodec]] || 1 || 0x10000 || Something | |
− | + | |- | |
− | + | | [[SceCodecEngineWrapper]] || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceCodecEngineWrapper]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceCodecEngineWrapper]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceCodecEngineWrapper]] || 0 || 0x400E || Something | |
− | + | |- | |
− | + | | [[SceCodecEngineWrapper]] || 1 || 0x1000E || Something | |
− | + | |- | |
− | + | | [[SceCodecEngineWrapper]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceCompat]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceCtrl]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceCtrl]] || 0 || 0x400C || Something | |
− | + | |- | |
− | + | | [[SceCtrl]] || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceCtrl]] || 1 || 0x1000C || Something | |
− | + | |- | |
− | + | | [[SceDbgSdio]] (SceDbgSdio1) || 0 || 0x102 || Something | |
− | + | |- | |
− | + | | [[SceDbgSdio]] (SceDbgSdio1) || 0 || 0x4003 || Something | |
− | + | |- | |
− | + | | [[SceDbgSdio]] (SceDbgSdio1) || 1 || 0x10003 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDbgp]] || 0 || 0x102 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDbgp]] || 0 || 0x4000 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDbgp]] || 1 || 0x10000 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDbgp]] || 1 || 0x400000 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDfMgr]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDfMgr]] || 0 || 0x100 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDfMgr]] || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDfMgr]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDfMgr]] || 1 || 0x100002 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDfMgr]] || 1 || 0x400000 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDfMgr]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDrfp]] || 0 || any || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDtracep]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDtracep]] || 0 || 0x1000 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDtracep]] || 1 || 0x40000 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pDtracep]] || 1 || 0x100002 || Something | |
− | + | |- | |
− | + | | [[SceDeci4pSDfCtl]] || 0 || 0x102 || Something | |
− | + | |- | |
− | + | | [[SceDisplay]] || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceDisplay]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceDisplay]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceDisplay]] || 0 || 0x400A || Something | |
− | + | |- | |
− | + | | [[SceDisplay]] || 1 || 0x40000 || Something | |
− | + | |- | |
− | + | | [[SceDisplay]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceDisplay]] || 1 || 0x1000A || Something | |
− | + | |- | |
− | + | | [[SceError]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceError]] || 1 || 0x100001 || Something | |
− | + | |- | |
− | + | | [[SceGps]] (SceGpsd) || 0 || 0x102 || Something | |
− | + | |- | |
− | + | | [[SceGps]] (SceGpsd) || 1 || 0x400000 || Something | |
− | + | |- | |
− | + | | [[SceGpuEs4]] (SceGpu) || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceGpuEs4]] (SceGpu) || 0 || 0x4005 || Something | |
− | + | |- | |
− | + | | [[SceGpuEs4]] (SceGpu) || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceGpuEs4]] (SceGpu) || 1 || 0x10005 || Something | |
− | + | |- | |
− | + | | [[SceHdmi]] || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceHdmi]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceHdmi]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceHid]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceHid]] || 0 || 0x4000 || Something | |
− | + | |- | |
− | + | | [[SceHid]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceHid]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceHpremote]] (SceHprm) || 1 || 0x1000C || Something | |
− | + | |- | |
− | + | | [[SceIdStorage]] || ? || ? || Something | |
− | + | |- | |
− | + | | [[SceIofilemgr]] || 0 || 0x401 || vfs_sync_all_mount_point | |
− | + | |- | |
− | + | | [[SceIofilemgr]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceIofilemgr]] || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceIofilemgr]] || 1 || 0x10000 || Something | |
− | + | |- | |
− | + | | [[SceIofilemgr]] || 1 || 0x400000 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (ScePervasive) || 1 || 0x10000 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceGpio) || 1 || 0x10002 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (ScePwm) || 0 || 0x4002 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (ScePwm) || 1 || 0x10002 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceI2c) || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceI2c) || 0 || 0x4002 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceI2c) || 1 || 0x10002 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceDsi) || 0 || 0x4004 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceIftu) || 0 || 0x4005 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceIftu) || 1 || 0x10005 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceCsi) || 0 || 0x4004 || Something | |
− | + | |- | |
− | + | | [[SceLowio]] (SceCsi) || 1 || 0x10004 || Something | |
− | + | |- | |
− | + | | [[SceMotionDev]] (SceMotion) || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceMotionDev]] (SceMotion) || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceMotionDev]] (SceMotion) || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceMotionDev]] (SceMotion) || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceMotionDev]] (SceMotion) || 1 || 0x100002 || Something | |
− | + | |- | |
− | + | | [[SceMsif]] || 0 || 0x400C || Something | |
− | + | |- | |
− | + | | [[SceMsif]] || 1 || 0x1000C || Something | |
− | + | |- | |
− | + | | [[SceNetPs]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceNetPs]] || 1 || 0x400000 || Something | |
− | + | |- | |
− | + | | [[SceOled]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceOled]] || 0 || 0x4003 || Something | |
− | + | |- | |
− | + | | [[SceOled]] || 1 || 0x10003 || Something | |
− | + | |- | |
− | + | | [[ScePfsMgr]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[ScePower]] (ScePower) || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[ScePower]] (ScePower) || 0 || 0x4009 || Something | |
− | + | |- | |
− | + | | [[ScePower]] (ScePower) || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[ScePower]] (ScePower) || 1 || 0x10009 || Something | |
− | + | |- | |
− | + | | [[ScePower]] (ScePower) || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[ScePower]] (SceLed) || 0 || 0x102 || Something | |
− | + | |- | |
− | + | | [[ScePower]] (SceLed) || 0 || 0x400A || Something | |
− | + | |- | |
− | + | | [[ScePower]] (SceLed) || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceRtc]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceRtc]] || 0 || 0x1000 || Something | |
− | + | |- | |
− | + | | [[SceRtc]] || 1 || 0x1000A || Something | |
− | + | |- | |
− | + | | [[SceRtc]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceSblSmSchedProxy]] || 1 || 0x10004 || Something | |
− | + | |- | |
− | + | | [[SceSblSsMgr]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceSblSsMgr]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceSblUpdateMgr]] || 0 || any || Something | |
− | + | |- | |
− | + | | [[SceSdif]] || 0 || 0x400C || Something | |
− | + | |- | |
− | + | | [[SceSdif]] || 1 || 0x10009 || resume eMMC with sdif reset | |
− | + | |- | |
− | + | | [[SceSdif]] || 1 || 0x1000C || resume eMMC | |
− | + | |- | |
− | + | | [[SceSdstor]] || 0 || 0x200 || Umount 0x900/0xA00/0x100. invalidate gc sdpart str. | |
− | + | |- | |
− | + | | [[SceSdstor]] || 0 || 0x400D || disable intr/power off for gc/rm | |
− | + | |- | |
− | + | | [[SceSdstor]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceSdstor]] || 1 || 0x400000 || Something | |
− | + | |- | |
− | + | | [[SceSyscon]] || 0 || 0x4006 || Something | |
− | + | |- | |
− | + | | [[SceSyscon]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceSyscon]] || 0 || 0x400F || Something | |
− | + | |- | |
− | + | | [[SceSyscon]] || 1 || 0x10006 || Something | |
− | + | |- | |
− | + | | [[SceSyscon]] || 1 || 0x1000F || Something | |
− | + | |- | |
− | + | | [[SceTouch]] || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceTouch]] || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceTouch]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceTouch]] || 0 || 0x400C || Something | |
− | + | |- | |
− | + | | [[SceTouch]] || 1 || 0x1000C || Something | |
− | + | |- | |
− | + | | [[SceTouch]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceUsbEtherRtl]] || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceUsbEtherRtl]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceUsbEtherRtl]] || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceUsbEtherSmsc]] || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceUsbEtherSmsc]] || 0 || 0x402 || Something | |
− | + | |- | |
− | + | | [[SceUsbEtherSmsc]] || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceUsbServ]] || 0 || 0x200 || Something | |
− | + | |- | |
− | + | | [[SceUsbServ]] || 0 || 0x400E || Something | |
− | + | |- | |
− | + | | [[SceUsbServ]] || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceUsbServ]] || 1 || 0x100002 || Something | |
− | + | |- | |
− | + | | [[SceWlanBt]] (SceWlanBtRobin) || 0 || 0x401 || Something | |
− | + | |- | |
− | + | | [[SceWlanBt]] (SceWlanBtRobin) || 0 || 0x400 || Something | |
− | + | |- | |
− | + | | [[SceWlanBt]] (SceWlanBtRobin) || 1 || 0x100000 || Something | |
− | + | |- | |
− | + | | [[SceWlanBt]] (SceWlanBtRobin) || 1 || 0x100002 || Something | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == SceSysmemForKernel == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === SceSysmemForKernel_A7D44B50 === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! 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]]. | |
− | |||
− | |||
− | |||
− | + | <source lang="C">int SceSysmemForKernel_A7D44B50(void* pBusErrorClearFunc);</source> | |
− | |||
− | |||
− | |||
− | + | === sceKernelSysmemModuleStartAfterProcessmgrForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
+ | | 3.600.011-3.610.011 || 0xE7938BFB | ||
+ | |- | ||
+ | | 3.630.011-3.740.011 || 0x4E74DA48 | ||
+ | |} | ||
− | + | Temp name was sceKernelInitProcessMemoryForKernel. | |
− | |||
− | |||
− | |||
− | + | Used by [[SceProcessmgr]]. | |
− | |||
− | |||
− | |||
− | + | <source lang="C">int sceKernelSysmemModuleStartAfterProcessmgrForKernel(void);</source> | |
− | |||
− | |||
− | + | === sceKernelSysmemCleanerForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 3.60-3.61 || 0x43E81C4B | |
− | + | |- | |
− | + | | 3.63 || 0x50980298 | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | + | Only implemented in sysdbg build. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <source lang="C">int sceKernelSysmemCleanerForKernel(void);</source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === sceKernelStrnlenFromUserForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
+ | |- | ||
+ | | 0.931 || 0x9BC3DEAC | ||
+ | |- | ||
+ | | 3.60 || not present | ||
+ | |} | ||
− | + | <source lang="C">SceSize sceKernelStrnlenFromUserForKernel(const char *s, SceSize maxlen);</source> | |
− | |||
− | |||
− | |||
− | + | === sceKernelPhysicalMemWriteForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 0.931.010-1.060.031 || 0x4B86A751 | |
− | + | |- | |
− | + | | 1.50-3.740.011 || not present | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | + | Writes to physical address <code>pdest</code> using a pre-allocated memblock. Destination must belong into a hardcoded table describing physical ranges. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <source lang="C">SceSSize sceKernelPhysicalMemWriteForKernel(SceUIntPAddr pdest, const void *src, SceSize size);</source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === sceKernelPhysicalMemReadForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! 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. | |
− | |||
− | |||
− | |||
− | |||
− | + | <source lang="C">int sceKernelPhysicalMemReadForKernel(void *dest, const void *src, SceSize dest_size, SceSize src_size);</source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === sceKernelCopyFromUser32DomainForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 0.931 || 0xD530399A | |
− | + | |- | |
− | + | | 3.60 || not present | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | + | <source lang="C">int sceKernelCopyFromUser32DomainForKernel(SceUID pid, void *dst, const void *src, SceSize size);</source> | |
− | |||
− | |||
− | |||
− | + | === sceKernelCopyToUserProcTextDomainForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 0.931-3.60 || 0x30931572 | |
− | } | + | |- |
+ | | 3.65 || 0x2995558D | ||
+ | |} | ||
− | + | Temp name was sceKernelRxMemcpyKernelToUserForPidForKernel, sceKernelProcCopyToUserRxForKernel. | |
− | + | Same as [[SceSysmem#sceKernelCopyToUserProcDomainForDriver|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. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <source lang="c">SceInt32 sceKernelCopyToUserProcTextDomainForKernel(SceUID pid, void *uaddr, const void *kaddr, SceSize size);</source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === sceKernelCopyToUserProcTextDomainForDBGPForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 3.60-3.61 || 0xE65EA709 | |
− | + | |- | |
− | + | | 3.63 || 0x4345C61F | |
− | } | + | |} |
− | / | + | <source lang="C">int sceKernelCopyToUserProcTextDomainForDBGPForKernel(SceUID pid, void *dst, const void *src, SceSize length);</source> |
− | |||
− | |||
− | |||
− | + | === sceKernelCopyToUserTextDomainForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 3.60 || 0x67BAD5B4 | |
− | + | |- | |
− | } | + | | 3.65 || 0x5EF1DAAF |
+ | |} | ||
− | + | This is a guessed name. Temp name was sceKernelMemcpyToUserRxForKernel, sceKernelCopyToUserRxForKernel. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Similar to [[SceSysmem#sceKernelCopyToUserProcTextDomainForKernel|sceKernelCopyToUserProcTextDomain]], but performed in the current address space. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | In FW 3.60, [[SceSysmem#sceKernelCopyToUserProcTextDomainForKernel|sceKernelCopyToUserProcTextDomain]] calls this function to perform the copy after changing address space. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <source lang="c">SceInt32 sceKernelCopyToUserTextDomainForKernel(void *dst, const void *src, SceSize len);</source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === sceKernelCopyToUserDomainForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! 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 [[SceSysmem#sceKernelCopyToUserTextDomainForKernel|sceKernelCopyToUserTextDomain]], but doesn't perform any DCache clean. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Uses the same DACR, 0x15450FC3, for the copy. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <source lang="c">int sceKernelCopyToUserDomainForKernel(void *dst, const void *src, SceSize len);</source> | |
− | + | === sceKernelRegisterClassForKernel === | |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.990 || 0x11761B77 | ||
+ | |- | ||
+ | | 3.60 || not present | ||
+ | |} | ||
− | + | === sceKernelFindClassByNameForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 3.60 || 0x62989905 | |
− | + | |- | |
− | + | | 3.65 || 0x7D87F706 | |
− | + | |} | |
− | |||
− | |||
− | } | ||
− | |||
− | = | + | <source lang="c">int sceKernelFindClassByNameForKernel(const char *name, SceClass **ppClass);</source> |
− | + | === sceKernelGetUIDHeapClassForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 3.60-3.61 || 0x4CCA935D | |
− | + | |- | |
− | + | | 3.63 || 0x7C878E94 | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | |||
− | + | <source lang="c">SceClass *sceKernelGetUIDHeapClassForKernel(void);</source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | <source lang=" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | === sceKernelGetUIDMemBlockClassForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Version !! NID |
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xAF729575 |
|- | |- | ||
− | | | + | | 3.63 || 0x86681B64 |
+ | |} | ||
+ | |||
+ | <source lang="c">SceClass *sceKernelGetUIDMemBlockClassForKernel(void);</source> | ||
+ | |||
+ | === sceKernelGetUIDDLinkClassForKernel === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Version !! NID | |
|- | |- | ||
− | | | + | | 0.990-3.610.011 || 0xC105604E |
|- | |- | ||
− | | | + | | 3.630.011-3.740.011 || 0xE4193EB6 |
+ | |} | ||
+ | |||
+ | <source lang="c">SceClass *sceKernelGetUIDDLinkClassForKernel(void);</source> | ||
+ | |||
+ | === sceKernelGetUIDAddressSpaceClassForKernel === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Version !! NID | |
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xAF180A3F |
|- | |- | ||
− | | | + | | 3.63 || 0x99D3BF76 |
+ | |} | ||
+ | |||
+ | This is a guessed name. | ||
+ | |||
+ | <source lang="C">SceClass *sceKernelGetUIDAddressSpaceClassForKernel(void);</source> | ||
+ | |||
+ | === sceKernelGetUIDPartitionClassForKernel === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Version !! NID | |
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x2791F109 |
|- | |- | ||
− | | | + | | 3.63 || 0x5C0FC6BE |
+ | |} | ||
+ | |||
+ | This is a guessed name. | ||
+ | |||
+ | <source lang="C">SceClass *sceKernelGetUIDPartitionClassForKernel(void);</source> | ||
+ | |||
+ | === sceUIDDLinkClassInitForKernel === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Version !! NID | |
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x21285F40 |
|- | |- | ||
− | | | + | | 3.63 || 0x7CDB7655 |
− | | | ||
− | | | ||
|} | |} | ||
+ | Temp name was sceKernelCreateClassForKernel, sceUIDClassInitClassForKernel. | ||
+ | Calls [[SceSysmem#sceUIDClassInitClassForDriver|sceUIDClassInitClassForDriver]]. | ||
− | + | <source lang="C">int sceUIDDLinkClassInitForKernel(SceClass *pClass, const char *name, SceClass *subclass, SceSize itemsize, void *cstr, void *dstr);</source> | |
+ | === sceUIDClassGetClassInfoAllForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
− | |||
|- | |- | ||
− | + | ! 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. | ||
+ | |||
+ | <source lang="C"> | ||
+ | typedef struct SceClassInfo { | ||
+ | SceSize size; | ||
+ | SceClass *pClass; | ||
+ | SceClass *pSubClass; | ||
+ | const char *name; | ||
+ | } SceClassInfo; | ||
+ | |||
+ | int sceUIDClassGetClassInfoAllForKernel(SceClassInfo *vector, uint32_t maxNumClass, uint32_t *pNumClassInBuf); | ||
+ | </source> | ||
+ | |||
+ | === sceKernelCreateAddressSpaceForKernel === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Version !! NID | |
|- | |- | ||
− | | | + | | 0.990-3.60 || 0x4A3737F0 |
|- | |- | ||
− | | | + | | 3.65 || 0x8EE89D2C |
+ | |} | ||
+ | |||
+ | <source lang="C"> | ||
+ | // type: 0x10000001 (user AS) | ||
+ | // name: maybe titleid | ||
+ | SceUID sceKernelCreateAddressSpaceForKernel(SceUID pid, const char *name, SceUInt32 type, SceKernelCreateAddressSpaceOpt *pOpt); | ||
+ | </source> | ||
+ | |||
+ | === sceKernelDeleteAddressSpaceForKernel === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Version !! NID | |
|- | |- | ||
− | | | + | | 0.931-3.60 || 0xF2D7FE3A |
|- | |- | ||
− | | | + | | 3.65 || 0x4A2E421D |
+ | |} | ||
+ | |||
+ | <source lang="C">int sceKernelDeleteAddressSpaceForKernel(SceUID guid);</source> | ||
+ | |||
+ | === sceKernelAddressSpaceSetNameForKernel === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Version !! NID | |
|- | |- | ||
− | | | + | | 0.990-1.50 || not present |
|- | |- | ||
− | | | + | | 3.60 || 0x7BD56D6D |
|- | |- | ||
− | | | + | | 3.65 || 0xCEBC4963 |
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
− | + | Used by [[SceProcessmgr]]. | |
− | + | <source lang="C">int sceKernelAddressSpaceSetNameForKernel(SceUID guid, const char *name);</source> | |
− | + | === sceKernelAddressSpaceSetPhyMemPartForKernel === | |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-3.60 || 0x67955EE9 | ||
+ | |- | ||
+ | | 3.65 || 0x7DF07D60 | ||
+ | |} | ||
− | + | <source lang="C">int sceKernelAddressSpaceSetPhyMemPartForKernel(SceUID guid, SceUInt32 index, SceKernelPhyMemPart *pPhyMemPart);</source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === sceKernelAddressSpaceCtrSetObjectHeapForKernel === | |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60-3.61 || 0xFC74A355 | ||
+ | |- | ||
+ | | 3.63 || 0xFA348CB1 | ||
+ | |} | ||
− | + | === sceKernelAddressSpaceFreeAllMemBlockForKernel === | |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-3.60 || 0x89CE1F31 | ||
+ | |- | ||
+ | | 3.65 || 0x36159CF5 | ||
+ | |} | ||
− | + | <source lang="C">int sceKernelAddressSpaceFreeAllMemBlockForKernel(SceUID guid);</source> | |
− | |||
− | |||
− | |||
− | |||
− | + | === sceKernelAddressSpaceUnmapForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 0.931-3.61 || 0xCE72839E | |
− | + | |- | |
− | + | | 3.63 || 0x73C38695 | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <source lang="C"> | ||
+ | # For FW 0.931: | ||
+ | int sceKernelAddressSpaceUnmapForKernel(SceUID uid, int a2, void* addr, SceSize size); | ||
+ | # For FW 3.60: | ||
+ | int sceKernelAddressSpaceUnmapForKernel(SceUID uid, int a2, int a3, void* addr, SceSize size); | ||
+ | </source> | ||
− | + | Example: 0.990 [[SceSysStateMgr]]: | |
+ | <source lang="C"> | ||
+ | sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF7, 0x51000000, 0x1000000); | ||
+ | sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF0, 0xE0000000, 0x8000000); | ||
+ | sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF0, 0x1A000000, 0x100000); | ||
+ | </source> | ||
− | / | + | Example: 3.60 [[SceSysStateMgr]]: |
− | + | <source lang="C"> | |
+ | sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF7, 0xC, 0x51000000, 0x1000000); | ||
+ | sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF0, 0xC, 0xE0000000, 0x8000000); | ||
+ | sceKernelAddressSpaceUnmapForKernel(0x10007, 0xF0, 0xC, 0x1A000000, 0x100000); | ||
+ | </source> | ||
− | + | === sceKernelAddressSpaceSetProcessForKernel === | |
− | + | {| class="wikitable" | |
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.990-3.61 || 0x2476B90F | ||
+ | |- | ||
+ | | 3.63 || 0x5E772E19 | ||
+ | |} | ||
− | / | + | <source lang="C">int sceKernelAddressSpaceSetProcessForKernel(SceUID address_space, SceUID pid);</source> |
− | |||
− | + | === sceKernelAddressSpaceChangeMMUContextForKernel === | |
− | + | {| class="wikitable" | |
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-3.61 || 0x653B0849 | ||
+ | |- | ||
+ | | 3.63 || 0x20D01AFA | ||
+ | |} | ||
− | + | Changes to the MMU context (CONTEXTIDR.ASID + DACR + TTBR1) of target address space. | |
− | |||
− | / | + | <source lang="C">SceInt32 sceKernelAddressSpaceChangeMMUContextForKernel(SceUID address_space);</source> |
− | |||
− | + | === sceKernelAddressSpaceGetMMUContextForKernel === | |
− | + | {| class="wikitable" | |
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.990 || not present | ||
+ | |- | ||
+ | | 3.10-3.61 || 0x9894B9E1 | ||
+ | |- | ||
+ | | 3.63 || 0xA7C91D62 | ||
+ | |} | ||
− | + | This is a guessed name. | |
− | |||
− | + | <source lang="C">int sceKernelGetAddressSpaceMMUContextForKernel(SceUID address_space, SceKernelMMUContext **ppCtx);</source> | |
− | |||
− | + | === SceSysmemForKernel_FBEF93AA === | |
− | + | {| class="wikitable" | |
+ | |- | ||
+ | ! 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]]. | |
− | # | ||
− | + | <source lang="C">int SceSysmemForKernel_FBEF93AA(SceUID address_space, void* pOut);</source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === sceKernelAddressSpaceGetTimerVbaseForKernel === | |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.990 || not present | ||
+ | |- | ||
+ | | 0.996.090-3.610.011 || 0x7D92B2D3 | ||
+ | |- | ||
+ | | 3.630.011-3.740.011 || 0xFA1A73DD | ||
+ | |} | ||
− | + | <source lang="C">int sceKernelAddressSpaceGetTimerVbaseForKernel(SceUID address_space, void **ppBase);</source> | |
− | |||
− | |||
− | + | === sceKernelGetAddressSpaceInfoForKernel === | |
− | + | {| class="wikitable" | |
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.990.000-3.610.011 || 0x4492421F | ||
+ | |- | ||
+ | | 3.630.011-3.740.011 || 0xC3EF4055 | ||
+ | |} | ||
− | + | This is a guessed name.. | |
− | |||
− | + | <source lang="C">int sceKernelGetAddressSpaceInfoForKernel(SceUID address_space, SceKernelAddressSpaceInfo *pInfo);</source> | |
− | |||
− | + | === sceKernelAddressSpaceGetMMUL1InfoForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! 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 <code>addr</code>. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <source lang="C">SceInt32 sceKernelAddressSpaceGetMMUL1InfoForKernel(SceUID address_space, const void *addr, SceKernelMMUL1Info *pInfo);</source> | |
− | + | === sceKernelAddressSpaceGetMMUL2InfoForKernel === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931 || | + | | 0.931 || 0xCB6E1C80 |
|- | |- | ||
| 3.60 || not present | | 3.60 || not present | ||
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">int sceKernelAddressSpaceGetMMUL2InfoForKernel(SceUID address_space, const void *addr, void *pInfo);</source> |
− | === | + | === sceKernelAddressSpaceGetMMUL1AllInfoForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931 || | + | | 0.931-0.990 || 0x1A898F2E |
|- | |- | ||
| 3.60 || not present | | 3.60 || not present | ||
|} | |} | ||
− | + | <source lang="C"> | |
+ | 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);</source> | |
− | === | + | === sceKernelAddressSpaceGetMMUL2AllInfoForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 0.931 || 0x1E1AA29B |
+ | |- | ||
+ | | 3.60 || not present | ||
|} | |} | ||
− | <source lang="C"> | + | <source lang="C"> |
+ | 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);</source> |
+ | |||
+ | === sceKernelAddressSpaceGetMemoryTypeForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.990-3.61 || 0xCC7BB240 |
+ | |- | ||
+ | | 3.63 || 0x0B5A3E93 | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelAddressSpaceGetMemoryTypeForKernel(uint32_t *memory_type);</source> |
− | === | + | === sceKernelAddressSpaceVAtoPAForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.990-3.61 || 0xF2179820 |
+ | |- | ||
+ | | 3.63 || 0x1BAF8C0B | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelAddressSpaceVAtoPAForKernel(SceAddressSpace *pAS, SceUInt32 mode, void *pVA, void **pPA);</source> |
− | === | + | === sceKernelAddressSpaceVARangeToPAVectorForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.990-3.61 || 0xF7250E6C |
+ | |- | ||
+ | | 3.63 || 0xA541E0CF | ||
|} | |} | ||
− | + | <source lang="C">int sceKernelAddressSpaceVARangeToPAVectorForKernel(SceUID address_space, const SceKernelVARange *vRange, SceKernelPAVector *pPAV);</source> | |
− | + | === sceKernelAddressSpaceGetPhyMemPartByIndexForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x3F74E45C |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x47C55DCC |
|} | |} | ||
− | + | <source lang="C">int sceKernelAddressSpaceGetPhyMemPartByIndexForKernel(SceUInt32 index, void **result);</source> | |
− | |||
− | <source lang="C">int | ||
− | === | + | === sceKernelAddressSpaceGetPartitionByIndexForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x210DB518 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x1F84FE44 |
|} | |} | ||
− | This is a | + | This is a guessed name. |
− | + | <source lang="C">SceUIDPartitionObject *sceKernelAddressSpaceGetPartitionByIndexForKernel(void *pAS, int pindex);</source> | |
− | + | === sceKernelAddressSpaceGetMemBlockInfoByAddrForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x46A5CB84 |
+ | |- | ||
+ | | 3.63 || 0xC3F9607E | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelAddressSpaceGetMemBlockInfoByAddrForKernel(SceUID asid, int a2, int a3, int a4);</source> |
− | === | + | === sceKernelCheckAddressSpaceForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x8B07BB52 |
+ | |- | ||
+ | | 3.63 || 0x16A54BFE | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | <source lang="C"> | + | <source lang="C">int sceKernelCheckAddressSpaceForKernel(void);</source> |
− | === | + | === sceKernelGetKernelAddressSpaceForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 1.500.151-3.610.011 || 0xC38B4D52 |
|- | |- | ||
− | | 3. | + | | 3.630.011-3.740.011 || 0x2E5CC243 |
|} | |} | ||
− | + | <source lang="C">void* sceKernelGetKernelAddressSpaceForKernel(void);</source> | |
− | + | === sceKernelCreatePhyMemPartForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931 || | + | | 0.931-3.61 || 0x2E36E0C4 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xA2DFA383 |
|} | |} | ||
− | <source lang="C">int | + | Calls [[#sceKernelCreatePhyMemPartByPbaseForKernel]] with pbase = 0. |
+ | |||
+ | <source lang="C">int sceKernelCreatePhyMemPartForKernel(const char *name, int type, SceSize psize, SceKernelPhyMemPart **pPhyMemPart);</source> | ||
− | === | + | === sceKernelCreatePhyMemPartByPbaseForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931- | + | | 0.931-3.61 || 0x63D83911 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x5CC56F87 |
|} | |} | ||
<source lang="C"> | <source lang="C"> | ||
− | + | /* | |
− | + | 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 | + | int sceKernelCreatePhyMemPartByPbaseForKernel(const char *name, int type, void *pbase, SceSize psize, SceKernelPhyMemPart **ppPhyMemPart); |
+ | </source> | ||
− | === | + | === sceKernelDeletePhyMemPartForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931 || | + | | 0.931-3.61 || 0x2AEA9E09 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x3F72B2E7 |
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">int sceKernelDeletePhyMemPartForKernel(SceKernelPhyMemPart *pPhyMemPart);</source> |
− | + | ||
− | + | === sceKernelGetPhyMemPartAllForKernel === | |
− | |||
− | |||
− | |||
− | int | ||
− | |||
− | === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-3.61 || | + | | 0.931-3.61 || 0x2F6F9C2C |
|- | |- | ||
− | | 3.63 | + | | 3.63 || 0x021053DD |
|} | |} | ||
− | + | <source lang="C">int sceKernelGetPhyMemPartAllForKernel(SceUInt32 vis_level, SceUID *pVector, SceSize vectorSize, SceUInt32 *ret_num);</source> | |
− | |||
− | <source lang="C"> | ||
− | === | + | === sceKernelGetPhyMemPartInfoForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931-0.990 || 0x67849418 |
|- | |- | ||
− | | 3. | + | | 3.60 || not present |
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">int sceKernelGetPhyMemPartInfoForKernel(SceKernelPhyMemPart *pPhyMemPart, SceKernelPhyMemPartInfo *pInfo);</source> |
− | === | + | === sceKernelGetPhyMemPartInfoByIDForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931-3.61 || 0xF4FA0575 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x029F5989 |
|} | |} | ||
− | + | <source lang="C"> | |
+ | 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); | |
− | |||
− | |||
− | int | ||
</source> | </source> | ||
− | === | + | === sceKernelGetPhyMemPartInfoCoreForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 0.931 || not present |
+ | |- | ||
+ | | 0.990-3.61 || 0x3650963F | ||
|- | |- | ||
− | | 3.63 || | + | | 3.63-3.65 || 0xB9B69700 |
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">int sceKernelGetPhyMemPartInfoCoreForKernel(SceKernelPhyMemPart *pPhyMemPart, ScePhyMemPartInfoCore *pInfo);</source> |
− | === | + | === sceKernelGetPhyMemPartInfoForDebuggerForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60-3.61 || | + | | 0.990-1.50 || not present |
+ | |- | ||
+ | | 3.60-3.61 || 0x54E85275 | ||
|- | |- | ||
− | | 3.63 || | + | | 3.63 || 0x73E03A38 |
|} | |} | ||
− | <source lang="C"> | + | info size is 0xB0-bytes. |
+ | |||
+ | <source lang="C">int sceKernelGetPhyMemPartInfoForDebuggerForKernel(SceKernelPhyMemPart *pPhyMemPart, void *pInfo);</source> | ||
− | === | + | === sceKernelGrowPhyMemPartForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | + | | 0.990-3.61 || 0x6B3F4102 | |
− | |||
− | | 0.990-3.61 || | ||
|- | |- | ||
− | | 3.63 | + | | 3.63 || 0x5B434019 |
|} | |} | ||
− | <source lang="C">int | + | Calls sceKernelGrowPhyMemPartWithFlagsForKernel with flags = 0. |
+ | |||
+ | <source lang="C">int sceKernelGrowPhyMemPartForKernel(SceKernelPhyMemPart *pPhyMemPart, SceSize psize);</source> | ||
− | === | + | === sceKernelGrowPhyMemPartByPbaseForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990 || not present |
+ | |- | ||
+ | | 3.60-3.61 || 0x775AA5E3 | ||
+ | |- | ||
+ | | 3.63 || 0x36FDA794 | ||
|} | |} | ||
− | + | Temp name was sceKernelGrowPhyMemPartWithFlagsForKernel. | |
+ | |||
+ | Grows physical memory partition with pbase. | ||
− | <source lang="C"> | + | <source lang="C">int sceKernelGrowPhyMemPartByPbaseForKernel(SceKernelPhyMemPart *pPMP, SceUIntPtr pbase, SceSize psize);</source> |
− | |||
− | |||
− | |||
− | |||
− | </source> | ||
− | === | + | === sceKernelGetGrownPhyMemPartSizeForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990 || not present |
+ | |- | ||
+ | | 3.60-3.61 || 0x4D809B47 | ||
+ | |- | ||
+ | | 3.63 || 0xBC36755F | ||
|} | |} | ||
− | <source lang="C"> | + | This is a guessed name. |
− | + | ||
− | int | + | Returns a global variable. This global variable is either a size or offset or address and is incremented by sceKernelGrowPhyMemPartWithFlagsForKernel. |
− | </source> | + | |
+ | <source lang="C">int sceKernelGetGrownPhyMemPartSizeForKernel(void);</source> | ||
− | === | + | === SceSysmemForKernel_153A08A0 === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-3.61 || 0x153A08A0 |
+ | |- | ||
+ | | 3.63 || 0x6D563733 | ||
|} | |} | ||
− | <source lang="C"> | + | Adds 1 to <code>pPhyMemPart->nClient</code> using [[SceSysmem#sceKernelCpuAtomicAddAndGet32ForDriver]], and returns its new value. |
− | + | ||
− | + | <source lang="C">SceUInt32 SceSysmemForKernel_153A08A0(SceKernelPhyMemPart* pPhyMemPart);</source> | |
− | </source> | ||
− | === | + | === sceKernelAllocPhyPageForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-3.61 || 0xD449547B |
+ | |- | ||
+ | | 3.63-3.74 || 0xB488C82E | ||
|} | |} | ||
− | + | Temp name was sceKernelPhyMemPartAllocPhyPageForKernel. | |
− | <source lang="C"> | + | <source lang="C">int sceKernelAllocPhyPageForKernel(void *pPhyMemPart, SceSize size, void **ppPhyPage);</source> |
− | |||
− | |||
− | </source> | ||
− | === | + | === sceKernelResetPhyMemPartForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60 || 0xEEB85560 |
+ | |- | ||
+ | | 3.65 || 0x9B7E673F | ||
|} | |} | ||
− | <source lang="C"> | + | Used by [[SceProcessmgr#sceKernelResetGameBudgetForKernel]]. |
+ | |||
+ | Called with same argument as [[#sceKernelSetPhyPartGameForKernel]]. | ||
+ | |||
+ | <source lang="C">int sceKernelResetPhyMemPartForKernel(SceKernelPhyMemPart *pPhyMemPart);</source> | ||
− | === | + | === sceKernelShowPhyMemPartForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x5C257482 |
+ | |- | ||
+ | | 3.63-3.65 || 0x8F0B5536 | ||
|} | |} | ||
− | + | Prints information about a Physical Memory Partition. | |
− | === | + | Only implemented in sysdbg build. |
+ | |||
+ | <source lang="C">SceInt32 sceKernelShowPhyMemPartForKernel(SceKernelPhyMemPart *pPMP);</source> | ||
+ | |||
+ | === sceKernelFreePhyPageForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990 || | + | | 0.990-3.61 || 0x00BC5B4A |
+ | |- | ||
+ | | 3.63 || 0x193A9D2F | ||
|} | |} | ||
− | === | + | <source lang="C">int sceKernelFreePhyPageForKernel(void *pPhyMemPart, void *pPage);</source> |
+ | |||
+ | === sceKernelSetPhyMemPartHookForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x17F1AA22 |
+ | |- | ||
+ | | 3.63 || 0x31FA81B5 | ||
|} | |} | ||
− | <source lang="C">int | + | This is a guessed name. |
+ | |||
+ | Only implemented in sysdbg build. | ||
+ | |||
+ | <source lang="C">int sceKernelSetPhyMemPartHookForKernel(void *pHook);</source> | ||
− | === | + | === sceKernelSetPhyMemPartLogCallbackForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x72E7BFAC |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x93D0A183 |
|} | |} | ||
− | + | This is a guessed name. | |
− | === | + | Only implemented in sysdbg build. |
+ | |||
+ | <source lang="C">int sceKernelSetPhyMemPartLogCallbackForKernel(void *pCallbacks);</source> | ||
+ | |||
+ | === sceKernelAllocKernelHeapForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-0.990 || | + | | 0.931-0.990 || 0x432EADA6 |
|- | |- | ||
| 3.60 || not present | | 3.60 || not present | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelAllocKernelHeapForKernel(SceSize size);</source> |
− | === | + | === sceKernelGetHeapInfoForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931-3.61 || 0x91733EF4 |
+ | |- | ||
+ | | 3.63 || 0x17DB1A0A | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C"> |
+ | // 0.931-0.990: | ||
+ | int sceKernelGetHeapInfoForKernel(SceUID heapid, SceKernelHeapInfo *pInfo); | ||
− | === | + | // 3.60: |
+ | int sceKernelGetHeapInfoForKernel(SceUID heapid, SceUInt32 level, SceKernelHeapInfo *pInfo); | ||
+ | </source> | ||
+ | |||
+ | === sceKernelGetHeapInfoAllForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990 || | + | | 0.990-3.61 || 0x48D87E17 |
+ | |- | ||
+ | | 3.63 || 0x1380E144 | ||
|} | |} | ||
− | <source lang="C"> | + | This is a guessed namee. |
+ | |||
+ | <source lang="C">int sceKernelGetHeapInfoAllForKernel(SceUInt32 vis_level, void *pInfo, SceSize infoSize, SceUInt32 *pnInfo);</source> | ||
− | === | + | === sceKernelGetHeapInfoAllChunkForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3.60 || | + | | 0.931-0.990 || 0xAC4C0EB1 |
+ | |- | ||
+ | | 3.60 || not present | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelGetHeapInfoAllChunkForKernel(SceUID heapid, SceKernelHeapInfo *pInfo);</source> |
− | === | + | === sceKernelGetHeapInfoByPtrForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-0.990 || | + | | 0.931-0.990 || not present |
+ | |- | ||
+ | | 3.60-3.61 || 0x68451777 | ||
|- | |- | ||
− | | 3. | + | | 3.63 || 0x80A75187 |
|} | |} | ||
− | + | Temp name was sceKernelGetHeapInfoByPointerForKernel. | |
− | <source lang="C">int | + | <source lang="C">int sceKernelGetHeapInfoByPtrForKernel(void *pObject, SceKernelHeapInfo *pInfo);</source> |
− | === | + | === sceKernelReallocHeapMemoryForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xFDC0EA11 |
+ | |- | ||
+ | | 3.63 || 0x8EE8B917 | ||
|} | |} | ||
− | === | + | This is a guessed name. |
+ | |||
+ | <source lang="C">void *sceKernelReallocHeapMemoryForKernel(SceUID heapid, void *ptr, SceSize size);</source> | ||
+ | |||
+ | === sceKernelHeapEnableModeForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xF1433852 |
+ | |- | ||
+ | | 3.63 || 0x0B36F7F9 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | === | + | <source lang="C">int sceKernelHeapEnableModeForKernel(SceUID heapid, SceUInt32 mode);</source> |
+ | |||
+ | === sceKernelHeapDiableModeForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x71869119 |
+ | |- | ||
+ | | 3.63 || 0x6E82D5A0 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | int | + | <source lang="C">int sceKernelHeapDiableModeForKernel(SceUID heapid, SceUInt32 mode);</source> |
− | </source> | ||
− | === | + | === sceKernelHeapMemoryGetAllocateSizeForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x60735311 |
+ | |- | ||
+ | | 3.63 || 0xD124075A | ||
|} | |} | ||
− | <source lang="C"> | + | This is a guessed name. |
+ | |||
+ | <source lang="C">SceSize sceKernelHeapMemoryGetAllocateSizeForKernel(void *ptr);</source> | ||
− | === | + | === sceKernelPrintHeapSegmentListForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x2EE50533 |
+ | |- | ||
+ | | 3.63 || 0x82059651 | ||
|} | |} | ||
− | <source lang="C">int | + | Only implemented in sysdbg build. |
+ | |||
+ | <source lang="C">int sceKernelPrintHeapSegmentListForKernel(SceUID heap_guid);</source> | ||
− | === | + | === sceKernelGetKernelFixedHeapForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.990.000-3.610.011 || 0x68CB9266 |
+ | |- | ||
+ | | 3.630.000-3.740.011 || 0x3717C322 | ||
|} | |} | ||
− | <source lang="C"> | + | Temp name was sceKernelGetFixedHeapBySizeForKernel. |
+ | |||
+ | <source lang="C">SceUIDFixedHeapObject *sceKernelGetKernelFixedHeapForKernel(SceSize size);</source> | ||
− | === | + | === sceKernelGetFixedHeapInfoForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990.000-3.610.011 || 0x4FA4A624 |
+ | |- | ||
+ | | 3.630.000-3.740.011 || 0x890D9160 | ||
|} | |} | ||
− | + | <source lang="C">int sceKernelGetFixedHeapInfoForKernel(SceUID heapid, SceKernelFixedHeapInfo *pInfo);</source> | |
+ | |||
+ | === sceKernelGetFixedHeapInfoByPointerForKernel === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.990.000-3.610.011 || 0x219E90FD | ||
+ | |- | ||
+ | | 3.630.000-3.740.011 || 0xA24D2C8D | ||
+ | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelGetFixedHeapInfoByPointerForKernel(SceUIDFixedHeapObject *pFixedHeap, SceKernelFixedHeapInfo *pInfo);</source> |
− | === | + | === sceKernelFixedHeapSetHookForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-3. | + | | 0.931.010-1.06 || not present |
+ | |- | ||
+ | | 1.500.151-3.610.011 || 0x8C8E2DD1 | ||
+ | |- | ||
+ | | 3.630.000-3.740.011 || 0xD4511A52 | ||
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">int sceKernelFixedHeapSetHookForKernel(SceUID heapid, void *hookdata);</source> |
− | / | ||
− | |||
− | + | === sceKernelFixedHeapAllocObjectForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 0.990.000-3.610.011 || 0xC8672A3D | |
− | + | |- | |
+ | | 3.630.000-3.740.011 || 0xABA5313C | ||
+ | |} | ||
− | + | This is a guessed name. | |
− | |||
− | |||
− | |||
− | |||
− | + | <source lang="C">void *sceKernelFixedHeapAllocObjectForKernel(SceUIDFixedHeapObject *pFixedHeap);</source> | |
− | |||
− | */ | ||
− | + | === sceKernelFixedHeapFreeObjectForKernel === | |
− | |||
− | |||
− | === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990.000-3.610.011 || 0x571660AA |
+ | |- | ||
+ | | 3.630.000-3.740.011 || 0x93344755 | ||
|} | |} | ||
− | <source lang="C">int | + | This is a guessed name. |
+ | |||
+ | <source lang="C">int sceKernelFixedHeapFreeObjectForKernel(SceUIDFixedHeapObject *pFixedHeap, void *pObject);</source> | ||
− | === | + | === sceKernelFixedHeapSetHookByPointerForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-3. | + | | 0.931.010-2.12 || not present |
+ | |- | ||
+ | | 2.500.071-3.610.011 || 0x3EC2345B | ||
+ | |- | ||
+ | | 3.630.000-3.740.011 || 0x811C452B | ||
|} | |} | ||
− | <source lang="C">int | + | This is a guessed name. |
+ | |||
+ | <source lang="C">int sceKernelFixedHeapSetHookByPointerForKernel(SceUIDFixedHeapObject *pFixedHeap, void *a2);</source> | ||
− | === | + | === sceKernelNameHeapInsertForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-3.61 || 0x08AB3DAE |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xB628B46B |
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelNameHeapInsertForKernel(const char *name, int flags, char **result);</source> |
− | === | + | === sceKernelNameHeapDeleteForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-3.61 || 0x9C7B62AB |
+ | |- | ||
+ | | 3.63 || 0x634D0D0C | ||
|} | |} | ||
− | + | name max length is 31 characters. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | int | + | <source lang="C">int sceKernelNameHeapDeleteForKernel(const char *name, SceUInt32 flag);</source> |
− | </source> | ||
− | === | + | === sceKernelNameHeapLinkForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xEC1293D2 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x40965FD1 |
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelNameHeapLinkForKernel(const char *name, int flags, void **result);</source> |
− | === | + | === sceKernelNameHeapFindForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xB543A23C |
+ | |- | ||
+ | | 3.63 || 0x9F1A9AA6 | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelNameHeapFindForKernel(const char *name, int flags, void **result);</source> |
− | === | + | === sceKernelNameHeapGetKeyForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x942D15FC |
+ | |- | ||
+ | | 3.63 || 0xEB48682E | ||
|} | |} | ||
− | + | This is a guessed name. Computes MurmurHash. Used to get UID by name. | |
− | === | + | <source lang="C">SceUInt32 sceKernelNameHeapGetKeyForKernel(const char *key, SceSize len, SceUInt32 seed);</source> |
+ | |||
+ | === sceKernelNameHeapGetInfoForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.931.010-0.990 || not present |
+ | |- | ||
+ | | 0.996.090-3.610.011 || 0xE443253B | ||
+ | |- | ||
+ | | 3.630.000-3.740.011 || 0x01194C2E | ||
|} | |} | ||
− | <source lang="C">void * | + | <source lang="C">int sceKernelNameHeapGetInfoForKernel(void *pInfo);</source> |
− | === | + | === sceKernelCreateObjectHeapForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x36830F46 |
+ | |- | ||
+ | | 3.63 || 0x9D8F3BE8 | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelCreateObjectHeapForKernel(SceUID pid, SceBool a2, SceFixedHeapHook *pHeapHook, SceKernelObjectHeap **ppObjectHeap);</source> |
− | === | + | === sceKernelCreateObjectHeapWithHeapForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x7FD757FE |
+ | |- | ||
+ | | 3.63 || 0x660DC18A | ||
|} | |} | ||
− | <source lang="C">int | + | This is a guessed name. |
+ | |||
+ | <source lang="C">int sceKernelCreateObjectHeapWithHeapForKernel(SceKernelObjectHeap *pObjectHeap, SceUID pid, SceUID heapid);</source> | ||
− | === | + | === sceKernelDeleteObjectHeapForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x080BA2F3 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x2F526AB8 |
|} | |} | ||
− | + | This is a guessed name. | |
− | <source lang="C">int | + | <source lang="C">int sceKernelDeleteObjectHeapForKernel(SceKernelObjectHeap *pObjectHeap);</source> |
− | === | + | === sceKernelObjectHeapAllocForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x7FDF483A |
+ | |- | ||
+ | | 3.63 || 0xEBFC8E10 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | <source lang="C"> | + | <source lang="C">void *sceKernelObjectHeapAllocForKernel(SceKernelObjectHeap *pObjectHeap, SceSize size);</source> |
− | === | + | === sceKernelObjectHeapFreeForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x131CEF52 |
|- | |- | ||
− | + | | 3.63 || 0x17D3D4BD | |
− | |||
− | | 3. | ||
|} | |} | ||
− | This is a guessed name | + | This is a guessed name. |
− | <source lang=" | + | <source lang="C">int sceKernelObjectHeapFreeForKernel(SceKernelObjectHeap *pObjectHeap, SceSize size, void *pObject);</source> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </source> | ||
− | === | + | === sceKernelObjectHeapSetResourceLimitForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x98E6905B |
+ | |- | ||
+ | | 3.63 || 0xDFA1EB57 | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelObjectHeapSetResourceLimitForKernel(int a1, int a2, int a3, int a4, int a5);</source> |
− | === | + | === sceKernelObjectHeapSetResourceLimitAllForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x5409397F |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x067F2550 |
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">int sceKernelObjectHeapSetResourceLimitAllForKernel(SceKernelObjectHeap *pObjectHeap, int a2, int a3);</source> |
− | |||
− | int | ||
− | </source> | ||
− | === | + | === sceKernelObjectHeapSetSizeForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0x6427560F |
+ | |- | ||
+ | | 3.63 || 0xB591E49F | ||
|} | |} | ||
− | <source lang="C">int | + | This is a guessed name. |
+ | |||
+ | <source lang="C">int sceKernelObjectHeapSetSizeForKernel(SceUInt32 index, SceUInt32 size);</source> | ||
− | === | + | === sceKernelGetObjectHeapForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0x3B75CBED |
+ | |- | ||
+ | | 3.63 || 0x857408DA | ||
|} | |} | ||
− | === | + | This is a guessed name. |
+ | |||
+ | <source lang="C">SceKernelObjectHeap *sceKernelGetObjectHeapForKernel(void);</source> | ||
+ | |||
+ | === sceKernelGetSharedObjectHeapForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0xBF0294E4 |
+ | |- | ||
+ | | 3.63 || 0x791D6205 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | <source lang="C"> | + | <source lang="C">SceKernelObjectHeap *sceKernelGetSharedObjectHeapForKernel(void);</source> |
− | === | + | === SceSysmemForKernel_B8D769C6 === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0xB8D769C6 |
+ | |- | ||
+ | | 3.63 || 0xDBEACE2C | ||
|} | |} | ||
− | === | + | <source lang="C">int SceSysmemForKernel_B8D769C6(SceKernelObjectHeap *pObjectHeap, void *info);</source> |
+ | |||
+ | === sceUIDCreateEntryHeapForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 0.990-3.60 || 0x19CAEF35 |
+ | |- | ||
+ | | 3.65 || 0x89BEF058 | ||
|} | |} | ||
− | === | + | <source lang="C">int sceUIDCreateEntryHeapForKernel(SceUID pid, SceUID heap_guid);</source> |
+ | |||
+ | === sceUIDDeleteEntryHeapForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 0.990-3.60 || 0xF0C3FCFC |
+ | |- | ||
+ | | 3.65 || 0xF6D09BD9 | ||
|} | |} | ||
− | + | <source lang="C">int sceUIDDeleteEntryHeapForKernel(SceUID guid);</source> | |
− | + | === sceUIDRegisterForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 0.931-0.990 || 0x59162CD7 |
+ | |- | ||
+ | | 3.60 || not present | ||
|} | |} | ||
− | + | Calls [[#sceGUIDRegisterForKernel]]. | |
− | <source lang="C">int | + | <source lang="C">int sceUIDRegisterForKernel(SceClass *pClass, const char *name, SceKernelObject *pObject);</source> |
− | === | + | === sceUIDObjectSetClassForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 0.931-0.990 || 0x226DE851 |
+ | |- | ||
+ | | 3.60 || not present | ||
|} | |} | ||
− | === | + | <source lang="C">int sceUIDObjectSetClassForKernel(SceKernelObject *pObject, SceClass *pClass);</source> |
+ | |||
+ | === sceUIDGetUIDVectorByClassForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-3. | + | | 0.931.010-1.060.031 || 0xA2F03233 |
+ | |- | ||
+ | | 1.500.151-3.740.011 || not present | ||
|} | |} | ||
− | + | Calls [[#sceGUIDGetUIDVectorByClassForKernel]]. | |
− | |||
− | |||
=== sceUIDGetProcUIDVectorByClassForKernel === | === sceUIDGetProcUIDVectorByClassForKernel === | ||
Line 2,612: | Line 1,949: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990 || 0x51C08396 | + | | 0.990.000-1.060.031 || 0x51C08396 |
|- | |- | ||
− | | 3. | + | | 1.500.151-3.740.011 || not present |
|} | |} | ||
Line 2,629: | Line 1,966: | ||
<source lang="C">int sceUIDReferObjectWithLevelForKernel(SceUID uid, SceUInt32 level, SceKernelObject **ppEntry);</source> | <source lang="C">int sceUIDReferObjectWithLevelForKernel(SceUID uid, SceUInt32 level, SceKernelObject **ppEntry);</source> | ||
− | === | + | === sceUIDGetObjectForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 0.931-0.990 || 0xC4893914 |
+ | |- | ||
+ | | 3.60 || not present | ||
|} | |} | ||
− | + | Calls [[#sceGUIDGetObjectForDriver]]. | |
− | === | + | <source lang="C">int sceUIDGetObjectForKernel(SceUID uid, SceKernelObject **ppEntry);</source> |
+ | |||
+ | === sceUIDtoObjectForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-3.60 || 0xED221825 |
|- | |- | ||
− | | 3. | + | | 3.65 || 0xFA6C098C |
|} | |} | ||
− | + | Calls [[SceSysmem#sceGUIDGetObjectForDriver]]. | |
− | <source lang="C"> | + | <source lang="C">SceKernelObject *sceUIDtoObjectForKernel(SceUID uid);</source> |
− | === | + | === sceUIDClassIsSubclassForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-1.691 || not present (in ForDriver) |
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0x48750A5A |
+ | |- | ||
+ | | 3.63 || 0x7F7D5C4A | ||
|} | |} | ||
− | Temp name was | + | This is a guessed name. Temp name was sceUIDClassIsWithinSubclassChainForKernel. |
− | + | <source lang="C">SceBool sceUIDClassIsSubclassForKernel(SceClass *pClass, SceClass *pTargetClass);</source> | |
− | + | === sceUIDEntryHeapCloseAllPUIDForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-3.60 || | + | | 0.931-3.60 || 0xFAF96C1F |
|- | |- | ||
− | | 3.65 || | + | | 3.65 || 0x133024A5 |
|} | |} | ||
− | + | <source lang="C">int sceUIDEntryHeapCloseAllPUIDForKernel(SceUID guid);</source> | |
− | |||
− | <source lang="C"> | ||
− | |||
− | </source> | ||
− | === | + | === sceKernelUIDEntryHeapGetInfoForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 2,692: | Line 2,029: | ||
| 0.990 || not present | | 0.990 || not present | ||
|- | |- | ||
− | | 3.60 || 0x686AA15C | + | | 3.60-3.61 || 0x686AA15C |
+ | |- | ||
+ | | 3.63 || 0xCCD47B97 | ||
|} | |} | ||
− | === | + | Official name may also be sceUIDEntryHeapGetInfoForKernel (seen in 4.00). |
+ | |||
+ | <source lang="C"> | ||
+ | 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); | ||
+ | </source> | ||
+ | |||
+ | === sceUIDEntryHeapSetHookForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xCD985AEB |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x666C878F |
|} | |} | ||
− | <source lang="C">int | + | ?Implemented in internal system software.? Not implemented in external system software. |
+ | |||
+ | <source lang="C">int sceUIDEntryHeapSetHookForKernel(SceUID guid, void *pHook);</source> | ||
− | === | + | === sceUIDEntryGetNameForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x114E6476 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x5FD15C6E |
|} | |} | ||
− | === | + | This is a guessed name. |
+ | |||
+ | <source lang="C">char *sceUIDEntryGetNameForKernel(SceUIDEntry *pEntry);</source> | ||
+ | |||
+ | === sceUIDEntryGetLevelForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xC2F7D8A4 |
+ | |- | ||
+ | | 3.63 || 0x797C858B | ||
|} | |} | ||
− | <source lang="C"> | + | This is a guessed name. |
− | + | ||
− | + | <source lang="C">SceUInt16 sceUIDEntryGetLevelForKernel(SceUIDEntry *pEntry);</source> | |
− | |||
− | === | + | === sceUIDEntryGetAttrForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x8FB73A29 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x17F12DCE |
|} | |} | ||
− | <source lang="C"> | + | This is a guessed name. |
+ | |||
+ | <source lang="C">SceUInt32 sceUIDEntryGetAttrForKernel(SceUIDEntry *pEntry);</source> | ||
− | === | + | === sceUIDEntryGetLinkCountForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x876A7F44 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xF3DB2D71 |
|} | |} | ||
− | + | This is a guessed name. | |
− | === | + | <source lang="C">SceUInt8 sceUIDEntryGetLinkCountForKernel(SceUIDEntry *pEntry);</source> |
+ | |||
+ | === sceUIDEntryGetUIDForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x6BB6AF94 |
+ | |- | ||
+ | | 3.63 || 0x03A2CAF0 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | |||
− | |||
− | + | <source lang="C">SceUID sceUIDEntryGetUIDForKernel(SceUIDEntry *pEntry);</source> | |
− | |||
− | </source> | ||
− | === | + | === sceGUIDRegisterForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.990-3.61 || 0xAF42AAD5 |
+ | |- | ||
+ | | 3.63 || 0x6DB44A42 | ||
|} | |} | ||
− | === | + | <source lang="C">SceUID sceGUIDRegisterForKernel(SceClass *pClass, const char *name, SceKernelObject *pObject);</source> |
+ | |||
+ | === sceGUIDUnregisterForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931-0.990 || 0xE79BBCF2 |
|- | |- | ||
− | | 3. | + | | 3.60 || not present |
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">int sceGUIDUnregisterForKernel(SceUID uid);</source> |
− | === | + | === sceGUIDOpenByGUIDForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.990-3.61 || 0xCF53EEE4 |
+ | |- | ||
+ | | 3.63 || 0x89D33DF0 | ||
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">SceUID sceGUIDOpenByGUIDForKernel(SceUID guid);</source> |
− | + | === sceGUIDNameForKernel === | |
− | + | {| class="wikitable" | |
− | + | |- | |
− | + | ! Version !! NID | |
− | + | |- | |
− | + | | 0.990.000-1.060.031 || 0x250EE289 | |
− | } | + | |- |
+ | | 1.50-3.740.011 || not present | ||
+ | |} | ||
− | + | <source lang="C">char *sceGUIDNameForKernel(SceUID uid);</source> | |
− | + | === sceGUIDtoClassForKernel === | |
− | |||
− | === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.990-3.61 || 0x66636970 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x368F1C36 |
|} | |} | ||
− | <source lang="C"> | + | |
− | + | <source lang="C">SceClass *sceGUIDtoClassForKernel(SceUID guid);</source> | |
− | </source> | ||
=== sceGUIDGetObjectWithClassForKernel === | === sceGUIDGetObjectWithClassForKernel === | ||
Line 2,830: | Line 2,198: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.990-3.61 || 0x7ABFA9A7 |
+ | |- | ||
+ | | 3.63 || 0x0E43E113 | ||
|} | |} | ||
Line 2,837: | Line 2,207: | ||
<source lang="C">int sceGUIDGetObjectWithClassForKernel(SceUID uid, SceClass *pClass, SceKernelObject **obj);</source> | <source lang="C">int sceGUIDGetObjectWithClassForKernel(SceUID uid, SceClass *pClass, SceKernelObject **obj);</source> | ||
− | === | + | === sceGUIDGetUIDVectorByClassForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931.010-3.600.011 || 0xEC7D36EF |
+ | |- | ||
+ | | 3.630.011-3.740.011 || 0x52137FA3 | ||
|} | |} | ||
− | + | Copy UIDs to <code>pVector</code> by referring to all objects created by <code>pClass</code>. | |
− | === | + | <source lang="C"> |
+ | /* | ||
+ | * 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); | ||
+ | </source> | ||
+ | |||
+ | === sceGUIDGetUIDVectorWeakByClassForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931- | + | | 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 <code>pVector</code> by referring to all objects created by <code>pClass</code>. | |
− | <source lang="C">int | + | <source lang="C"> |
+ | /* | ||
+ | * 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); | ||
+ | </source> | ||
− | === | + | === sceGUIDGetEntryForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x45F2A59C |
+ | |- | ||
+ | | 3.63 || 0xFF464A49 | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceGUIDGetEntryForKernel(SceUID guid, SceUIDEntry **ppEntry);</source> |
− | === | + | === sceGUIDGetEntryInfoAllForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990.000-3.610.011 || 0x2A79C51C |
+ | |- | ||
+ | | 3.630.011-3.740.011 || 0x3BF0DE65 | ||
|} | |} | ||
− | + | <source lang="C">int sceGUIDGetEntryInfoAllForKernel(SceUInt32 vis_level, SceUID guid, SceUID *pVector, SceUInt32 nVector, void *pInfo);</source> | |
− | === | + | === sceGUIDGetEntryInfoClassForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990.000-3.610.011 || 0xE90CFD62 |
|- | |- | ||
− | | 3. | + | | 3.630.011-3.740.011 || 0x71E934DB |
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceGUIDGetEntryInfoClassForKernel(SceUID guid, SceClass *pClass, SceUInt32 vis_level, void *pInfoVector, SceUInt32 nVector, SceUInt32 *ret_num);</source> |
− | === | + | === sceGUIDKernelCreateForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990 || 0xE6FAD50A |
|- | |- | ||
− | | 3. | + | | 3.60 || not present |
|} | |} | ||
− | + | Create a GUID with default attribute (0x30000). | |
− | + | <source lang="C">int sceGUIDKernelCreateForKernel(SceClass *pClass, const char *name, SceKernelObject **ppEntry);</source> | |
− | + | === sceGUIDKernelCreateWithAttrForKernel === | |
− | |||
− | |||
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.990-3.61 || 0x53E1FFDE |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x6D26B066 |
|} | |} | ||
− | + | Create a GUID with the specified attribute. | |
− | + | <source lang="C">int sceGUIDKernelCreateWithAttrForKernel(SceClass *pClass, const char *name, SceUInt32 attr, SceKernelObject **ppEntry);</source> | |
− | + | === sceGUIDKernelCreateWithOptForKernel === | |
− | |||
− | |||
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-0.995 || not present |
|- | |- | ||
− | | 3.60 || | + | | 0.996-3.60 || 0xDF0288D7 |
+ | |- | ||
+ | | 3.65 || 0xFB6390CE | ||
|} | |} | ||
− | This is a guessed name. Temp | + | This is a guessed name. Temp name was sceKernelCreateUidObjForKernel, scePUIDKernelCreateWithAttrForKernel. |
− | + | <source lang="c"> | |
− | + | typedef struct SceGUIDKernelCreateOpt { // size is at least 0x20 on FW 3.60 | |
− | + | SceUInt32 attr; | |
− | + | SceUInt32 field_4; | |
− | <source lang="c"> | + | 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); | ||
+ | </source> | ||
− | === | + | === sceGUIDGetVisibilityLevelForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xC69666C3 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x4E923101 |
|} | |} | ||
− | + | <source lang="C">SceUInt32 sceGUIDGetVisibilityLevelForKernel(SceUID guid);</source> | |
− | + | === sceGUIDSetVisibilityLevelForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xCB8D03C0 |
− | | | ||
− | |||
− | |||
− | |||
|- | |- | ||
− | + | | 3.63 || 0xE8CC2166 | |
− | |||
− | |||
− | |||
− | | 3. | ||
|} | |} | ||
− | + | Sets visibilityLevel into guid's GUIDEntry. | |
− | <source lang="C"> | + | <source lang="C">int sceGUIDSetVisibilityLevelForKernel(SceUID guid, int visibilityLevel);</source> |
− | |||
− | |||
− | |||
− | int | ||
− | </source> | ||
− | === | + | === sceGUIDFindByObjectForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.990-3.61 || 0x95ABFDC3 |
+ | |- | ||
+ | | 3.63 || 0xEC90AA11 | ||
|} | |} | ||
− | + | <source lang="C">SceUID sceGUIDFindByObjectForKernel(void *pObject);</source> | |
− | + | === sceGUIDFindByNameForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xCEBA8031 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xBDE00106 |
|} | |} | ||
− | + | <source lang="C">SceUID sceGUIDFindByNameForKernel(const char *name);</source> | |
− | === | + | === sceGUIDFindByNameAllForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x4B5C85AC |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xF49C0BE8 |
|} | |} | ||
<source lang="C"> | <source lang="C"> | ||
− | // | + | // return value: to reverse, should be either SceUID guid or void* pObj |
− | + | SceUID sceGUIDFindByNameAllForKernel(const char *name); | |
− | SceUID | ||
</source> | </source> | ||
− | === | + | === sceGUIDGetPIDForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xCF5A2311 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xBD42A0FC |
|} | |} | ||
− | <source lang="C"> | + | Returns Process ID for guid. |
+ | |||
+ | <source lang="C">SceUID sceGUIDGetPIDForKernel(SceUID guid);</source> | ||
− | === | + | === sceGUIDSetPIDForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x812E7A53 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x46DF8C8A |
|} | |} | ||
− | <source lang="C">int | + | Sets Process ID for guid. |
+ | |||
+ | <source lang="C">int sceGUIDSetPIDForKernel(SceUID guid, SceUID pid);</source> | ||
− | === | + | === sceGUIDSetCNOAForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x8D6AF468 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x5EDDEEB5 |
|} | |} | ||
− | <source lang="C">int | + | Setting Class Name Object Attr. |
+ | |||
+ | <source lang="C">int sceGUIDSetCNOAForKernel(SceUID guid, SceClass *pClass, const char *name, void *pObject, SceUInt32 attr);</source> | ||
− | === | + | === sceGUIDSetForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-3. | + | | 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. | |
− | + | <source lang="C">int sceGUIDSetForKernel(SceUID guid, SceClass *pClass, const char *name, SceKernelObject *pObject);</source> | |
− | <source lang="C">int | ||
− | + | === scePUIDGetEntryInfoAllForKernel === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931.010-1.692.000 || not present |
+ | |- | ||
+ | | 1.800.071-3.610.011 || 0x2770A7D7 | ||
+ | |- | ||
+ | | 3.630.011-3.740.011 || 0x3C3005EE | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int scePUIDGetEntryInfoAllForKernel(SceUID pid, SceClass *pClass, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, void *pInfo);</source> |
− | === | + | === scePUIDGetAttrForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x86E83C0D |
+ | |- | ||
+ | | 3.63 || 0x96BD47D1 | ||
|} | |} | ||
− | <source lang="C">int | + | <source lang="C">int scePUIDGetAttrForKernel(SceUID pid, SceUID puid, SceUInt32 *pAttr);</source> |
− | |||
− | |||
+ | === scePUIDReleaseObjectForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.990-3.61 || 0x3FCA782B |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xCE561224 |
|} | |} | ||
− | <source lang=" | + | <source lang="C">int scePUIDReleaseObjectForKernel(SceUID pid, SceUID puid);</source> |
− | |||
− | |||
+ | === scePUIDGetInfoForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 0.990 || not present |
+ | |- | ||
+ | | 3.60-3.61 || 0x12ED88AE | ||
+ | |- | ||
+ | | 3.63 || 0x857701D4 | ||
|} | |} | ||
− | <source lang=" | + | <source lang="C"> |
− | / | + | // pInfo size is 0x14 bytes |
− | + | int scePUIDGetInfoForKernel(SceUID pid, SceUID puid, void *pInfo); | |
− | + | </source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | int | ||
− | |||
− | |||
+ | === scePUIDtoGUIDWithDebugForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0xB3E2AA7A |
+ | |- | ||
+ | | 3.63 || 0x188C8742 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | = | + | <source lang="C">SceUID scePUIDtoGUIDWithDebugForKernel(SceUID pid, SceUID puid);</source> |
+ | === scePUIDReferObjectForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.990-3.61 || 0x620E00E7 |
+ | |- | ||
+ | | 3.63 || 0x2C15615F | ||
|} | |} | ||
− | <source lang=" | + | <source lang="C">int scePUIDReferObjectForKernel(SceUID pid, SceUID puid, SceObject **ppObject);</source> |
− | === | + | === scePUIDOpenByNameWithOptForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x22F79E82 |
+ | |- | ||
+ | | 3.63 || 0x201E970B | ||
|} | |} | ||
− | <source lang=" | + | <source lang="C">SceUID scePUIDOpenByNameWithOptForKernel(ScePID pid, const char *name, void *pOpt);</source> |
− | === | + | === scePUIDGetPUIDVectorByGUIDForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931.010-2.06 || not present |
|- | |- | ||
− | | 3. | + | | 2.100.081-3.610.011 || 0xBF04FC83 |
|- | |- | ||
− | | 3. | + | | 3.630.011-3.740.011 || 0xCE16AD91 |
|} | |} | ||
− | + | <source lang="C">int scePUIDGetPUIDVectorByGUIDForKernel(SceUID pid, SceUID guid, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, SceUInt32 *ret_num);</source> | |
− | + | === scePUIDGetUIDVectorByClassForKernel === | |
− | |||
− | |||
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.990.000-3.610.011 || 0xB16D5136 |
+ | |- | ||
+ | | 3.630.000-3.740.011 || 0x08C05493 | ||
|} | |} | ||
− | <source lang="C"> | + | Similar to [[#sceGUIDGetUIDVectorByClassForKernel]]. |
− | + | ||
− | int | + | <source lang="C">int scePUIDGetUIDVectorByClassForKernel(SceUID pid, SceClass *pClass, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, SceUInt32 *ret_num);</source> |
− | </source> | ||
− | === | + | === scePUIDReferObjectWithClassForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x9C53F457 |
+ | |- | ||
+ | | 3.63 || 0x9C23DFF7 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | <source lang="C"> | + | <source lang="C">int scePUIDReferObjectWithClassForKernel(SceUID pid, SceUID puid, SceClass *pClass, void **ppObject);</source> |
− | === | + | === scePUIDOpenByGUIDWithOptForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0x53A2E272 |
+ | |- | ||
+ | | 3.63 || 0x1FF2749A | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | <source lang="C"> | + | <source lang="C">SceUID scePUIDOpenByGUIDWithOptForKernel(SceUID pid, SceUID guid, void *pOpt);</source> |
− | === | + | === scePUIDGetGUIDVectorForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0x3203AE64 |
+ | |- | ||
+ | | 3.63 || 0x66489B4B | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | === | + | <source lang="C">int scePUIDGetGUIDVectorForKernel(SceUID pid, SceUInt32 vis_level, SceUID *pVector, SceUInt32 nVector, SceUInt32 *ret_num);</source> |
+ | |||
+ | === sceKernelGetPhyPartKernelForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.931-3.61 || 0x4D38F861 |
+ | |- | ||
+ | | 3.63-3.65 || 0x0164D817 | ||
|} | |} | ||
− | + | return gpPhyPartKernel; | |
− | + | <source lang="C">void *sceKernelGetPhyPartKernelForKernel(void);</source> | |
− | + | === sceKernelGetPhyPartToolForKernel === | |
− | |||
− | == | ||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-3.61 || 0xF8E95A5A |
|- | |- | ||
− | | 3. | + | | 3.63-3.65 || 0x0B1B4ACA |
|} | |} | ||
− | <source lang="C"> | + | <source lang="C">void *sceKernelGetPhyPartToolForKernel(void);</source> |
− | === | + | === sceKernelGetPhyPartGameForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xB60568F9 |
|- | |- | ||
− | | 3. | + | | 3.63-3.65 || 0x62800A6B |
|} | |} | ||
− | + | <source lang="C">void *sceKernelGetPhyPartGameForKernel(void);</source> | |
− | + | === sceKernelSetPhyPartGameForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x77876A8D |
+ | |- | ||
+ | | 3.63-3.65 || 0x3753C584 | ||
|} | |} | ||
− | + | <source lang="C">void sceKernelSetPhyPartGameForKernel(void *pPhyPart);</source> | |
− | |||
− | <source lang=" | ||
− | === | + | === sceKernelSetPhyPartCdramForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x07FEBBCA |
+ | |- | ||
+ | | 3.63 || 0xDCEF10B2 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | <source lang=" | + | <source lang="C">void sceKernelSetPhyPartCdramForKernel(void *pPhyPart);</source> |
− | === | + | === sceKernelPhyMemLowAllocForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931- | + | | 0.931-3.61 || 0x5E169FEF |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xEA98CCE1 |
|} | |} | ||
− | <source lang="C"> | + | Allocate a range of physically contiguous "pages" from a PhyMemLow object. |
+ | |||
+ | <source lang="C"> | ||
+ | // 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); | ||
+ | </source> | ||
− | === | + | === sceKernelPhyMemLowPA2VAForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931-3.61 || 0x0FD6B756 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x2CFD8C9A |
|} | |} | ||
− | + | <source lang="C"> | |
− | + | // type must be 0x10002 | |
− | + | int sceKernelPhyMemLowPA2VAForKernel(int type, void *PA, void **pVA); | |
+ | </source> | ||
− | + | === sceKernelGetPhyMemLowInfoForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990 || | + | | 0.931-0.990 || 0x06A4DA6C |
|- | |- | ||
| 3.60 || not present | | 3.60 || not present | ||
|} | |} | ||
− | <source lang="C"> | + | <source lang="C"> |
+ | // type must be one of SCE_KERNEL_PHYMEMLOW_TYPE (0x10001, 0x10002 or 0x20001) | ||
+ | SceInt32 sceKernelGetPhyMemLowInfoForKernel(SceUInt32 type, SceKernelPhyMemLowInfo *info); | ||
+ | </source> | ||
− | === | + | === sceKernelPhyMemLowFreeForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931-3.61 || 0x18B99FDD |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x844DF3DA |
|} | |} | ||
− | + | Free a range of physical "pages" from a PhyMemLow object. | |
− | === | + | <source lang="C"> |
+ | // type must be one of SCE_KERNEL_PHYMEMLOW_TYPE (0x10001, 0x10002 or 0x20001) | ||
+ | SceInt32 sceKernelPhyMemLowFreeForKernel(SceUInt32 type, SceUIntPAddr pbase, SceSize size); | ||
+ | </source> | ||
+ | |||
+ | === sceKernelSetPhyMemLowHookForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x2658EE0A |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x2C7B8D65 |
|} | |} | ||
− | + | This is a guessed name. | |
+ | |||
+ | Only implemented in sysdbg build. | ||
− | === | + | <source lang="C">int sceKernelSetPhyMemLowHookForKernel(void *pHook);</source> |
+ | |||
+ | === sceKernelAllocMemBlockByCommandForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xCA91B9D5 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x455B0A4C |
|} | |} | ||
− | <source lang="C">int | + | <source lang="C"> |
+ | 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); | ||
+ | </source> | ||
− | === | + | === sceKernelAllocSimpleMemBlockForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990 || | + | | 0.990-3.61 || 0xF81F4672 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x814CDCC5 |
|} | |} | ||
− | + | <source lang="C"> | |
+ | 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); | |
+ | </source> | ||
− | === | + | === sceKernelFreeSimpleMemBlockForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990 || | + | | 0.990-3.61 || 0xA1FFA2C9 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xA4DB88E1 |
|} | |} | ||
− | + | <source lang="C">int sceKernelFreeSimpleMemBlockForKernel(void *a1);</source> | |
− | + | === sceKernelGetSimpleMemBlockBaseForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 0.990-3.61 || 0x0A8D14EC |
|- | |- | ||
− | | | + | | 3.63 || 0x39D5A3B7 |
|} | |} | ||
− | + | <source lang="C">int sceKernelGetSimpleMemBlockBaseForKernel(SceKernelSimpleMemBlock *smb, void **base);</source> | |
− | |||
− | <source lang=" | ||
− | === | + | === sceKernelSimpleMemBlockGetFIFOForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x43DFCE89 |
+ | |- | ||
+ | | 3.63 || 0xBD625136 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | |||
− | |||
− | <source lang=" | + | <source lang="C">int sceKernelSimpleMemBlockGetFIFOForKernel(void *pResult);</source> |
− | === | + | === sceKernelGetMemBlockInfoAllForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0xFEF54604 |
+ | |- | ||
+ | | 3.63 || 0x1D19C864 | ||
|} | |} | ||
− | + | <source lang="C">int sceKernelGetMemBlockInfoAllForKernel(void *pPart, int a2, int a3, int a4, int a5, SceUInt32 level, void *pInfoBuffer, int a8, SceUInt32 *a9);</source> | |
− | + | === sceKernelGetMemBlockInfoSimpleForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3. | + | | 0.990-3.61 || 0x2364A170 |
+ | |- | ||
+ | | 3.63 || 0xBA441FD0 | ||
|} | |} | ||
− | + | <source lang="C">int sceKernelGetMemBlockInfoSimpleForKernel(SceUID uid, SceKernelMemBlockInfoSimple *pInfo);</source> | |
− | + | === sceKernelGetMemBlockTypeForKernel === | |
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0x289BE3EC |
+ | |- | ||
+ | | 3.63 || 0xD44FE44B | ||
|} | |} | ||
− | + | <source lang="c"> | |
+ | /*** | ||
+ | * 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);</source> | ||
− | + | === sceKernelRemapMemBlockForKernel === | |
− | |||
− | |||
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931-1.05 || 0x8D332AE1 |
+ | |- | ||
+ | | 1.50-3.60 || not present. Moved to ForDriver | ||
|} | |} | ||
− | Temp name was | + | Temp name was sceKernelRemapBlockForKernel. |
− | |||
− | |||
− | + | See [[SceSysmem#sceKernelRemapMemBlockForDriver|sceKernelRemapMemBlockForDriver]]. | |
− | === | + | === sceKernelSetMemBlockDebugCallbackForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x01DE3AB7 |
+ | |- | ||
+ | | 3.63 || 0xF57A97A0 | ||
|} | |} | ||
− | + | This is a guessed name. | |
+ | |||
+ | Only implemented in sysdbg build. | ||
− | <source lang=" | + | <source lang="C">int sceKernelSetMemBlockDebugCallbackForKernel(void *pCallbacks);</source> |
− | === | + | === sceKernelMemBlockAssocPhyPageForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xA88F6D88 |
+ | |- | ||
+ | | 3.63 || 0x441E6BE9 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <source lang=" | + | <source lang="C">int sceKernelMemBlockAssocPhyPageForKernel(SceUID guid, const SceUIntPtr *a2);</source> |
− | === | + | === sceKernelAllocPartitionStackMemBlockForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x64133268 |
+ | |- | ||
+ | | 3.63 || 0x40870E74 | ||
|} | |} | ||
− | + | Temp name was sceKernelAllocStackBlockForKernel. | |
− | <source lang=" | + | <source lang="C">SceUID sceKernelAllocPartitionStackMemBlockForKernel(const char *name, SceSize size, int a3);</source> |
− | === | + | === sceKernelMemBlockGetCodeForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0x61C2AA52 |
+ | |- | ||
+ | | 3.63 || 0x48D2E408 | ||
|} | |} | ||
− | + | This is a guessed name. | |
− | === | + | <source lang="C">SceUint32 sceKernelMemBlockGetCodeForKernel(SceUint32 type);</source> |
+ | |||
+ | === sceKernelAllocPartitionMemBlockForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.931-3.60 || | + | | 0.931-3.60 || 0x5FFE4B79 |
+ | |- | ||
+ | | 3.65 || 0x6DB46017 | ||
|} | |} | ||
− | + | Temp name was sceKernelAllocSystemCallTableForKernel. | |
<source lang="C"> | <source lang="C"> | ||
− | + | SceUID sceKernelAllocPartitionMemBlockForKernel(SceUID part, const char *name, SceKernelMemBlockType type, SceSize size, const struct SceKernelAllocMemBlockOptKernel *pOpt); | |
− | SceUID | ||
</source> | </source> | ||
− | === | + | === sceKernelPartitionGetInfoForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x7BE4D3D1 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0xFB101B86 |
|} | |} | ||
− | + | <source lang="C">int sceKernelPartitionGetInfoForKernel(SceUID part_id, void *pInfo);</source> | |
− | + | === sceKernelGetPhyPageResetForKernel === | |
− | |||
− | |||
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990 || | + | | 0.990-3.61 || 0xEB350679 |
|- | |- | ||
− | | 3. | + | | 3.63 || 0x8FD11E02 |
|} | |} | ||
− | + | <source lang="C">void *sceKernelGetPhyPageResetForKernel(void);</source> | |
− | + | === SceSysmemForKernel_BD33EDDF === | |
− | |||
− | |||
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.931 || 0xBD33EDDF |
+ | |- | ||
+ | | 3.60 || not present | ||
|} | |} | ||
− | + | Gets thread's name. Returns 0 on success. | |
− | + | <source lang="C">int SceSysmemForKernel_BD33EDDF(int maybe_thid, char **pThreadName);</source> | |
− | + | === sceKernelAllocForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-3.60 || 0xC0A4D2F3 |
+ | |- | ||
+ | | 3.65 || 0x85571907 | ||
|} | |} | ||
− | + | <source lang="C">void *sceKernelAllocForKernel(SceSize len);</source> | |
− | + | === sceKernelAllocWithOptForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xA2CD1697 |
+ | |- | ||
+ | | 3.63 || 0xCF3C3F7A | ||
|} | |} | ||
− | + | <source lang="C"> | |
+ | |||
+ | typedef struct SceAllocOpt { | ||
+ | SceSize size; // 0x14 | ||
+ | SceSize data04; // maybe len align? | ||
+ | SceSize align; | ||
+ | int data0C; | ||
+ | int data10; | ||
+ | } SceAllocOpt; | ||
+ | |||
+ | void *sceKernelAllocWithOptForKernel(SceSize len, SceAllocOpt *pOpt); | ||
− | + | </source> | |
− | === | + | === sceKernelFreeForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990-3.60 || 0xABAB0FAB |
+ | |- | ||
+ | | 3.65 || 0x4233C16D | ||
|} | |} | ||
− | + | <source lang="C">int sceKernelFreeForKernel(void *ptr);</source> | |
− | + | === sceKernelSetAllocFreeHookForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xBC2E2B2B |
+ | |- | ||
+ | | 3.63 || 0x42834422 | ||
|} | |} | ||
− | + | Only implemented in sysdbg build. | |
− | <source lang=" | + | <source lang="C">int sceKernelSetAllocFreeHookForKernel(void *pHook);</source> |
− | === | + | === SceSysmemForKernel_C38D61FC === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0. | + | | 0.990 || 0xC38D61FC |
+ | |- | ||
+ | | 3.60 || not present | ||
|} | |} | ||
− | + | Calls [[#SceSysmemForDriver_89A44858]]. | |
− | === | + | === SceSysmemForKernel_7C797940 === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 0.990-3.60 || | + | | 0.931-0.990 || 0x7C797940 |
+ | |- | ||
+ | | 3.60 || not present | ||
|} | |} | ||
− | + | Calls [[#SceSysmemForKernel_620E00E7]] or [[#sceGUIDReferObjectForDriver]]. | |
+ | |||
+ | === sceKernelVSlotMapProcMemoryForKernel === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60-3.61 || 0xFAD03241 | ||
+ | |- | ||
+ | | 3.63 || 0x14D3807B | ||
+ | |} | ||
− | <source lang="C">int | + | <source lang="C">int sceKernelVSlotMapProcMemoryForKernel(SceUID pid, void *addr, SceSize size, SceUInt32 flag, SceKernelVSlot *pVslot, int *pBaseAddrOrOffset);</source> |
− | === | + | === sceKernelVSlotUnmapProcMemoryForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x789CD5BF |
+ | |- | ||
+ | | 3.63 || 0x4EEF69C7 | ||
|} | |} | ||
− | + | <source lang="C">int sceKernelVSlotUnmapProcMemoryForKernel(SceKernelVSlot *pVslot);</source> | |
− | |||
− | <source lang=" | ||
− | === | + | === SceSysmemForKernel_ECF9435A === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xECF9435A |
+ | |- | ||
+ | | 3.63 || 0xFCB5745A | ||
|} | |} | ||
− | + | Writes <code>nWords</code> times the 4-byte <code>ch</code> starting at usermode address <code>u_dst</code>. Write is performed with the <code>STRT</code> instruction and <code>DACR=0x15450FC3</code> (same as [[SceSysmem#sceKernelCopyToUserTextDomainForKernel||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 [[Kernel#NID_Poisoning|"NID Poisoning"]] by Team Molecule. | ||
− | <source lang=" | + | <source lang="C">int SceSysmemForKernel_ECF9435A(void *u_dst, SceUInt32 ch, SceUInt32 nWords);</source> |
− | === | + | === SceSysmemForKernel_ECC68E7B === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xECC68E7B |
+ | |- | ||
+ | | 3.63 || 0x05822B82 | ||
|} | |} | ||
− | <source lang=" | + | <source lang="C">int SceSysmemForKernel_ECC68E7B(SceUInt32 phymem_type, SceUInt32 *result);</source> |
− | === | + | === SceSysmemForKernel_E68A9F1B === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0xE68A9F1B |
+ | |- | ||
+ | | 3.63 || 0x1DE4953F | ||
|} | |} | ||
− | + | <source lang="C">int SceSysmemForKernel_E68A9F1B(int a1, SceClass **ppClass);</source> | |
− | + | === sceKernelCheckOpenVMDomainForKernel === | |
− | |||
− | == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! 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. | |
− | |||
− | |||
− | |||
− | |||
− | <source lang=" | + | <source lang="C">SceUInt32 sceKernelCheckOpenVMDomainForKernel(void);</source> |
− | === | + | === sceeKernelSetNameHeapHookForKernel === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! 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. | |
− | <source lang="C">int | + | <source lang="C">int sceeKernelSetNameHeapHookForKernel(void *pHook);</source> |
− | === | + | === SceSysmemForKernel_22708F14 === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3.60 || | + | | 3.60-3.61 || 0x22708F14 |
+ | |- | ||
+ | | 3.63 || 0x456ECB54 | ||
|} | |} | ||
− | <source lang=" | + | <source lang="C">SceUInt32 SceSysmemForKernel_22708F14(void *a1, int a2);</source> |
− | === | + | === SceSysmemForKernel_22A26637 === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 3.60-3.61 || 0x22A26637 |