summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSergi Granell2017-12-03 13:25:40 +0100
committerdevnoname1202017-12-03 13:36:56 +0100
commit83704967daa09b69cff3649e2321f6180d8e2002 (patch)
treef50126ec8afbe422b939625e2ed53c4b32ba5952 /include
parentAdd missing sceKernelTryLockLwMutex (diff)
downloadvds-libraries-83704967daa09b69cff3649e2321f6180d8e2002.tar.gz
Add ksceKernelFindClassByName, update SceClass
Diffstat (limited to 'include')
-rw-r--r--include/kernel/kernel/sysmem.h19
1 files changed, 16 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);