NSKBL Subroutines: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(71 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Common data == | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! size !! name !! description | |||
|- | |||
| 3.60 || 0x5113F39C || 4 || pSceUIDModuleClass || pointer of SceClass. | |||
|- | |||
| 3.60 || 0x5113F3A4 || 4 || pSceUIDModuleClass || pointer of SceClass. | |||
|- | |||
| 3.60 || 0x5113F3A8 || 4 || pSceUIDLibStubClass || pointer of SceClass. | |||
|- | |||
| 3.60 || 0x5113F3AC || 4 || pSceUIDLibraryClass || pointer of SceClass. | |||
|- | |||
| 3.60 || 0x5115F3C0 || 0x24C0 || sdif_ctx || ctx data for emmc. | |||
|- | |||
| 3.60 || 0x51161880 || 0x24C0 || sdif_ctx || ctx data for game card. | |||
|- | |||
| 3.60 || 0x51166B80 || 0x200 || root sector for fat_init_dev || root sector data. | |||
|- | |||
| 3.60 || 0x511671A0 || 0x200 || root sector for fs_working || root sector data. | |||
|- | |||
| 3.60 || 0x511673A0 || 4 || pointer of SceKblFsReadCtx || pointer of SceKblFsReadCtx. | |||
|- | |||
| 3.60 || 0x51167728 || 0x5C || fs_read_ctx_gcsd || ctx data. | |||
|- | |||
| 3.60 || 0x51167784 || 0x5C || fs_read_ctx_emmc || ctx data. | |||
|} | |||
== Common functions == | == Common functions == | ||
=== | === read_sector === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 8: | Line 37: | ||
! Version !! offset !! mode | ! Version !! offset !! mode | ||
|- | |- | ||
| 3.60 || | | 3.60 || 0x510010FC || thumb | ||
|} | |||
call read_sector_direct. | |||
<source lang="C">int read_sector(void *ctx, unsigned int sector_pos, unsigned int sector_num, void *data);</source> | |||
=== read_sector_direct === | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510010C4 || thumb | |||
|} | |||
<source lang="C">int read_sector_direct(void *ctx, unsigned int sector_pos, unsigned int sector_num, void *data);</source> | |||
=== SceKernelIntrMgr === | |||
==== sceKernelRegisterIntrHandler ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510035AC || thumb | |||
|} | |||
<source lang="C">int sceKernelRegisterIntrHandler(int code, const char *name, int interrupt_type, SceKernelIntrHandler *handler, void* userCtx, int priority, int targetcpu, SceKernelRegisterInterruptOptions *opt);</source> | |||
=== SceSysmem === | |||
==== sceKernelGetUidMemBlockClass ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51003B68 || thumb | |||
|} | |||
<source lang="C">SceClass *sceKernelGetUidMemBlockClass(void);</source> | |||
==== sceKernelCreateClass ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510059A0 || thumb | |||
|} | |||
<source lang="C">int sceKernelCreateClass(SceClass *cls, const char *name, void *uidclass, SceSize itemsize, SceClassCallback create, SceClassCallback destroy);</source> | |||
==== sceKernelGetUidClass ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51005A04 || thumb | |||
|} | |||
<source lang="C">SceClass *sceKernelGetUidClass(void);</source> | |||
==== sceGUIDClose ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5100662C || thumb | |||
|} | |||
<source lang="C">int sceGUIDClose(SceUID uid);</source> | |||
==== sceGUIDGetObject ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51006770 || thumb | |||
|} | |||
<source lang="C">int sceGUIDGetObject(SceUID uid, SceKernelObject **ppEntry);</source> | |||
==== sceGUIDReferObjectWithClass ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510069E8 || thumb | |||
|} | |||
<source lang="C">int sceGUIDReferObjectWithClass(SceUID uid, SceClass *pClass, SceKernelObject **ppEntry);</source> | |||
==== sceKernelUidRelease ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51006A50 || thumb | |||
|} | |||
<source lang="C">int sceKernelUidRelease(SceUID uid);</source> | |||
==== sceKernelGetPaddr ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5100788C || thumb | |||
|} | |||
<source lang="C">int sceKernelGetPaddr(const void *VA, uintptr_t *pPA);</source> | |||
==== sceKernelUnmapMemBlock ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510087D8 || thumb | |||
|} | |||
==== sceKernelFreeMemBlock ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510089A8 || thumb | |||
|} | |||
<source lang="C">int sceKernelFreeMemBlock(SceUID memid);</source> | |||
==== sceKernelAllocPartitionMemBlock ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5100B7B0 || thumb | |||
|} | |||
<source lang="C">SceUID sceKernelAllocPartitionMemBlock(SceUID part, const char *name, SceKernelMemBlockType type, SceSize size, SceKernelAllocMemBlockOptKernel *pOpt);</source> | |||
==== sceKernelCreateHeap ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5100F04C || thumb | |||
|} | |||
<source lang="C">SceUID sceKernelCreateHeap(const char *name, SceSize size, SceKernelHeapCreateOpt *pOpt);</source> | |||
==== sceKernelDeleteHeap ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5100F068 || thumb | |||
|} | |||
<source lang="C">int sceKernelDeleteHeap(SceUID uid);</source> | |||
==== sceKernelAllocHeapMemoryWithOpt ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5100F28C || thumb | |||
|} | |||
<source lang="C">void *sceKernelAllocHeapMemoryWithOpt(SceUID uid, SceSize size, SceKernelHeapMemoryOpt *pOpt);</source> | |||
==== sceKernelAllocHeapMemory ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5100F334 || thumb | |||
|} | |||
<source lang="C">void *sceKernelAllocHeapMemory(SceUID uid, SceSize size);</source> | |||
==== sceKernelFreeHeapMemory ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5100F340 || thumb | |||
|} | |||
<source lang="C">int sceKernelFreeHeapMemory(SceUID uid, void *ptr);</source> | |||
==== sceKernelSysrootSetStatus ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101220C || thumb | |||
|} | |||
See [[SceSysmem#sceKernelSysrootSetStatusForKernel]]. | |||
<source lang="C">int sceKernelSysrootSetStatus(SceUInt32 status);</source> | |||
==== sceKernelSysrootSetSysroot ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51012234 || thumb | |||
|} | |||
<source lang="C">void sceKernelSysrootSetSysroot(SceUID sysroot_uid);</source> | |||
==== sceKernelSysrootGetKblParam ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51012244 || thumb | |||
|} | |||
<source lang="C">void *sceKernelSysrootGetKblParam(void);</source> | |||
==== sceKernelSysrootGetVbaseResetVector ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510122B4 || thumb | |||
|} | |||
<source lang="C">void *sceKernelSysrootGetVbaseResetVector(void);</source> | |||
==== sceKernelSysrootSetSharedMemory ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51012320 || thumb | |||
|} | |||
<source lang="C">void sceKernelSysrootSetSharedMemory(void *ptr);</source> | |||
==== sceKernelSysrootSetModulePrivate ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510124D0 || thumb | |||
|} | |||
<source lang="C">void sceKernelSysrootSetModulePrivate(int idx, void *data);</source> | |||
==== sceKernelSysrootIsManufacturingMode ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510128D4 || thumb | |||
|} | |||
<source lang="C">int sceKernelSysrootIsManufacturingMode(void);</source> | |||
==== sceKernelSysrootIsExternalBootMode ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510128E8 || thumb | |||
|} | |||
<source lang="C">int sceKernelSysrootIsExternalBootMode(void);</source> | |||
==== sceKernelRegisterInitCallback ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51012990 || thumb | |||
|} | |||
<source lang="C">int sceKernelRegisterInitCallback(const void *cb, int idx, int a3, int *pRes);</source> | |||
==== sceDebugPrintKernelPanic ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51013394 || thumb | |||
|} | |||
slightly different as non-secure SceSysmem -> sceDebugPrintKernelPanic | |||
<source lang="C">void sceDebugPrintKernelPanic(const SceKernelDebugMessageContext *ctx, void *some_address);</source> | |||
==== sceDebugRegisterPutcharHandler ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51013780 || thumb | |||
|} | |||
<source lang="C">void sceDebugRegisterPutcharHandler(int (* func)(void *args, char c), void *args);</source> | |||
==== sceDebugPrintf2 ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510138B0 || thumb | |||
|} | |||
<source lang="C">int sceDebugPrintf2(int msg_type_flag, const SceKernelDebugMessageContext *ctx, const char *fmt, ...);</source> | |||
==== strlen ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51013B7C || thumb | |||
|} | |||
<source lang="C">SceSize strlen(const char *s);</source> | |||
==== strnlen ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51013B80 || thumb | |||
|} | |||
<source lang="C">SceSize strnlen(const char *s, SceSize maxlen);</source> | |||
==== __vsnprintf_internal ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51013BD0 || thumb | |||
|} | |||
same as non-secure [[SceSysmem#__vsnprintf_internal]]. | |||
<source lang="C">void __vsnprintf_internal(void (* cb)(void *argp, int ch), void *argp, const char *fmt, va_list list);</source> | |||
==== snprintf ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014458 || thumb | |||
|} | |||
<source lang="C">int snprintf(char *dst, int dstmax, const char *fmt, ...);</source> | |||
==== strncpy ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510144A0 || thumb | |||
|} | |||
<source lang="C">char *strncpy(char *dst, const char *src, SceSize len);</source> | |||
==== __stack_chk_fail ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014508 || thumb | |||
|} | |||
<source lang="C">void __stack_chk_fail(void);</source> | |||
==== sceKernelCpuIcacheInvalidateAll ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014520 || thumb | |||
|} | |||
<source lang="C">void sceKernelCpuIcacheInvalidateAll(void);</source> | |||
==== sceKernelCpuIcacheInvalidateRange ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014530 || thumb | |||
|} | |||
<source lang="C">void sceKernelCpuIcacheInvalidateRange(void *data, SceSize size);</source> | |||
==== sceKernelCpuDcacheInvalidateMVACRange ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101454C || thumb | |||
|} | |||
<source lang="C">void sceKernelCpuDcacheInvalidateMVACRange(void *data, SceSize size);</source> | |||
==== sceKernelCpuDcacheCleanMVACRange ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101456C || thumb | |||
|} | |||
<source lang="C">void sceKernelCpuDcacheCleanMVACRange(void *data, SceSize size);</source> | |||
==== sceKernelCpuDcacheWritebackInvalidateRange ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101458C || thumb | |||
|} | |||
<source lang="C">void sceKernelCpuDcacheWritebackInvalidateRange(void *data, SceSize size);</source> | |||
==== sceKernelCpuAtomicGetAndSub16 ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510145F4 || arm | |||
|} | |||
<source lang="C">int16_t sceKernelCpuAtomicGetAndSub16(void *a1, int16_t a2);</source> | |||
==== sceKernelInitCpuCoreSyncCtx ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014900 || thumb | |||
|} | |||
<source lang="C">void sceKernelInitCpuCoreSyncCtx(SceCpuCoreSyncCtx *pCtx);</source> | |||
==== sceKernelCoreSyncWait ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101490C || thumb | |||
|} | |||
<source lang="C">void sceKernelCoreSyncWait(SceCpuCoreSyncCtx *pCtx, int core);</source> | |||
==== sceKernelCoreSyncAll ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014940 || thumb | |||
|} | |||
<source lang="C">void sceKernelCoreSyncAll(SceCpuCoreSyncCtx *pCtx);</source> | |||
==== sceKernelCpuDcacheAndL2InvalidateRange ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014B60 || thumb | |||
|} | |||
<source lang="C">void sceKernelCpuDcacheAndL2InvalidateRange(void *data, SceSize size);</source> | |||
==== sceKernelCpuDcacheAndL2WritebackRange ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014BD0 || thumb | |||
|} | |||
<source lang="C">void sceKernelCpuDcacheAndL2WritebackRange(void *data, SceSize size);</source> | |||
==== sceKernelCpuDisableInterrupts ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510147AC || thumb | |||
|} | |||
<source lang="C">int sceKernelCpuDisableInterrupts(void);</source> | |||
==== sceKernelCpuEnableInterrupts ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510147BC || thumb | |||
|} | |||
<source lang="C">int sceKernelCpuEnableInterrupts(int flags);</source> | |||
==== sceKernelCpuSuspendIntr ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014838 || thumb | |||
|} | |||
<source lang="C">int sceKernelCpuSuspendIntr(int *addr);</source> | |||
==== sceKernelCpuResumeIntr ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014864 || thumb | |||
|} | |||
<source lang="C">int sceKernelCpuResumeIntr(int *addr, int prev_state);</source> | |||
==== sceKernelCpuUnrestrictedMemcpy ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014BDC || thumb | |||
|} | |||
<source lang="C">int sceKernelCpuUnrestrictedMemcpy(void *dst, const void *src, SceSize len);</source> | |||
==== vaddr_to_paddr_with_mode ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51014E3C || thumb | |||
|} | |||
same to sysmem 3.60 sub_81023308 | |||
<source lang="C">int vaddr_to_paddr_with_mode(int mode, int a2, const void *VA, int *pPA, int a5);</source> | |||
==== sceKernelMMUVAtoPAWithMode ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510155F4 || thumb | |||
|} | |||
<source lang="C">int sceKernelMMUVAtoPAWithMode(int mode, const void *VA, unsigned int *pPA);</source> | |||
=== SceSblSmschedProxy === | |||
==== SceSblSmschedProxy_module_start ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51015D10 || thumb | |||
|} | |||
<source lang="C">int SceSblSmschedProxy_module_start(SceSize args, void *argp);</source> | |||
==== sceSblSmSchedProxyInitialize ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51015DD0 || thumb | |||
|} | |||
<source lang="C">int sceSblSmSchedProxyInitialize(void);</source> | |||
==== sceSblSmSchedProxyInvoke ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51015DE4 || thumb | |||
|} | |||
==== sceSblSmSchedProxyWait ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51015FEC || thumb | |||
|} | |||
<source lang="C">int sceSblSmSchedProxyWait(SceSmSchedRequestId req_id, status_handler *result);</source> | |||
==== sceSblSmSchedProxyGetStatus ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51016150 || thumb | |||
|} | |||
<source lang="C">int sceSblSmSchedProxyGetStatus(SceSmSchedRequestId req_id, status_handler *status);</source> | |||
=== SceSblAuthMgr === | |||
==== sceSblAuthMgrOpen ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51016CF8 || thumb | |||
|} | |||
<source lang="C">int sceSblAuthMgrOpen(int *ctx);</source> | |||
==== sceSblAuthMgrClose ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51016D48 || thumb | |||
|} | |||
<source lang="C">int sceSblAuthMgrClose(int ctx);</source> | |||
==== sceSblAuthMgrAuthHeader ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51016D68 || thumb | |||
|} | |||
<source lang="C">int sceSblAuthMgrAuthHeader(int ctx, void *pSelfHeader, SceSize SelfHeaderSize, SceSblSmCommContext130 *ctx130);</source> | |||
==== sceSblAuthMgrSetupAuthSegment ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51016E58 || thumb | |||
|} | |||
<source lang="C">int sceSblAuthMgrSetupAuthSegment(int ctx, int segment_number);</source> | |||
==== sceSblAuthMgrAuthSegment ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51016E94 || thumb | |||
|} | |||
<source lang="C">int sceSblAuthMgrAuthSegment(int ctx, void *buffer, SceSize len);</source> | |||
=== SceQafMgrForDriver === | |||
==== SceQafMgrForDriver_082A4FC2 ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51016FE0 || thumb | |||
|} | |||
<source lang="C">int SceQafMgrForDriver_082A4FC2(void);</source> | |||
=== SceSblACMgrForDriver === | |||
==== sceSblACMgrIsDevelopmentMode ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510170C8 || thumb | |||
|} | |||
<source lang="C">int sceSblACMgrIsDevelopmentMode(void);</source> | |||
=== SceSblAIMgrForDriver === | |||
==== sceSblAimgrIsGenuineVITA ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51017248 || thumb | |||
|} | |||
<source lang="C">int sceSblAimgrIsGenuineVITA(void);</source> | |||
=== SceKernelModulemgr === | |||
==== get_module_object ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51017648 || thumb | |||
|} | |||
<source lang="C">SceModuleObject *get_module_object(SceUID modid);</source> | |||
==== initialize_module_class ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51017680 || thumb | |||
|} | |||
==== sceKernelLoadModule ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51017930 || thumb | |||
|} | |||
<source lang="C">SceUID sceKernelLoadModule(const char *path, int flags, void *option);</source> | |||
==== sceKernelLoadModuleForPidInternal ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51017830 || thumb | |||
|} | |||
don't have flags check | |||
<source lang="C">SceUID sceKernelLoadModuleForPidInternal(SceUID pid, const char *path, int flags, void *option);</source> | |||
==== sceKernelStartModule ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51017BB0 || thumb | |||
|} | |||
<source lang="C">int sceKernelStartModule(SceUID modid, SceSize args, void *argp, int flags, void *option, int *status);</source> | |||
==== sceKernelStartModuleForPidInternal ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510179D8 || thumb | |||
|} | |||
don't have flags check | |||
<source lang="C">int sceKernelStartModuleForPidInternal(SceUID pid, SceUID modid, SceSize args, void *argp, int flags, void *option, int *status);</source> | |||
==== get_module_bootstart ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51017BE4 || thumb | |||
|} | |} | ||
<source lang="C">int | <source lang="C">int get_module_bootstart(SceUID modid, void *entry);</source> | ||
=== SceSdif === | |||
=== sceSdifGetSdContextGlobal === | ==== sceSdifGetSdContextGlobal ==== | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 24: | Line 893: | ||
<source lang="C">void *sceSdifGetSdContextGlobal(int type);</source> | <source lang="C">void *sceSdifGetSdContextGlobal(int type);</source> | ||
==== sceSdifInitializeMmcDevice ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101D7D0 || thumb | |||
|} | |||
<source lang="C">int sceSdifInitializeMmcDevice(int sd_ctx_index, void **result);</source> | |||
==== sceSdifInitializeSdDevice ==== | |||
=== sceSdifReadSectorSd === | {| class="wikitable" | ||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101D820 || thumb | |||
|} | |||
<source lang="C">int sceSdifInitializeSdDevice(int sd_ctx_index, void **result);</source> | |||
==== sceSdifReadSectorMmc ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101C5C8 || thumb | |||
|} | |||
<source lang="C">int sceSdifReadSectorMmc(void *part_ctx, SceSize sector_pos, void *data, SceSize sector_num);</source> | |||
==== sceSdifReadSectorSd ==== | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 35: | Line 936: | ||
<source lang="C">int sceSdifReadSectorSd(void *part_ctx, SceSize sector_pos, void *data, SceSize sector_num);</source> | <source lang="C">int sceSdifReadSectorSd(void *part_ctx, SceSize sector_pos, void *data, SceSize sector_num);</source> | ||
==== SceSdifForDriver_53518827 ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x5101BD5C || thumb | |||
|} | |||
=== SceKernelUtilsForDriver === | |||
==== sceZlibGetInfo ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x510213B4 || thumb | |||
|} | |||
<source lang="C">int sceZlibGetInfo(const void *src, unsigned char *cmf, unsigned char *flg, unsigned int *dictid, const void **data);</source> | |||
==== sceDeflateDecompress ==== | |||
{| class="wikitable" | |||
|- | |||
! Version !! offset !! mode | |||
|- | |||
| 3.60 || 0x51021488 || thumb | |||
|} | |||
<source lang="C">int sceDeflateDecompress(void *dst, SceSize dst_size, const void *src, const void **next);</source> | |||
[[Category:ARM]] | |||
[[Category:Kernel]] |
Latest revision as of 21:45, 1 May 2023
Common data
Version | offset | size | name | description |
---|---|---|---|---|
3.60 | 0x5113F39C | 4 | pSceUIDModuleClass | pointer of SceClass. |
3.60 | 0x5113F3A4 | 4 | pSceUIDModuleClass | pointer of SceClass. |
3.60 | 0x5113F3A8 | 4 | pSceUIDLibStubClass | pointer of SceClass. |
3.60 | 0x5113F3AC | 4 | pSceUIDLibraryClass | pointer of SceClass. |
3.60 | 0x5115F3C0 | 0x24C0 | sdif_ctx | ctx data for emmc. |
3.60 | 0x51161880 | 0x24C0 | sdif_ctx | ctx data for game card. |
3.60 | 0x51166B80 | 0x200 | root sector for fat_init_dev | root sector data. |
3.60 | 0x511671A0 | 0x200 | root sector for fs_working | root sector data. |
3.60 | 0x511673A0 | 4 | pointer of SceKblFsReadCtx | pointer of SceKblFsReadCtx. |
3.60 | 0x51167728 | 0x5C | fs_read_ctx_gcsd | ctx data. |
3.60 | 0x51167784 | 0x5C | fs_read_ctx_emmc | ctx data. |
Common functions
read_sector
Version | offset | mode |
---|---|---|
3.60 | 0x510010FC | thumb |
call read_sector_direct.
int read_sector(void *ctx, unsigned int sector_pos, unsigned int sector_num, void *data);
read_sector_direct
Version | offset | mode |
---|---|---|
3.60 | 0x510010C4 | thumb |
int read_sector_direct(void *ctx, unsigned int sector_pos, unsigned int sector_num, void *data);
SceKernelIntrMgr
sceKernelRegisterIntrHandler
Version | offset | mode |
---|---|---|
3.60 | 0x510035AC | thumb |
int sceKernelRegisterIntrHandler(int code, const char *name, int interrupt_type, SceKernelIntrHandler *handler, void* userCtx, int priority, int targetcpu, SceKernelRegisterInterruptOptions *opt);
SceSysmem
sceKernelGetUidMemBlockClass
Version | offset | mode |
---|---|---|
3.60 | 0x51003B68 | thumb |
SceClass *sceKernelGetUidMemBlockClass(void);
sceKernelCreateClass
Version | offset | mode |
---|---|---|
3.60 | 0x510059A0 | thumb |
int sceKernelCreateClass(SceClass *cls, const char *name, void *uidclass, SceSize itemsize, SceClassCallback create, SceClassCallback destroy);
sceKernelGetUidClass
Version | offset | mode |
---|---|---|
3.60 | 0x51005A04 | thumb |
SceClass *sceKernelGetUidClass(void);
sceGUIDClose
Version | offset | mode |
---|---|---|
3.60 | 0x5100662C | thumb |
int sceGUIDClose(SceUID uid);
sceGUIDGetObject
Version | offset | mode |
---|---|---|
3.60 | 0x51006770 | thumb |
int sceGUIDGetObject(SceUID uid, SceKernelObject **ppEntry);
sceGUIDReferObjectWithClass
Version | offset | mode |
---|---|---|
3.60 | 0x510069E8 | thumb |
int sceGUIDReferObjectWithClass(SceUID uid, SceClass *pClass, SceKernelObject **ppEntry);
sceKernelUidRelease
Version | offset | mode |
---|---|---|
3.60 | 0x51006A50 | thumb |
int sceKernelUidRelease(SceUID uid);
sceKernelGetPaddr
Version | offset | mode |
---|---|---|
3.60 | 0x5100788C | thumb |
int sceKernelGetPaddr(const void *VA, uintptr_t *pPA);
sceKernelUnmapMemBlock
Version | offset | mode |
---|---|---|
3.60 | 0x510087D8 | thumb |
sceKernelFreeMemBlock
Version | offset | mode |
---|---|---|
3.60 | 0x510089A8 | thumb |
int sceKernelFreeMemBlock(SceUID memid);
sceKernelAllocPartitionMemBlock
Version | offset | mode |
---|---|---|
3.60 | 0x5100B7B0 | thumb |
SceUID sceKernelAllocPartitionMemBlock(SceUID part, const char *name, SceKernelMemBlockType type, SceSize size, SceKernelAllocMemBlockOptKernel *pOpt);
sceKernelCreateHeap
Version | offset | mode |
---|---|---|
3.60 | 0x5100F04C | thumb |
SceUID sceKernelCreateHeap(const char *name, SceSize size, SceKernelHeapCreateOpt *pOpt);
sceKernelDeleteHeap
Version | offset | mode |
---|---|---|
3.60 | 0x5100F068 | thumb |
int sceKernelDeleteHeap(SceUID uid);
sceKernelAllocHeapMemoryWithOpt
Version | offset | mode |
---|---|---|
3.60 | 0x5100F28C | thumb |
void *sceKernelAllocHeapMemoryWithOpt(SceUID uid, SceSize size, SceKernelHeapMemoryOpt *pOpt);
sceKernelAllocHeapMemory
Version | offset | mode |
---|---|---|
3.60 | 0x5100F334 | thumb |
void *sceKernelAllocHeapMemory(SceUID uid, SceSize size);
sceKernelFreeHeapMemory
Version | offset | mode |
---|---|---|
3.60 | 0x5100F340 | thumb |
int sceKernelFreeHeapMemory(SceUID uid, void *ptr);
sceKernelSysrootSetStatus
Version | offset | mode |
---|---|---|
3.60 | 0x5101220C | thumb |
See SceSysmem#sceKernelSysrootSetStatusForKernel.
int sceKernelSysrootSetStatus(SceUInt32 status);
sceKernelSysrootSetSysroot
Version | offset | mode |
---|---|---|
3.60 | 0x51012234 | thumb |
void sceKernelSysrootSetSysroot(SceUID sysroot_uid);
sceKernelSysrootGetKblParam
Version | offset | mode |
---|---|---|
3.60 | 0x51012244 | thumb |
void *sceKernelSysrootGetKblParam(void);
sceKernelSysrootGetVbaseResetVector
Version | offset | mode |
---|---|---|
3.60 | 0x510122B4 | thumb |
void *sceKernelSysrootGetVbaseResetVector(void);
Version | offset | mode |
---|---|---|
3.60 | 0x51012320 | thumb |
void sceKernelSysrootSetSharedMemory(void *ptr);
sceKernelSysrootSetModulePrivate
Version | offset | mode |
---|---|---|
3.60 | 0x510124D0 | thumb |
void sceKernelSysrootSetModulePrivate(int idx, void *data);
sceKernelSysrootIsManufacturingMode
Version | offset | mode |
---|---|---|
3.60 | 0x510128D4 | thumb |
int sceKernelSysrootIsManufacturingMode(void);
sceKernelSysrootIsExternalBootMode
Version | offset | mode |
---|---|---|
3.60 | 0x510128E8 | thumb |
int sceKernelSysrootIsExternalBootMode(void);
sceKernelRegisterInitCallback
Version | offset | mode |
---|---|---|
3.60 | 0x51012990 | thumb |
int sceKernelRegisterInitCallback(const void *cb, int idx, int a3, int *pRes);
sceDebugPrintKernelPanic
Version | offset | mode |
---|---|---|
3.60 | 0x51013394 | thumb |
slightly different as non-secure SceSysmem -> sceDebugPrintKernelPanic
void sceDebugPrintKernelPanic(const SceKernelDebugMessageContext *ctx, void *some_address);
sceDebugRegisterPutcharHandler
Version | offset | mode |
---|---|---|
3.60 | 0x51013780 | thumb |
void sceDebugRegisterPutcharHandler(int (* func)(void *args, char c), void *args);
sceDebugPrintf2
Version | offset | mode |
---|---|---|
3.60 | 0x510138B0 | thumb |
int sceDebugPrintf2(int msg_type_flag, const SceKernelDebugMessageContext *ctx, const char *fmt, ...);
strlen
Version | offset | mode |
---|---|---|
3.60 | 0x51013B7C | thumb |
SceSize strlen(const char *s);
strnlen
Version | offset | mode |
---|---|---|
3.60 | 0x51013B80 | thumb |
SceSize strnlen(const char *s, SceSize maxlen);
__vsnprintf_internal
Version | offset | mode |
---|---|---|
3.60 | 0x51013BD0 | thumb |
same as non-secure SceSysmem#__vsnprintf_internal.
void __vsnprintf_internal(void (* cb)(void *argp, int ch), void *argp, const char *fmt, va_list list);
snprintf
Version | offset | mode |
---|---|---|
3.60 | 0x51014458 | thumb |
int snprintf(char *dst, int dstmax, const char *fmt, ...);
strncpy
Version | offset | mode |
---|---|---|
3.60 | 0x510144A0 | thumb |
char *strncpy(char *dst, const char *src, SceSize len);
__stack_chk_fail
Version | offset | mode |
---|---|---|
3.60 | 0x51014508 | thumb |
void __stack_chk_fail(void);
sceKernelCpuIcacheInvalidateAll
Version | offset | mode |
---|---|---|
3.60 | 0x51014520 | thumb |
void sceKernelCpuIcacheInvalidateAll(void);
sceKernelCpuIcacheInvalidateRange
Version | offset | mode |
---|---|---|
3.60 | 0x51014530 | thumb |
void sceKernelCpuIcacheInvalidateRange(void *data, SceSize size);
sceKernelCpuDcacheInvalidateMVACRange
Version | offset | mode |
---|---|---|
3.60 | 0x5101454C | thumb |
void sceKernelCpuDcacheInvalidateMVACRange(void *data, SceSize size);
sceKernelCpuDcacheCleanMVACRange
Version | offset | mode |
---|---|---|
3.60 | 0x5101456C | thumb |
void sceKernelCpuDcacheCleanMVACRange(void *data, SceSize size);
sceKernelCpuDcacheWritebackInvalidateRange
Version | offset | mode |
---|---|---|
3.60 | 0x5101458C | thumb |
void sceKernelCpuDcacheWritebackInvalidateRange(void *data, SceSize size);
sceKernelCpuAtomicGetAndSub16
Version | offset | mode |
---|---|---|
3.60 | 0x510145F4 | arm |
int16_t sceKernelCpuAtomicGetAndSub16(void *a1, int16_t a2);
sceKernelInitCpuCoreSyncCtx
Version | offset | mode |
---|---|---|
3.60 | 0x51014900 | thumb |
void sceKernelInitCpuCoreSyncCtx(SceCpuCoreSyncCtx *pCtx);
sceKernelCoreSyncWait
Version | offset | mode |
---|---|---|
3.60 | 0x5101490C | thumb |
void sceKernelCoreSyncWait(SceCpuCoreSyncCtx *pCtx, int core);
sceKernelCoreSyncAll
Version | offset | mode |
---|---|---|
3.60 | 0x51014940 | thumb |
void sceKernelCoreSyncAll(SceCpuCoreSyncCtx *pCtx);
sceKernelCpuDcacheAndL2InvalidateRange
Version | offset | mode |
---|---|---|
3.60 | 0x51014B60 | thumb |
void sceKernelCpuDcacheAndL2InvalidateRange(void *data, SceSize size);
sceKernelCpuDcacheAndL2WritebackRange
Version | offset | mode |
---|---|---|
3.60 | 0x51014BD0 | thumb |
void sceKernelCpuDcacheAndL2WritebackRange(void *data, SceSize size);
sceKernelCpuDisableInterrupts
Version | offset | mode |
---|---|---|
3.60 | 0x510147AC | thumb |
int sceKernelCpuDisableInterrupts(void);
sceKernelCpuEnableInterrupts
Version | offset | mode |
---|---|---|
3.60 | 0x510147BC | thumb |
int sceKernelCpuEnableInterrupts(int flags);
sceKernelCpuSuspendIntr
Version | offset | mode |
---|---|---|
3.60 | 0x51014838 | thumb |
int sceKernelCpuSuspendIntr(int *addr);
sceKernelCpuResumeIntr
Version | offset | mode |
---|---|---|
3.60 | 0x51014864 | thumb |
int sceKernelCpuResumeIntr(int *addr, int prev_state);
sceKernelCpuUnrestrictedMemcpy
Version | offset | mode |
---|---|---|
3.60 | 0x51014BDC | thumb |
int sceKernelCpuUnrestrictedMemcpy(void *dst, const void *src, SceSize len);
vaddr_to_paddr_with_mode
Version | offset | mode |
---|---|---|
3.60 | 0x51014E3C | thumb |
same to sysmem 3.60 sub_81023308
int vaddr_to_paddr_with_mode(int mode, int a2, const void *VA, int *pPA, int a5);
sceKernelMMUVAtoPAWithMode
Version | offset | mode |
---|---|---|
3.60 | 0x510155F4 | thumb |
int sceKernelMMUVAtoPAWithMode(int mode, const void *VA, unsigned int *pPA);
SceSblSmschedProxy
SceSblSmschedProxy_module_start
Version | offset | mode |
---|---|---|
3.60 | 0x51015D10 | thumb |
int SceSblSmschedProxy_module_start(SceSize args, void *argp);
sceSblSmSchedProxyInitialize
Version | offset | mode |
---|---|---|
3.60 | 0x51015DD0 | thumb |
int sceSblSmSchedProxyInitialize(void);
sceSblSmSchedProxyInvoke
Version | offset | mode |
---|---|---|
3.60 | 0x51015DE4 | thumb |
sceSblSmSchedProxyWait
Version | offset | mode |
---|---|---|
3.60 | 0x51015FEC | thumb |
int sceSblSmSchedProxyWait(SceSmSchedRequestId req_id, status_handler *result);
sceSblSmSchedProxyGetStatus
Version | offset | mode |
---|---|---|
3.60 | 0x51016150 | thumb |
int sceSblSmSchedProxyGetStatus(SceSmSchedRequestId req_id, status_handler *status);
SceSblAuthMgr
sceSblAuthMgrOpen
Version | offset | mode |
---|---|---|
3.60 | 0x51016CF8 | thumb |
int sceSblAuthMgrOpen(int *ctx);
sceSblAuthMgrClose
Version | offset | mode |
---|---|---|
3.60 | 0x51016D48 | thumb |
int sceSblAuthMgrClose(int ctx);
sceSblAuthMgrAuthHeader
Version | offset | mode |
---|---|---|
3.60 | 0x51016D68 | thumb |
int sceSblAuthMgrAuthHeader(int ctx, void *pSelfHeader, SceSize SelfHeaderSize, SceSblSmCommContext130 *ctx130);
sceSblAuthMgrSetupAuthSegment
Version | offset | mode |
---|---|---|
3.60 | 0x51016E58 | thumb |
int sceSblAuthMgrSetupAuthSegment(int ctx, int segment_number);
sceSblAuthMgrAuthSegment
Version | offset | mode |
---|---|---|
3.60 | 0x51016E94 | thumb |
int sceSblAuthMgrAuthSegment(int ctx, void *buffer, SceSize len);
SceQafMgrForDriver
SceQafMgrForDriver_082A4FC2
Version | offset | mode |
---|---|---|
3.60 | 0x51016FE0 | thumb |
int SceQafMgrForDriver_082A4FC2(void);
SceSblACMgrForDriver
sceSblACMgrIsDevelopmentMode
Version | offset | mode |
---|---|---|
3.60 | 0x510170C8 | thumb |
int sceSblACMgrIsDevelopmentMode(void);
SceSblAIMgrForDriver
sceSblAimgrIsGenuineVITA
Version | offset | mode |
---|---|---|
3.60 | 0x51017248 | thumb |
int sceSblAimgrIsGenuineVITA(void);
SceKernelModulemgr
get_module_object
Version | offset | mode |
---|---|---|
3.60 | 0x51017648 | thumb |
SceModuleObject *get_module_object(SceUID modid);
initialize_module_class
Version | offset | mode |
---|---|---|
3.60 | 0x51017680 | thumb |
sceKernelLoadModule
Version | offset | mode |
---|---|---|
3.60 | 0x51017930 | thumb |
SceUID sceKernelLoadModule(const char *path, int flags, void *option);
sceKernelLoadModuleForPidInternal
Version | offset | mode |
---|---|---|
3.60 | 0x51017830 | thumb |
don't have flags check
SceUID sceKernelLoadModuleForPidInternal(SceUID pid, const char *path, int flags, void *option);
sceKernelStartModule
Version | offset | mode |
---|---|---|
3.60 | 0x51017BB0 | thumb |
int sceKernelStartModule(SceUID modid, SceSize args, void *argp, int flags, void *option, int *status);
sceKernelStartModuleForPidInternal
Version | offset | mode |
---|---|---|
3.60 | 0x510179D8 | thumb |
don't have flags check
int sceKernelStartModuleForPidInternal(SceUID pid, SceUID modid, SceSize args, void *argp, int flags, void *option, int *status);
get_module_bootstart
Version | offset | mode |
---|---|---|
3.60 | 0x51017BE4 | thumb |
int get_module_bootstart(SceUID modid, void *entry);
SceSdif
sceSdifGetSdContextGlobal
Version | offset | mode |
---|---|---|
3.60 | 0x5101A9F4 | thumb |
void *sceSdifGetSdContextGlobal(int type);
sceSdifInitializeMmcDevice
Version | offset | mode |
---|---|---|
3.60 | 0x5101D7D0 | thumb |
int sceSdifInitializeMmcDevice(int sd_ctx_index, void **result);
sceSdifInitializeSdDevice
Version | offset | mode |
---|---|---|
3.60 | 0x5101D820 | thumb |
int sceSdifInitializeSdDevice(int sd_ctx_index, void **result);
sceSdifReadSectorMmc
Version | offset | mode |
---|---|---|
3.60 | 0x5101C5C8 | thumb |
int sceSdifReadSectorMmc(void *part_ctx, SceSize sector_pos, void *data, SceSize sector_num);
sceSdifReadSectorSd
Version | offset | mode |
---|---|---|
3.60 | 0x5101E670 | thumb |
int sceSdifReadSectorSd(void *part_ctx, SceSize sector_pos, void *data, SceSize sector_num);
SceSdifForDriver_53518827
Version | offset | mode |
---|---|---|
3.60 | 0x5101BD5C | thumb |
SceKernelUtilsForDriver
sceZlibGetInfo
Version | offset | mode |
---|---|---|
3.60 | 0x510213B4 | thumb |
int sceZlibGetInfo(const void *src, unsigned char *cmf, unsigned char *flg, unsigned int *dictid, const void **data);
sceDeflateDecompress
Version | offset | mode |
---|---|---|
3.60 | 0x51021488 | thumb |
int sceDeflateDecompress(void *dst, SceSize dst_size, const void *src, const void **next);