diff options
-rw-r--r-- | include/kernel/appmgr.h | 21 | ||||
-rw-r--r-- | include/kernel/kernel/modulemgr.h | 7 | ||||
-rw-r--r-- | include/kernel/kernel/processmgr.h | 7 | ||||
-rw-r--r-- | include/kernel/kernel/threadmgr.h | 17 | ||||
-rw-r--r-- | nids/360/SceAppMgr.yml | 1 | ||||
-rw-r--r-- | nids/360/SceKernelModulemgr.yml | 1 | ||||
-rw-r--r-- | nids/360/SceKernelThreadMgr.yml | 1 | ||||
-rw-r--r-- | nids/360/SceProcessmgr.yml | 2 |
8 files changed, 57 insertions, 0 deletions
diff --git a/include/kernel/appmgr.h b/include/kernel/appmgr.h new file mode 100644 index 0000000..4336ca5 --- /dev/null +++ b/include/kernel/appmgr.h @@ -0,0 +1,21 @@ +#ifndef _PSP2_KERNEL_APPMGR_H_ +#define _PSP2_KERNEL_APPMGR_H_ + +#include <psp2kern/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Kill a process. + * @param[in] pid The process to kill. + * @return Zero on success, else < 0. + */ +int sceAppMgrKillProcess(SceUID pid); + +#ifdef __cplusplus +} +#endif + +#endif /* _PSP2_KERNEL_APPMGR_H_ */ diff --git a/include/kernel/kernel/modulemgr.h b/include/kernel/kernel/modulemgr.h index c28e271..2ecc204 100644 --- a/include/kernel/kernel/modulemgr.h +++ b/include/kernel/kernel/modulemgr.h @@ -98,6 +98,13 @@ int sceKernelUmountBootfs(void); int sceKernelSearchModuleByName(const char* module_name, const char* path, int pid); +/** + * @brief Get the main module for a given process. + * @param pid The process to query. + * @return the UID of the module else < 0 for an error. + */ +SceUID sceKernelGetProcessMainModule(SceUID pid); + #ifdef __cplusplus } #endif diff --git a/include/kernel/kernel/processmgr.h b/include/kernel/kernel/processmgr.h index af89047..b5626a1 100644 --- a/include/kernel/kernel/processmgr.h +++ b/include/kernel/kernel/processmgr.h @@ -26,6 +26,13 @@ void *sceKernelGetProcessLocalStorageAddr(int key); int sceKernelGetProcessLocalStorageAddrForPid(SceUID pid, int key, void **out_addr, int create_if_doesnt_exist); /** + * @brief Resume a suspended process. + * @param[in] pid The process to resume. + * @return Zero on success, < 0 on error. + */ +int sceKernelProcessResume(SceUID pid); + +/** * @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. diff --git a/include/kernel/kernel/threadmgr.h b/include/kernel/kernel/threadmgr.h index 391f277..66fc0f2 100644 --- a/include/kernel/kernel/threadmgr.h +++ b/include/kernel/kernel/threadmgr.h @@ -845,6 +845,23 @@ typedef int (*SceKernelWorkQueueWorkFunction)(void *args); */ int sceKernelEnqueueWorkQueue(SceUID uid, const char *name, SceKernelWorkQueueWorkFunction work, void *args); +/** + * @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 sceKernelGetProcessMainThread(SceUID pid); + +/** + * @brief Retrieve a list of all threads belonging to a process. + * @param[in] pid The process to query. + * @param[out] ids The list of thread ids. Can be NULL if output is not required. + * @param[in] n The max number of thread ids to copy out. + * @param[out] copy_count The number of thread ids copied. + * @return The number of threads within the process, else < 0 on error. + */ +int sceKernelGetThreadIdList(SceUID pid, SceUID *ids, int n, int *copy_count); + #ifdef __cplusplus } #endif diff --git a/nids/360/SceAppMgr.yml b/nids/360/SceAppMgr.yml index 9b1182e..78bc3dd 100644 --- a/nids/360/SceAppMgr.yml +++ b/nids/360/SceAppMgr.yml @@ -217,6 +217,7 @@ modules: sceAppMgrGetPfsProcessStatus: 0xE72D2A4A sceAppMgrGetSystemDataFile: 0xAEC49533 sceAppMgrIsExclusiveProcessRunning: 0xA888C2DC + sceAppMgrKillProcess: 0xD80566DB sceAppMgrLaunchAppByPath: 0xB0A37065 sceAppMgrLoadSafeMemory: 0xFAF3DAAA sceAppMgrLocalBackupGetOfflineId: 0x61B13981 diff --git a/nids/360/SceKernelModulemgr.yml b/nids/360/SceKernelModulemgr.yml index 94d24e6..149566e 100644 --- a/nids/360/SceKernelModulemgr.yml +++ b/nids/360/SceKernelModulemgr.yml @@ -33,6 +33,7 @@ modules: sceKernelGetModuleInfo: 0xD269F915 sceKernelGetModuleInternal: 0xFE303863 sceKernelGetModuleList: 0x97CF7B4E + sceKernelGetProcessMainModule: 0x20A27FA9 sceKernelLoadModuleForPid: 0xFA21D8CB sceKernelMountBootfs: 0x01360661 sceKernelStartModuleForPid: 0x6DF745D5 diff --git a/nids/360/SceKernelThreadMgr.yml b/nids/360/SceKernelThreadMgr.yml index 36f1cab..75972f6 100644 --- a/nids/360/SceKernelThreadMgr.yml +++ b/nids/360/SceKernelThreadMgr.yml @@ -139,6 +139,7 @@ modules: sceKernelGetThreadCpuAffinityMask: 0x83DC703D sceKernelGetThreadCurrentPriority: 0x01414F0B sceKernelGetThreadId: 0x59D06540 + sceKernelGetThreadIdList: 0xEA7B8AEF sceKernelGetThreadStackFreeSize: 0x7B278A0B sceKernelGetThreadTLSAddr: 0x66EEA46A sceKernelGetThreadmgrUIDClass: 0x0A20775A diff --git a/nids/360/SceProcessmgr.yml b/nids/360/SceProcessmgr.yml index 063f562..8052a02 100644 --- a/nids/360/SceProcessmgr.yml +++ b/nids/360/SceProcessmgr.yml @@ -53,4 +53,6 @@ modules: sceKernelExitProcess: 0x4CA7DC42 sceKernelGetProcessAuthid: 0xE4C83B0D sceKernelGetProcessKernelBuf: 0xB9E68092 + sceKernelGetProcessMainThread: 0x95F9ED94 sceKernelLaunchApp: 0x71CF71FD + sceKernelProcessResume: 0x080CDC59 |