mirror of
https://github.com/joel16/uofw.git
synced 2025-02-20 02:42:43 +00:00
123 lines
4.6 KiB
C
123 lines
4.6 KiB
C
/* Copyright (C) 2011, 2012, 2013 The uOFW team
|
|
See the file COPYING for copying permission.
|
|
*/
|
|
|
|
#ifndef SYSMEM_KERNEL_H
|
|
#define SYSMEM_KERNEL_H
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include "common_header.h"
|
|
|
|
#include "sysmem_common.h"
|
|
#include "loadcore.h"
|
|
|
|
typedef struct {
|
|
s32 unk0; //0
|
|
s32 numExportLibs; //4 -- number of sysmem's export libraries - set in SysMemInit (from utopia)
|
|
SceResidentLibraryEntryTable *exportLib[8]; //8 --array of sysmem's export tables set in SysMemInit (from utopia)
|
|
u32 loadCoreAddr; // 40 -- allocated in SysMemInit (from utopia)
|
|
s32 userLibStart; // 44 -- offset in export_lib at which user libraries begin - set in SysMemInit (from utopia)
|
|
s32 unk48; //48
|
|
s32 unk52; //52
|
|
s32 unk56;//56
|
|
s32 unk60; //60
|
|
SceStubLibraryEntryTable *loadCoreImportTables; //64 -- loadcore stubs - set in kactivate before booting loadcore (from utopia)
|
|
u32 loadCoreImportTablesSize; //68 -- total size of stubs - set in kactivate before booting loadcore (from utopia)
|
|
s32 init_thread_stack; //72 -- allocated in SysMemInit (from utopia)
|
|
SceLoadCoreExecFileInfo *sysMemExecInfo; //76 -- set in kactivate before booting loadcore (from utopia)
|
|
SceLoadCoreExecFileInfo *loadCoreExecInfo; //80 -- set in kactivate before booting loadcore (from utopia)
|
|
s32 (*CompareSubType)(u32 tag); //84
|
|
u32 (*CompareLatestSubType)(u32 tag); //88
|
|
s32 (*SetMaskFunction)(u32 unk1, vs32 *addr); //92
|
|
void (*kprintf_handler)(u8 *format, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6, void *arg7); //96 -- set by sysmem (from utopia)
|
|
s32 (*GetLengthFunction)(u8 *file, u32 size, u32 *newSize); //100 -- set in kactivate before booting loadcore (from utopia)
|
|
s32 (*PrepareGetLengthFunction)(u8 *buf, u32 size); //104
|
|
SceResidentLibraryEntryTable *exportEntryTables[]; //108
|
|
} SysMemThreadConfig;
|
|
|
|
typedef struct {
|
|
SceSize size;
|
|
u32 startAddr;
|
|
u32 memSize;
|
|
u32 attr;
|
|
} SceSysmemPartitionInfo;
|
|
|
|
s32 sceKernelQueryMemoryPartitionInfo(u32 pid, SceSysmemPartitionInfo *info);
|
|
|
|
typedef struct {
|
|
int id;
|
|
int (*func)(void *, int, int funcid, void *args);
|
|
} SceSysmemUIDLookupFunction;
|
|
|
|
typedef struct SceSysmemUIDControlBlock {
|
|
struct SceSysmemUIDControlBlock *parent; // 0
|
|
struct SceSysmemUIDControlBlock *nextChild; // 4
|
|
struct SceSysmemUIDControlBlock *type; // 8
|
|
SceUID UID; // 12
|
|
char *name; // 16
|
|
unsigned char unk; // 20
|
|
unsigned char size; // size in words
|
|
short attribute; // 22
|
|
struct SceSysmemUIDControlBlock *nextEntry; // 24
|
|
struct SceSysmemUIDControlBlock *inherited; // 28
|
|
SceSysmemUIDLookupFunction *func_table; // 32
|
|
} __attribute__((packed)) SceSysmemUIDControlBlock;
|
|
|
|
typedef struct {
|
|
int id;
|
|
int (*func)();
|
|
} SceSysmemUIDLookupFunc;
|
|
|
|
SceSysmemUIDControlBlock *sceKernelCreateUIDtype(const char *name, int attr, SceSysmemUIDLookupFunc *funcs, int unk, SceSysmemUIDControlBlock **type);
|
|
SceUID sceKernelCreateUID(SceSysmemUIDControlBlock *type, const char *name, short attr, SceSysmemUIDControlBlock **block);
|
|
int sceKernelDeleteUID(SceUID uid);
|
|
int sceKernelRenameUID(SceUID uid, const char *name);
|
|
int sceKernelGetUIDcontrolBlock(SceUID uid, SceSysmemUIDControlBlock **block);
|
|
s32 sceKernelGetUIDcontrolBlockWithType(SceUID uid, SceSysmemUIDControlBlock* type, SceSysmemUIDControlBlock** block);
|
|
void sceKernelCallUIDObjCommonFunction(SceSysmemUIDControlBlock *cb, SceSysmemUIDControlBlock *uidWithFunc, s32 funcId, va_list ap);
|
|
|
|
SceUID sceKernelCreateHeap(SceUID partitionid, SceSize size, int unk, const char *name);
|
|
void *sceKernelAllocHeapMemory(SceUID heapid, SceSize size);
|
|
int sceKernelFreeHeapMemory(SceUID heapid, void *block);
|
|
int sceKernelDeleteHeap(SceUID heapid);
|
|
SceSize sceKernelHeapTotalFreeSize(SceUID heapid);
|
|
|
|
void *sceKernelGetUsersystemLibWork(void);
|
|
void *sceKernelGetGameInfo(void);
|
|
void *sceKernelGetAWeDramSaveAddr(void);
|
|
int sceKernelGetMEeDramSaveAddr(void);
|
|
int sceKernelGetMEeDramSaveSize(void);
|
|
|
|
void *sceKernelMemcpy(void *dst, const void *src, u32 n);
|
|
void *sceKernelMemmove(void *dst, const void *src, u32 n);
|
|
void *sceKernelMemset32(void *buf, int c, int size);
|
|
void *sceKernelMemset(void *buf, int c, u32 size);
|
|
|
|
int sceKernelGetCompiledSdkVersion(void);
|
|
|
|
/** PSP Hardware models. */
|
|
enum ScePspHwModels {
|
|
/** PSP Fat (01g). */
|
|
PSP_1000 = 0,
|
|
/** PSP Slim (02g). */
|
|
PSP_2000 = 1,
|
|
/** PSP Brite (03g). */
|
|
PSP_3000 = 2,
|
|
/** PSP Brite (04g). */
|
|
PSP_4000 = 3,
|
|
/** PSP Go (05g). */
|
|
PSP_GO = 4,
|
|
/** PSP Brite (07g). */
|
|
PSP_7000 = 6,
|
|
/** PSP Brite (09g). */
|
|
PSP_9000 = 8,
|
|
/** PSP Street E-1000 (11g). */
|
|
PSP_11000 = 10,
|
|
};
|
|
|
|
int sceKernelGetModel(void);
|
|
|
|
#endif
|
|
|