diff options
-rw-r--r-- | include/kernel/kernel/sysmem.h | 19 | ||||
-rw-r--r-- | nids/360/SceSysmem.yml | 1 |
2 files changed, 17 insertions, 3 deletions
diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index b9fdac3..badc879 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -95,8 +95,19 @@ typedef enum SceKernelModel { } SceKernelModel; typedef struct SceClass { - char data[0x2C]; -} SceClass; + struct SceClass *next; + struct SceClass *root; + struct SceClass *prev; + const char *name; + struct SceClass *uidclass; + unsigned int attributes; + unsigned short itemsize; + unsigned short unk1A; + unsigned int unk1C; + SceClassCallback create_cb; + SceClassCallback destroy_cb; + unsigned int magic; /* 0xABCE9DA5 */ +} SceClass; /* size = 0x2C */ typedef struct SceObjectBase { uint32_t sce_reserved[2]; @@ -235,11 +246,13 @@ int sceKernelUidRetain(SceUID uid); */ int sceKernelUidRelease(SceUID uid); -SceClass *sceKernelGetUidClass(void); typedef int (*SceClassCallback)(void *item); + +SceClass *sceKernelGetUidClass(void); int sceKernelCreateClass(SceClass *cls, const char *name, void *uidclass, size_t itemsize, SceClassCallback create, SceClassCallback destroy); int sceKernelDeleteUserUid(SceUID pid, SceUID user_uid); int sceKernelDeleteUid(SceUID uid); +int sceKernelFindClassByName(const char name, SceClass **cls); int sceKernelSwitchVmaForPid(SceUID pid); diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index f484cfa..406d2ee 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -209,6 +209,7 @@ modules: nid: 0x63A519E5 functions: sceKernelCreateUidObj: 0xDF0288D7 + sceKernelFindClassByName: 0x62989905 sceKernelGetMemBlockType: 0x289BE3EC sceKernelRxMemcpyKernelToUserForPid: 0x30931572 SceSysrootForKernel: |