summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/kernel/kernel/sysmem.h19
-rw-r--r--nids/360/SceSysmem.yml1
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: