SceProcessmgr: Difference between revisions
CelesteBlue (talk | contribs) No edit summary |
CelesteBlue (talk | contribs) No edit summary |
||
Line 130: | Line 130: | ||
SceUInt32 unk_C; // return value of SceLibKernel_9F793F84 and used by SceShell for PSN auth | SceUInt32 unk_C; // return value of SceLibKernel_9F793F84 and used by SceShell for PSN auth | ||
} SceKernelBootParam; | } SceKernelBootParam; | ||
typedef struct SceLibkernelAddresses { // size is 0x1C on FW 3.60 | |||
SceSize size; // Size of this structure | |||
void *addr_1E4; | |||
void *addr_1E8; | |||
void *addr_1EC; | |||
void *addr_1F0; | |||
void *addr_1F4; | |||
void *addr_1F8; | |||
} SceLibkernelAddresses; | |||
typedef struct SceProcessmgrInfoInternal { | typedef struct SceProcessmgrInfoInternal { | ||
Line 189: | Line 199: | ||
== SceProcessmgr == | == SceProcessmgr == | ||
=== sceKernelLibcTime === | === sceKernelLibcTime === | ||
Line 293: | Line 291: | ||
<source lang="C">int sceKernelLibcGettimeofday(SceUInt64 *a1, SceUInt64 *a2);</source> | <source lang="C">int sceKernelLibcGettimeofday(SceUInt64 *a1, SceUInt64 *a2);</source> | ||
=== _sceKernelRegisterExitAddress === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.990 || 0x0278DFB7 | |||
|- | |||
| 3.60 || not present | |||
|} | |||
<source lang="C">int _sceKernelRegisterExitAddress(int a1, int a2, int a3);</source> | |||
=== _sceKernelRegisterLibkernelAddresses === | === _sceKernelRegisterLibkernelAddresses === | ||
Line 303: | Line 313: | ||
| 1.69-3.60 || 0x56C2E8FF | | 1.69-3.60 || 0x56C2E8FF | ||
|} | |} | ||
<source lang="C">int _sceKernelRegisterLibkernelAddresses(SceLibkernelAddresses *pAddresses);</source> | |||
=== sceKernelRegisterProcessTerminationCallback === | === sceKernelRegisterProcessTerminationCallback === | ||
Line 314: | Line 326: | ||
<source lang="C">int sceKernelRegisterProcessTerminationCallback(SceUID pid, void *cb);</source> | <source lang="C">int sceKernelRegisterProcessTerminationCallback(SceUID pid, void *cb);</source> | ||
=== | === sceKernelUnregisterProcessTerminationCallback === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 0.990-3.60 || | | 0.990-3.60 || 0x973A4527 | ||
|} | |} | ||
<source lang="C">int | <source lang="C">int sceKernelUnregisterProcessTerminationCallback(SceUID pid, void *cb);</source> | ||
=== | === sceKernelPowerLock === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 0.990-3.60 || | | 0.990-3.60 || 0x7AA73378 | ||
|} | |} | ||
<source lang="C"> | <source lang="C">int sceKernelPowerLock(SceKernelPowerTickType type);</source> | ||
=== | === sceKernelGetProcessTimeWideCore === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 0.990-3.60 || | | 0.990-3.60 || 0x89DA0967 | ||
|} | |} | ||
<source lang="C"> | <source lang="C">SceUInt64 sceKernelGetProcessTimeWideCore(void);</source> | ||
=== sceKernelLibcClock === | === sceKernelLibcClock === |
Revision as of 23:02, 18 June 2020
Process Manager
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceProcessmgr | Non-secure | Kernel | 0xF019E1DA |
3.57 | SceProcessmgr | Non-secure | Kernel | 0x19A9C477 |
3.60 | SceProcessmgr | Non-secure | Kernel | 0x8B8A6263 |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69-3.73 | SceProcessmgr | Non-secure | User | 0x2DD91812 |
1.69-3.73 | SceProcessmgrForDriver | Non-secure | Kernel | 0x746EC971 |
1.69-3.61 | SceProcessmgrForKernel | Non-secure | Kernel | 0x7A69DE86 |
3.63-3.73 | SceProcessmgrForKernel | Non-secure | Kernel | 0xEB1F8EF7 |
Types
typedef SceUInt32 SceKernelProcessType; #define SCE_KERNEL_PROCESS_TYPE_FULL_GAME 0x01010001 #define SCE_KERNEL_PROCESS_TYPE_MINI_APPLICATION 0x02010001 #define SCE_KERNEL_PROCESS_TYPE_SHELL 0x04020102 #define SCE_KERNEL_PROCESS_TYPE_KERNEL 0x10030103 #define SCE_KERNEL_PROCESS_CURRENT_PROCESS_BUDGET 0 typedef SceUInt32 SceKernelBudgetType; #define SCE_KERNEL_BUDGET_TYPE_FULL_GAME 0x1000000 #define SCE_KERNEL_BUDGET_TYPE_SHELL 0x4000000 #define SCE_KERNEL_BUDGET_TYPE_KERNEL 0x5000000 #define SCE_KERNEL_CPU_AFFINITY_FLAG_SYSTEM_CORE 0 #define SCE_KERNEL_CPU_AFFINITY_FLAG_ALL_USER 8 typedef struct SceKernelProcessInfo { // size is 0x24 or 0x4C on FW 0.931, 0xE8 on FW 3.60 SceSize size; //!< size of this struct, make sure it's 0xE8 SceUID pid; //!< our process ID int unk08; int unk0C; int unk10; SceUID ppid; //!< parent process ID SceUID unk18; int unk1C; // ex:7 int unk20; // ex:7F SceUID modid; void *unk28; // entry point? int unk2C; // ex:1 char name[0x1C]; int unk4C; void *unk50; void *unk54; SceUID unk58; int unk5C; // ex:-1 int unk60; int unk64; // ex:0x32 int unk68; int unk6C; int unk70; void *unk74[4 * 5 + 1]; int unk78[8]; } SceKernelProcessInfo; typedef struct SceKernelProcessModuleInfo { // size is ?0x28? SceUID pid; SceModuleLibraryExportInfo_t *lib_export_info; SceUID data_0x08; // uid? SceKernelModuleImportNonlinkedInfo_t *import_nonlinked_list; // allocated by sceKernelAlloc SceKernelModuleInfoObjBase_t *module_list; SceUID proc_main_module_id; uint16_t proc_module_count; uint16_t inhibit_state; void *data_0x1C; int cpu_addr; int modid; // ex: 0x1009B } SceKernelProcessModuleInfo; typedef struct SceKernelBudgetInfo { // size is 0x480 on FW 3.60 SceSize size; // Size of this structure SceUID pid; char name[0x20]; SceUInt32 num; // 0x28 char name2[0x20]; // 0x2C char some_struct_B0[0xB0]; // 0x4C char unk[0x35C]; } SceKernelBudgetInfo; typedef struct SceKernelProcessOpt { // size is 0x14 or 0x1C on FW 0.931, 0x20 on FW 0.990, 0x40 on FW 3.60 SceSize size; // Size of this structure SceUInt32 unk_4; SceUInt32 cpuAffinityMask; SceUInt32 initPriority; SceSize stackSize; SceUInt32 unk_14; SceUInt32 budgetId; SceUInt32 unk_1C; } SceKernelProcessOpt; typedef struct SceKernelBootParam { // size is up to 0x100 SceUInt32 unk_0; // ex: 0, 1 SceUInt32 cpuAffinityMask; // ex: 0, 2, 8 SceUInt32 initPriority; // ex: 0 SceSize stackSize; // ex: 0x4000, 0x8000 SceUInt32 unk_10; // ex: 0, 0x12 SceUInt32 budgetId; // ex: 0, 2, 3, 0xC SceUInt32 unk_1C; } SceKernelBootParam; typedef struct SceKernelProcessParam { char[4] magic; // "PSP2" SceUInt32 unk_4 SceUInt32 unk_8 SceUInt32 unk_C; // return value of SceLibKernel_9F793F84 and used by SceShell for PSN auth } SceKernelBootParam; typedef struct SceLibkernelAddresses { // size is 0x1C on FW 3.60 SceSize size; // Size of this structure void *addr_1E4; void *addr_1E8; void *addr_1EC; void *addr_1F0; void *addr_1F4; void *addr_1F8; } SceLibkernelAddresses; typedef struct SceProcessmgrInfoInternal { uint32_t sce_rsv[2]; uint32_t data_08[2]; uint32_t data_10; SceUID data_14; SceUID data_18; SceUID data_1C; uint32_t data_20[4]; void *data_30; void *data_34; uint32_t data_38; uint32_t data_3C; // ex:1 uint32_t data_40; // ex:1 uint32_t data_44; // ex:0x1D0000 void *data_48; SceUID data_4C; uint32_t data_50; // ex:0xFFFFFFFF uint32_t data_54; // ex:7 uint32_t data_58; // ex:1 SceUID data_5C; void *data_60; SceUID this_obj_uid; SceUID data_68; SceUID data_6C; uint32_t data_70; // ex:0xFFFFFFFF void *data_74; SceUID data_78; uint32_t data_7C; SceUID data_80; SceUID data_84; // heap uid for RemoteKPLS? SceUID data_88; SceUID data_8C; SceUID data_90; uint32_t data_94; uint32_t data_98; // ex:0x7F SceKernelModuleProcInfo_t *proc_module_info; uint32_t data_A0; // ex:0x40 uint8_t data_A4[0x10]; // rnd data? uint32_t data_B4; SceSelfAuthInfo self_auth_info; int data_148; char thread_name[0x20]; int thread_priority; SceSize stack_size; uint8_t data_174[0x4C]; void *module_proc_param; SceUID data_1C4; SceUID data_1C8; SceUID data_1CC; SceUID data_1D0; // ex:-1 SceUID data_1D4; // for user SceUID data_1D8; // for user SceUID data_1DC; // for user // more } SceProcessmgrInfoInternal; // size is 0x4E0
SceProcessmgr
sceKernelLibcTime
Version | NID |
---|---|
0.990-3.60 | 0x0039BE45 |
int sceKernelLibcTime(SceUInt32 *pTime);
sceKernelGetProcessTitleId
Version | NID |
---|---|
0.990 | not present |
1.69-3.60 | 0x03A48771 |
sceKernelGetProcessName
Version | NID |
---|---|
0.990 | not present |
1.69-3.60 | 0x10C52C95 |
sceKernelIsCDialogAvailable
Version | NID |
---|---|
0.990 | not present |
1.69-3.60 | 0x143BC4D6 |
int sceKernelIsCDialogAvailable(void)
sceKernelPowerTick
Version | NID |
---|---|
0.990-3.60 | 0x2252890C |
int sceKernelPowerTick(SceKernelPowerTickType type);
sceKernelGetProcessParam
Version | NID |
---|---|
0.990-3.60 | 0x2BE3E066 |
SceKernelProcessParam *sceKernelGetProcessParam(void);
_sceKernelGetTimer5Reg
Version | NID |
---|---|
0.990 | not present |
1.69-3.60 | 0x2F73D72F |
sceKernelPowerUnlock
Version | NID |
---|---|
0.990-3.60 | 0x466C0CBD |
int sceKernelPowerUnlock(SceKernelPowerTickType type);
sceKernelLibcGettimeofday
Version | NID |
---|---|
0.990-3.60 | 0x4B879059 |
int sceKernelLibcGettimeofday(SceUInt64 *a1, SceUInt64 *a2);
_sceKernelRegisterExitAddress
Version | NID |
---|---|
0.990 | 0x0278DFB7 |
3.60 | not present |
int _sceKernelRegisterExitAddress(int a1, int a2, int a3);
_sceKernelRegisterLibkernelAddresses
Version | NID |
---|---|
0.990 | not present |
1.69-3.60 | 0x56C2E8FF |
int _sceKernelRegisterLibkernelAddresses(SceLibkernelAddresses *pAddresses);
sceKernelRegisterProcessTerminationCallback
Version | NID |
---|---|
0.990-3.60 | 0x5EC77870 |
int sceKernelRegisterProcessTerminationCallback(SceUID pid, void *cb);
sceKernelUnregisterProcessTerminationCallback
Version | NID |
---|---|
0.990-3.60 | 0x973A4527 |
int sceKernelUnregisterProcessTerminationCallback(SceUID pid, void *cb);
sceKernelPowerLock
Version | NID |
---|---|
0.990-3.60 | 0x7AA73378 |
int sceKernelPowerLock(SceKernelPowerTickType type);
sceKernelGetProcessTimeWideCore
Version | NID |
---|---|
0.990-3.60 | 0x89DA0967 |
SceUInt64 sceKernelGetProcessTimeWideCore(void);
sceKernelLibcClock
Version | NID |
---|---|
0.990-3.60 | 0x9E45DA09 |
SceUInt64 sceKernelLibcClock(void);
_sceKernelExitProcessForUser
Version | NID |
---|---|
0.990-3.60 | 0xC053DC6B |
int _sceKernelExitProcessForUser(int status);
sceKernelGetStdin
Version | NID |
---|---|
0.931-3.60 | 0xC1727F59 |
Returns the fd of the current process stdin.
SceUID sceKernelGetStdin(void);
sceKernelGetCurrentProcess
Version | NID |
---|---|
1.69-3.60 | 0xCD248267 |
Wrapper to sceKernelGetProcessIdForDriver.
Returns the process ID.
SceUID sceKernelGetCurrentProcess(void);
sceKernelIsGameBudget
Version | NID |
---|---|
0.990-3.60 | 0xCE0F02F0 |
SceBool sceKernelIsGameBudget(void);
sceKernelGetProcessTimeCore
Version | NID |
---|---|
0.990-3.60 | 0xD37A8437 |
int sceKernelGetProcessTimeCore(SceUInt64 *pTime);
sceKernelGetStdout
Version | NID |
---|---|
0.931-3.60 | 0xE5AA625C |
Returns the fd of the current process stdout.
SceUID sceKernelGetStdout(void);
sceKernelGetRemoteProcessTime
Version | NID |
---|---|
0.990-3.60 | 0xE6E9FCA3 |
int sceKernelGetRemoteProcessTime(SceUID pid, SceUInt64 *pTime);
sceKernelCallAbortHandler
Version | NID |
---|---|
0.990 | not present |
1.69-3.60 | 0xEB6E50BB |
sceKernelGetProcessTimeLowCore
Version | NID |
---|---|
0.990-3.60 | 0xF5D0D4C6 |
int sceKernelGetProcessTimeLowCore(void);
sceKernelGetStderr
Version | NID |
---|---|
0.931-3.60 | 0xFA5E3ADA |
Returns the fd of the current process stderr.
SceUID sceKernelGetStderr(void);
sceKernelCDialogSessionClose
Version | NID |
---|---|
0.990 | not present |
3.60 | 0xDB4CC1D0 |
sceKernelCDialogSetLeaseLimit
Version | NID |
---|---|
0.990 | not present |
3.60 | 0xEC8DDAAD |
sceKernelGetExtraTty
Version | NID |
---|---|
0.990 | not present |
3.60 | 0x2D635A00 |
sceKernelLibcGmtime_r
Version | NID |
---|---|
0.990 | not present |
3.60 | 0xBCA437CD |
sceKernelLibcLocaltime_r
Version | NID |
---|---|
0.990 | not present |
3.60 | 0x94F041ED |
sceKernelLibcMktime
Version | NID |
---|---|
0.990 | not present |
3.60 | 0x890BDC39 |
SceProcessmgrForDriver
sceKernelGetCurrentProcessIdForDriver
Version | NID |
---|---|
0.931 | 0x3D4C250E |
3.60 | not present |
Returns the current process ID.
Wrapper for SceKernelThreadMgr sceKernelGetProcessIdForKernel.
SceUID sceKernelGetCurrentProcessIdForDriver(void);
sceKernelAllocCurrentProcessHeapForDriver
Version | NID |
---|---|
0.990-3.60 | 0x5468892A |
void *sceKernelAllocCurrentProcessHeapForDriver(SceSize size, SceKernelHeapMemoryOpt *pOpt);
sceKernelAllocRemoteProcessHeapForDriver
Version | NID |
---|---|
0.990-3.60 | 0x00B1CA0F |
void *sceKernelAllocRemoteProcessHeapForDriver(SceUID pid, SceSize size, SceKernelHeapMemoryOpt *pOpt);
sceKernelFreeCurrentProcessHeapForDriver
Version | NID |
---|---|
0.990-3.60 | 0xFC2A424E |
int sceKernelFreeCurrentProcessHeapForDriver(void *ptr);
sceKernelFreeRemoteProcessHeapForDriver
Version | NID |
---|---|
0.990-3.60 | 0x9C28EA9A |
int sceKernelFreeRemoteProcessHeapForDriver(SceUID pid, void *ptr);
sceKernelGetProcessInfoForDriver
Version | NID |
---|---|
0.931-3.68 | 0x0AFF3EAE |
Retrieves process information.
int sceKernelGetProcessInfoForDriver(SceUID pid, SceKernelProcessInfo *pInfo);
sceKernelGetProcessStatusForDriver
Version | NID |
---|---|
0.931-3.60 | 0x65B120B8 |
This function queries the status of a given process. Davee is unsure what exactly the bits represent. It seems 0x10 is related to suspension status, but he's not confident in that assumption.
/** * @brief Get the status of a given process. * @param[in] pid The process ID to query. * @param[out] status The bit field status of the process. * @return Zero on success, < 0 on error. */ int sceKernelGetProcessStatusForDriver(SceUID pid, int *status);
sceKernelSetProcessStatusForDriver
Version | NID |
---|---|
0.931-3.60 | 0x1D0F3185 |
int sceKernelSetProcessStatusForDriver(SceUID pid, SceUInt32 status);
sceKernelIsProcessSuspendingForDriver
Version | NID |
---|---|
0.931-3.60 | 0x0CC5B30C |
Return whether the process is suspending or not.
int sceKernelIsProcessSuspendingForDriver(SceUID pid);
sceKernelGetProcessTimeLowCoreForDriver
Version | NID |
---|---|
3.60 | 0x02179E12 |
unsigned int sceKernelGetProcessTimeLowCoreForDriver(void);
sceKernelGetProcessTimeWideCoreForDriver
Version | NID |
---|---|
3.60 | 0x82D94BE9 |
uint64_t sceKernelGetProcessTimeWideCoreForDriver(void);
sceKernelGetProcessTimeCoreForDriver
Version | NID |
---|---|
3.60 | 0xEC283166 |
int sceKernelGetProcessTimeCoreForDriver(uint64_t *pTime);
sceKernelRegisterKPLSForDriver
Version | NID |
---|---|
0.940-3.60 | 0x3801D7D6 |
Temp name was sceKernelCreateProcessLocalStorageForDriver.
Return key.
KPLS cannot create more than 32
int sceKernelRegisterKPLSForDriver(const char *name, SceSize size);
sceKernelGetCurrentKPLSForDriver
Version | NID |
---|---|
0.990-3.60 | 0xEE694840 |
Temp name was sceKernelGetProcessLocalStorageAddrForDriver.
void *sceKernelGetCurrentKPLSForDriver(int key);
sceKernelGetRemoteKPLSForDriver
Version | NID |
---|---|
0.940-3.68 | 0xAF80F39C |
Temp name was sceKernelGetProcessLocalStorageAddrForPidForDriver.
This functions gets Remote Kernel Process Local Storage.
int sceKernelGetRemoteKPLSForDriver(SceUID pid, int key, void **kpls_addr, int force_create);
sceKernelGetRemoteProcessTimeForDriver
Version | NID |
---|---|
3.60 | 0xC074EB31 |
int sceKernelGetRemoteProcessTimeForDriver(SceUID pid, uint64_t *pTime);
sceKernelIsCDialogAvailableForDriver
Version | NID |
---|---|
3.60 | 0x2F6020B7 |
int sceKernelIsCDialogAvailableForDriver(void)
sceKernelIsGameBudgetForDriver
Version | NID |
---|---|
3.60 | 0xF7A8BB25 |
int sceKernelIsGameBudgetForDriver(void);
SceProcessmgrForDriver_C715591F
Version | NID |
---|---|
3.60 | 0xC715591F |
Called by "sceProcessMgrLaunchAppFor" ?to check?.
int SceProcessmgrForDriver_C715591F(void);
sceKernelGetCompiledSdkVersionByPidForDriver
Version | NID |
---|---|
3.60 | 0xD141C076 |
int sceKernelGetCompiledSdkVersionByPidForDriver(SceUID pid, SceUInt32 *puiSdkVer);
sceKernelRegisterCoredumpHandlerForDriver
Version | NID |
---|---|
3.60 | 0x21A6F0EC |
int sceKernelRegisterCoredumpHandlerForDriver(void *handler, SceSize size, void *memblock_addr);
sceKernelUnregisterCoredumpHandlerForDriver
Version | NID |
---|---|
3.60 | 0x33B3D026 |
int sceKernelUnregisterCoredumpHandlerForDriver(void);
SceProcessmgrForDriver_5E882B60
Version | NID |
---|---|
0.990 | 0x5E882B60 |
3.60 | not present |
Registers some callback.
int SceProcessmgrForDriver_5E882B60(void *cb);
SceProcessmgrForDriver_2CEB1C7A
Version | NID |
---|---|
0.990 | not present |
3.60 | 0x2CEB1C7A |
Cleans process memory in range with pseudo random values. Both addres and length must be aligned on 4 bytes. Uses SceSysmem#sceXorshift128ForDriver to update each dword in range.
int SceProcessmgrForDriver_2CEB1C7A(SceUID pid, void *pBase, SceSize length);
SceProcessmgrForKernel
sceKernelCreateProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0x71CF71FD |
Temp name was sceKernelLaunchAppForKernel.
/** * @brief Create a process * @param[in] name Usually TitleId of the application. * @param[in] type Type of the process. * @param[in] path Path of the SELF. * @param[in] pOpt Options of the process. * @return Process ID of the created process on success, < 0 on error. */ SceUID sceKernelCreateProcessForKernel(const char* name, SceKernelProcessType type, const char *path, SceKernelProcessOpt *pOpt);
sceKernelStartProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0x38FB7BCA |
/** * @brief Start a process * @param[in] pid Process ID. * @param[in] type Type of the process. * @param[in] argSize Size of the arguments block. * @param[in] pArgBlock Arguments block. * @return Return value of the started process on success, < 0 on error. */ int sceKernelStartProcessForKernel(SceUID pid, SceKernelProcessType type, SceSize argSize, const void *pArgBlock);
sceKernelStartProcessExtForKernel
Version | NID |
---|---|
0.990-3.60 | 0x36728B16 |
Temp name was sceKernelStartProcess2ForKernel.
/** * @brief Start a process with extended parameters * @param[in] pid Process ID. * @param[in] type Type of the process. * @param[in] argSize Size of the arguments block. * @param[in] pArgBlock Arguments block. * @param[in] flags Unknown flags. * @return Return value of the started process on success, < 0 on error. */ int sceKernelStartProcessExtForKernel(SceUID pid, SceKernelProcessType type, SceSize argSize, const void *pArgBlock, uint32_t flags);
sceKernelSpawnProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0x31834C49 |
Calls sceKernelCreateProcessForKernel then sceKernelStartProcessForKernel.
/** * @brief Spawn a process * @param[in] name Usually TitleId of the application. * @param[in] type Type of the process. * @param[in] path Path of the SELF. * @param[in] argSize Size of the arguments block. * @param[in] pArgBlock Arguments block. * @param[in] pOpt Options of the process. * @return Process ID of the spawned process on success, < 0 on error. */ SceUID sceKernelSpawnProcessForKernel(const char *name, SceKernelProcessType type, const char *path, SceSize argSize, const void *pArgBlock, SceKernelProcessOpt *pOpt);
sceKernelSpawnProcessExtForKernel
Version | NID |
---|---|
0.990-3.60 | 0x8F320D2B |
Calls sceKernelCreateProcessForKernel then sceKernelStartProcessExtForKernel.
/** * @brief Spawn a process with extended parameters * @param[in] name Usually TitleId of the application. * @param[in] type Type of the process. * @param[in] path Path of the SELF. * @param[in] argSize Size of the arguments block. * @param[in] pArgBlock Arguments block. * @param[in] pOpt Options of the process. * @param[in] flags Unknown flags. * @return Process ID of the spawned process on success, < 0 on error. */ SceUID sceKernelSpawnProcessExtForKernel(const char *name, SceKernelProcessType type, const char *path, SceSize argSize, const void *pArgBlock, SceKernelProcessOpt *pOpt, SceUInt32 flags);
sceKernelUIDtoProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0xB9E68092 |
Temp name was sceKernelGetProcessKernelBufForKernel.
Gets the process privileged only buffer.
void *sceKernelUIDtoProcessForKernel(SceUID pid);
sceKernelGetProcessMainThreadForDebuggerForKernel
Version | NID |
---|---|
0.931-3.60 | 0x95F9ED94 |
/** * @brief Get the main thread for a given process. * @param[in] pid The process id to query for. * @return The thread UID on success, else < 0 on error. */ SceUID sceKernelGetProcessMainThreadForDebuggerForKernel(SceUID pid);
sceKernelProcessSuspendForLoadpForKernel
Version | NID |
---|---|
0.931 | 0x3EC5FDF4 |
3.60 | not present |
/** * @brief Resume a suspended process. * @param[in] pid The process to resume. * @return Zero on success, < 0 on error. */ int sceKernelProcessSuspendForLoadpForKernel(SceUID pid);
sceKernelProcessDebugSuspendForKernel
Version | NID |
---|---|
0.990-3.60 | 0x6AECE4CD |
Temp name was sceKernelSuspendProcessForKernel.
/** * @brief Suspend a running process. * @param[in] pid The process to suspend. * @param[in] status The status to set to the process. * @return Zero on success, < 0 on error. */ int sceKernelProcessDebugSuspendForKernel(SceUID pid, int status);
sceKernelProcessDebugResumeForKernel
Version | NID |
---|---|
0.990-3.60 | 0x080CDC59 |
Temp name was sceKernelResumeProcessForKernel.
/** * @brief Resume a suspended process. * @param[in] pid The process to resume. * @return Zero on success, < 0 on error. */ int sceKernelProcessDebugResumeForKernel(SceUID pid);
sceKernelResumeProcessForDebuggerForKernel
Version | NID |
---|---|
0.931-3.60 | 0xB13E3C7B |
/** * @brief Resume a suspended process. * @param[in] pid The process to resume. * @return Zero on success, < 0 on error. */ int sceKernelResumeProcessForDebuggerForKernel(SceUID pid);
sceKernelResumeProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0xE0A9C9C4 |
/** * @brief Resume a suspended process. * @param[in] pid The process to resume. * @return Zero on success, < 0 on error. */ int sceKernelResumeProcessForKernel(SceUID pid);
sceKernelExitProcessForKernel
Version | NID |
---|---|
0.990-3.60 | 0x4CA7DC42 |
int sceKernelExitProcessForKernel(int status);
sceKernelSetProcessSelfAuthInfoForKernel
Version | NID |
---|---|
0.931-0.990 | 0x5ABA2772 |
3.60 | not present |
int sceKernelSetProcessSelfAuthInfoForKernel(SceUID pid, SceSelfAuthInfo *self_auth_info);
sceKernelGetProcessSelfAuthInfoForKernel
Version | NID |
---|---|
0.931-3.60 | 0xE4C83B0D |
Temp name was sceKernelGetProcessAuthidForKernel.
SceSelfAuthInfo
type is described in sceKernelSysrootGetProcessSelfAuthInfoForKernel.
int sceKernelGetProcessSelfAuthInfoForKernel(SceUID pid, SceSelfAuthInfo *self_auth_info);
sceKernelLibcTimeForKernel
Version | NID |
---|---|
3.60 | 0x9E38C556 |
sceKernelLibcGettimeofdayForKernel
Version | NID |
---|---|
3.60 | 0xDE8B8B5E |
sceKernelGetProcessClassForKernel
Version | NID |
---|---|
3.60 | 0xC6820972 |
Temp name was sceKernelGetClassForUid2ForKernel.
SceClass *sceKernelGetProcessClassForKernel(void);
sceKernelKillProcessForDebuggerForKernel
Version | NID |
---|---|
0.931-3.60 | 0x90C27779 |
int sceKernelKillProcessForDebuggerForKernel(SceUID pid);
sceKernelKillProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0xA1071106 |
int sceKernelKillProcessForKernel(SceUID pid, int status);
sceKernelGetMMUL1InfoForKernel
Version | NID |
---|---|
0.931-0.990 | 0xC526C6F2 |
3.60 | not present |
int sceKernelGetMMUL1InfoForKernel(SceUID pid, const void *addr, void *pInfo);
sceKernelGetMMUL2InfoForKernel
Version | NID |
---|---|
0.931 | 0xE2681221 |
3.60 | not present |
int sceKernelGetMMUL2InfoForKernel(SceUID pid, const void *addr, void *pInfo);
sceKernelWaitProcessEndForKernel
Version | NID |
---|---|
0.931-3.60 | 0x0EE2658E |
int sceKernelWaitProcessEndForKernel(SceUID pid, int *res, SceUInt32 *pTimeout);
sceKernelGetPHWPForKernel
Version | NID |
---|---|
0.931-3.60 | 0xC55BF6C3 |
int sceKernelGetPHWPForKernel(SceUID pid, SceUInt32 a2, int *a3, int *a4);
sceKernelSetPHWPForKernel
Version | NID |
---|---|
0.931-3.60 | 0x54D7B16A |
int sceKernelSetPHWPForKernel(SceUID pid, int a2, int a3, int a4);
sceKernelGetPHBPForKernel
Version | NID |
---|---|
0.931-3.60 | 0xA9C20202 |
int sceKernelGetPHBPForKernel(SceUID pid, SceUInt32 a2, int *a3, int *a4);
sceKernelSetPHBPForKernel
Version | NID |
---|---|
0.931-3.60 | 0x59FA3216 |
int sceKernelSetPHBPForKernel(SceUID pid, int a2, int a3, int a4);
sceKernelGetProcessAppForKernel
Version | NID |
---|---|
0.931-3.60 | 0x34FA9645 |
int sceKernelGetProcessAppForKernel(SceUID pid);
sceKernelGetProcessParentIdForKernel
Version | NID |
---|---|
0.931-3.60 | 0x3C4D2889 |
// returns the parent process PID int sceKernelGetProcessParentIdForKernel(SceUID pid);
sceKernelSuspendProcessForDebuggerForKernel
Version | NID |
---|---|
0.931-3.60 | 0x234A80B6 |
/** * @brief Suspend a running process. * @param[in] pid The process to suspend. * @return Zero on success, < 0 on error. */ int sceKernelSuspendProcessForDebuggerForKernel(SceUID pid);
sceKernelSuspendProcessForKernel
Version | NID |
---|---|
0.990-3.60 | 0xCF83C23B |
/** * @brief Suspend a running process. * @param[in] pid The process to suspend. * @param[in] status The status to set to the process. * @return Zero on success, < 0 on error. */ int sceKernelSuspendProcessForKernel(SceUID pid, int status);
sceKernelGetProcessImageForDebuggerForKernel
Version | NID |
---|---|
0.931-0.990 | 0xCF71D9DD |
Return Process Image on success.
void *sceKernelGetProcessImageForDebuggerForKernel(SceUID pid);
sceKernelProcessAppendForKernel
Version | NID |
---|---|
0.931-0.990 | 0xC4E349D5 |
// if pid2 is not set, current pid is used instead int sceKernelProcessAppendForKernel(SceUID pid1, SceUID pid2);
sceKernelProcessAssocAppForKernel
Version | NID |
---|---|
0.931-3.60 | 0x76C89783 |
int sceKernelProcessAssocAppForKernel(SceUID pid, int unk_in);
sceKernelCreateBudgetForKernel
Version | NID |
---|---|
0.931-3.60 | 0x05F74BAF |
typedef struct SceKernelBudgetOpt { // size is 0x18 on FW 0.931-3.60 SceSize size; // Size of this structure SceBool unk_4; // cdram related SceSize ddrmain_size; SceSize main_size; SceSize cdialog_size; // ddrpcnt SceSize cdram_size; // or maybe budgetId } SceKernelBudgetOpt; int sceKernelCreateBudgetForKernel(const char *appName, SceUInt32 process_type, SceKernelBudgetOpt *pOpt);
sceKernelDeleteBudgetForKernel
Version | NID |
---|---|
0.931-3.60 | 0xE5A60577 |
Delete budget for the current process.
// budget: maybe 0, 1, 2 or 3 int sceKernelDeleteBudgetForKernel(SceUInt32 budget);
sceKernelGetBudgetInfoForDebuggerForKernel
Version | NID |
---|---|
0.990-3.60 | 0xF3C4A83B |
Uses SceSysmem#SceSysmemForKernel_54E85275 to get a 0xB0 bytes buffer.
int sceKernelGetBudgetInfoForDebuggerForKernel(SceUID pid, SceUInt32 attr, SceKernelBudgetInfo *pInfo);
sceKernelGetProcessModuleInfoForKernel
Version | NID |
---|---|
1.03 | not present |
3.60 | 0xC1C91BB2 |
SceKernelProcessModuleInfo *sceKernelGetProcessModuleInfoForKernel(SceUID pid);
SceProcessmgrForKernel_B75FB970
Version | NID |
---|---|
0.990 | not present |
3.60 | 0xB75FB970 |
Increments Process UID Reference List counter.
// unk_bool depends of the process type int SceProcessmgrForKernel_B75FB970(SceUID pid, SceBool unk_bool);
SceProcessmgrForKernel_0A5A2CF1
Version | NID |
---|---|
0.990 | not present |
3.60 | 0xB75FB970 |
Decrements Process UID Reference List counter.
// unk_bool depends of the process type int SceProcessmgrForKernel_0A5A2CF1(SceUID pid, SceBool unk_bool);
sceKernelFreeRemoteProcessKernelHeapForKernel
Version | NID |
---|---|
0.990 | not present |
3.60 | 0x41815DF2 |
Requires DIP switch 210.
int sceKernelFreeRemoteProcessKernelHeapForKernel(SceUID pid, void *ptr);
sceKernelGetProcessBudgetTypeForKernel
Version | NID |
---|---|
0.990 | not present |
3.60 | 0x2ABFB6C1 |
SceKernelBudgetType sceKernelGetProcessBudgetTypeForKernel(SceUID pid);
sceKernelProcessAllocKernelBudgetHeapMemoryForKernel
Version | NID |
---|---|
0.990 | not present |
3.60 | 0x3C5E2F08 |
int sceKernelProcessAllocKernelBudgetHeapMemoryForKernel(SceUID pid, SceSize size);