SceKernelThreadMgr

PSVita supports multi-threading in the non-secure kernel but not the secure kernel. There is no user/POSIX threads; all threads are implemented as kernel threads and processes are the functionally the same as threads. Threads can be specified to run on a specific core with the CPU affinity mask option when creating the thread and by default, threads can run on any core. The kernel process can also run on any core. Additionally, the secure kernel can also run on any core.

Module
This module exists only in non-secure world. The SELF can be found in.

Libraries
This module is accessible by usermode.

sceKernelGetProcessIdForDriver
Returns the process ID.

sceKernelSetProcessIdToTLSForDriver
Sets given pid into TLS.

sceKernelGetProcessIdFromTLSForDriver
Gets pid from TLS.

sceKernelGetProcessIdForKernel
Returns the process ID.

Run Exclusively
This takes a function and runs it exclusively on the current core on its own stack.