From 83704967daa09b69cff3649e2321f6180d8e2002 Mon Sep 17 00:00:00 2001 From: Sergi Granell Date: Sun, 3 Dec 2017 13:25:40 +0100 Subject: Add ksceKernelFindClassByName, update SceClass --- include/kernel/kernel/sysmem.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'include') 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); -- cgit v1.2.3