SceProcessmgr: Difference between revisions
CelesteBlue (talk | contribs) (→Types) |
CelesteBlue (talk | contribs) |
||
Line 529: | Line 529: | ||
== SceProcessmgrForKernel == | == SceProcessmgrForKernel == | ||
=== | === sceKernelCreateProcessForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 0.931-3.60 || | | 0.931-3.60 || 0x71CF71FD | ||
|} | |} | ||
Temp name was sceKernelLaunchAppForKernel. | |||
<source lang="C"> | |||
typedef struct SceKernelProcessOpt { // size is 0x14 on FW 0.931 | |||
SceSize size; // Size of this structure | |||
char unk[0x10]; | |||
} SceKernelProcessOpt; | |||
< | /** | ||
* @brief Create a process | |||
* @param[in] titleid TitleId of the process. | |||
* @param[in] process_type Some unknown flags. | |||
* @param[in] path Path of the eboot.bin. | |||
* @param[in] pOpt Some unknown options. | |||
* @return Process ID of the launched app on success, < 0 on error. | |||
*/ | |||
SceUID sceKernelCreateProcessForKernel(const char* titleid, SceUInt32 process_type, const char *path, SceKernelProcessOpt *pOpt); | |||
</source> | |||
=== sceKernelStartProcessForKernel === | === sceKernelStartProcessForKernel === | ||
Line 549: | Line 564: | ||
|} | |} | ||
<source lang="C">int sceKernelStartProcessForKernel(SceUID pid, | <source lang="C">int sceKernelStartProcessForKernel(SceUID pid, SceUInt32 process_type, SceSize argSize, const void *pArgBlock);</source> | ||
=== sceKernelStartProcess2ForKernel === | === sceKernelStartProcess2ForKernel === | ||
Line 561: | Line 576: | ||
<source lang="C">int sceKernelStartProcess2ForKernel(SceUID pid, int a2, int a3, int a4, int a5);</source> | <source lang="C">int sceKernelStartProcess2ForKernel(SceUID pid, int a2, int a3, int a4, int a5);</source> | ||
=== | === sceKernelSpawnProcessForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 0.931-3.60 || | | 0.931-3.60 || 0x31834C49 | ||
|} | |} | ||
Calls sceKernelCreateProcessForKernel then sceKernelStartProcessForKernel. | |||
<source lang="C"> | <source lang="C">int sceKernelSpawnProcessForKernel(const char *title_id, SceUInt32 process_type, const char *path, SceSize argSize, const void *pArgBlock, SceKernelProcessOpt *pOpt);</source> | ||
</source> | |||
=== sceKernelUIDtoProcessForKernel === | === sceKernelUIDtoProcessForKernel === |
Revision as of 18:25, 18 January 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.60 | SceProcessmgr | Non-secure | User | 0x2DD91812 |
1.69-3.60 | SceProcessmgrForDriver | Non-secure | Kernel | 0x746EC971 |
1.69-3.60 | SceProcessmgrForKernel | Non-secure | Kernel | 0x7A69DE86 |
Types
Process types:
- 0x01010001: uses AddressSpace
- 0x02010001: mini application process
- 0x04020102: ?shell process? Shell CDRAM PhyMemPart for Shell Budget
- 0x10030103: kernel process
SceProcessmgr
_sceKernelRegisterExitAddress
Version | NID |
---|---|
0.990 | 0x0278DFB7 |
sceKernelLibcTime
Version | NID |
---|---|
1.69-3.60 | 0x0039BE45 |
sceKernelGetProcessTitleId
Version | NID |
---|---|
1.69-3.60 | 0x03A48771 |
sceKernelGetProcessName
Version | NID |
---|---|
1.69-3.60 | 0x10C52C95 |
sceKernelIsCDialogAvailable
Version | NID |
---|---|
1.69-3.60 | 0x143BC4D6 |
sceKernelPowerTick
Version | NID |
---|---|
1.69-3.60 | 0x2252890C |
sceKernelGetProcessParam
Version | NID |
---|---|
1.69-3.60 | 0x2BE3E066 |
_sceKernelGetTimer5Reg
Version | NID |
---|---|
1.69-3.60 | 0x2F73D72F |
sceKernelPowerUnlock
Version | NID |
---|---|
1.69-3.60 | 0x466C0CBD |
sceKernelLibcGettimeofday
Version | NID |
---|---|
1.69-3.60 | 0x4B879059 |
_sceKernelRegisterLibkernelAddresses
Version | NID |
---|---|
1.69-3.60 | 0x56C2E8FF |
sceKernelRegisterProcessTerminationCallback
Version | NID |
---|---|
1.69-3.60 | 0x5EC77870 |
sceKernelPowerLock
Version | NID |
---|---|
1.69-3.60 | 0x7AA73378 |
sceKernelGetProcessTimeWideCore
Version | NID |
---|---|
1.69-3.60 | 0x89DA0967 |
sceKernelUnregisterProcessTerminationCallback
Version | NID |
---|---|
1.69-3.60 | 0x973A4527 |
sceKernelLibcClock
Version | NID |
---|---|
1.69-3.60 | 0x9E45DA09 |
_sceKernelExitProcessForUser
Version | NID |
---|---|
1.69-3.60 | 0xC053DC6B |
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 |
---|---|
1.69-3.60 | 0xCE0F02F0 |
sceKernelGetProcessTimeCore
Version | NID |
---|---|
1.69-3.60 | 0xD37A8437 |
sceKernelGetStdout
Version | NID |
---|---|
0.931-3.60 | 0xE5AA625C |
Returns the fd of the current process stdout.
SceUID sceKernelGetStdout(void);
sceKernelGetRemoteProcessTime
Version | NID |
---|---|
1.69-3.60 | 0xE6E9FCA3 |
sceKernelCallAbortHandler
Version | NID |
---|---|
1.69-3.60 | 0xEB6E50BB |
sceKernelGetProcessTimeLowCore
Version | NID |
---|---|
1.69-3.60 | 0xF5D0D4C6 |
sceKernelGetStderr
Version | NID |
---|---|
0.931-3.60 | 0xFA5E3ADA |
Returns the fd of the current process stderr.
SceUID sceKernelGetStderr(void);
sceKernelCDialogSessionClose
Version | NID |
---|---|
3.60 | 0xDB4CC1D0 |
sceKernelCDialogSetLeaseLimit
Version | NID |
---|---|
3.60 | 0xEC8DDAAD |
sceKernelGetExtraTty
Version | NID |
---|---|
3.60 | 0x2D635A00 |
sceKernelLibcGmtime_r
Version | NID |
---|---|
3.60 | 0xBCA437CD |
sceKernelLibcLocaltime_r
Version | NID |
---|---|
3.60 | 0x94F041ED |
sceKernelLibcMktime
Version | NID |
---|---|
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);
sceKernelAllocRemoteProcessHeapForDriver
Version | NID |
---|---|
0.990-3.60 | 0x00B1CA0F |
3.60
void *sceKernelAllocRemoteProcessHeapForDriver(SceUID pid, SceSize len, void *pOpt);
sceKernelFreeRemoteProcessHeapForDriver
Version | NID |
---|---|
0.990-3.60 | 0x9C28EA9A |
sceKernelSetProcessStatusForDriver
Version | NID |
---|---|
0.931-3.60 | 0x1D0F3185 |
int sceKernelSetProcessStatusForDriver(SceUID pid, SceUInt32 status);
sceKernelGetProcessInfoForDriver
Version | NID |
---|---|
0.931-3.68 | 0x0AFF3EAE |
Retrieves process information.
typedef struct SceKernelProcessInfo { // size is 0x24 or 0x4C on FW 0.931, 0xE8 on FW 3.60 SceSize size; //!< Size of this structure SceUID pid; //!< Process ID int unk_8; int unk_C; int unk_10; SceUID ppid; //!< Parent process ID int unk[0xE8 / 4 - 6]; //!< the rest is unknown } SceKernelProcessInfo; 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);
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 |
sceKernelGetProcessTimeWideCoreForDriver
Version | NID |
---|---|
3.60 | 0x82D94BE9 |
sceKernelGetProcessTimeCoreForDriver
Version | NID |
---|---|
3.60 | 0xEC283166 |
sceKernelRegisterKPLSForDriver
Version | NID |
---|---|
0.940-3.60 | 0x3801D7D6 |
Temp name was sceKernelCreateProcessLocalStorageForDriver.
Return ?key?.
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 |
sceKernelIsCDialogAvailableForDriver
Version | NID |
---|---|
3.60 | 0x2F6020B7 |
sceKernelIsGameBudgetForDriver
Version | NID |
---|---|
3.60 | 0xF7A8BB25 |
SceProcessmgrForDriver_C715591F
Version | NID |
---|---|
3.60 | 0xC715591F |
Called by "sceProcessMgrLaunchAppFor".
sceKernelGetCompiledSdkVersionByPidForDriver
Version | NID |
---|---|
3.60 | 0xD141C076 |
int sceKernelGetCompiledSdkVersionByPidForDriver(int pid, int *result);
SceProcessmgrForKernel
sceKernelCreateProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0x71CF71FD |
Temp name was sceKernelLaunchAppForKernel.
typedef struct SceKernelProcessOpt { // size is 0x14 on FW 0.931 SceSize size; // Size of this structure char unk[0x10]; } SceKernelProcessOpt; /** * @brief Create a process * @param[in] titleid TitleId of the process. * @param[in] process_type Some unknown flags. * @param[in] path Path of the eboot.bin. * @param[in] pOpt Some unknown options. * @return Process ID of the launched app on success, < 0 on error. */ SceUID sceKernelCreateProcessForKernel(const char* titleid, SceUInt32 process_type, const char *path, SceKernelProcessOpt *pOpt);
sceKernelStartProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0x38FB7BCA |
int sceKernelStartProcessForKernel(SceUID pid, SceUInt32 process_type, SceSize argSize, const void *pArgBlock);
sceKernelStartProcess2ForKernel
Version | NID |
---|---|
0.990-3.60 | 0x36728B16 |
int sceKernelStartProcess2ForKernel(SceUID pid, int a2, int a3, int a4, int a5);
sceKernelSpawnProcessForKernel
Version | NID |
---|---|
0.931-3.60 | 0x31834C49 |
Calls sceKernelCreateProcessForKernel then sceKernelStartProcessForKernel.
int sceKernelSpawnProcessForKernel(const char *title_id, SceUInt32 process_type, const char *path, SceSize argSize, const void *pArgBlock, SceKernelProcessOpt *pOpt);
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 |
sceKernelGetClassForUidForKernel
Version | NID |
---|---|
3.60 | 0xC6820972 |
SceClass* sceKernelGetClassForUidForKernel(SceUID pid);
sceKernelSpawnProcessExtForKernel
Version | NID |
---|---|
0.990-3.60 | 0x8F320D2B |
sceKernelGetBudgetInfoForDebuggerForKernel
Version | NID |
---|---|
0.990-3.60 | 0xF3C4A83B |
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, int a2, void *pInfo);
sceKernelGetMMUL2InfoForKernel
Version | NID |
---|---|
0.931 | 0xE2681221 |
3.60 | not present |
int sceKernelGetMMUL2InfoForKernel(SceUID pid, int a2, 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);
sceKernelStartProcessExtForKernel
Version | NID |
---|---|
0.990-3.60 | 0x36728B16 |
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 SceSize size; // Size of this structure uint32_t unk_4; uint32_t unk_8; uint32_t main_size; uint32_t cdialog_size; uint32_t cdram_size; } 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);
To find
- sceKernelPermitProcEvent
- sceKernelInhibitProcEvent