PSPSDK 2026-01-22
Loading...
Searching...
No Matches
pspsysmem_kernel.h
Go to the documentation of this file.
1/*
2 * PSP Software Development Kit - https://github.com/pspdev
3 * -----------------------------------------------------------------------
4 * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
5 *
6 * pspsysmem_kernel.h - Interface to the system memory manager (kernel).
7 *
8 * Copyright (c) 2005 James F.
9 *
10 */
11
12/* Note: Some of the structures, types, and definitions in this file were
13 extrapolated from symbolic debugging information found in the Japanese
14 version of Puzzle Bobble. */
15
16#ifndef PSPSYSMEMKERNEL_H
17#define PSPSYSMEMKERNEL_H
18
19#include <pspkerneltypes.h>
20#include <psptypes.h>
21#include <pspsysmem.h>
22
30#ifdef __cplusplus
31extern "C" {
32#endif
33
35{
37 unsigned int startaddr;
38 unsigned int memsize;
39 unsigned int attr;
41
42typedef struct SceGameInfo {
43 u32 size; // 0
44 u32 flags; // 4
45 char umd_data_string[16]; // 8
46 char expect_umd_data[16]; // 24
47 char qtgp2[8]; // 40
48 char qtgp3[16]; // 48
50 char title_id[16]; // 68
52 char vsh_version[8]; // 88
56 u32 dnas; // 108
58 char vsh_bootfilename[64]; // 116
59 char gamedata_id[16]; // 180
60 char app_ver[8]; // 196
61 char subscription_validity[8]; // 204
62 int bootable; // 212
63 int opnssmp_ver; // 216
65
70 struct _uidControlBlock *type; //(0x8)
71 u32 UID; //(0xC)
72 char *name; //(0x10)
73 unsigned char unk;
74 unsigned char size; // Size in words
75 short attribute;
77} __attribute__((packed));
79typedef struct _uidControlBlock uidControlBlock; // for compat reasons
80
81typedef struct {
85
100
105
113
123
132
141
146
151
156
166int sceKernelSetDdrMemoryProtection(void *addr, int size, int prot);
167
178SceUID sceKernelCreateHeap(SceUID partitionid, SceSize size, int unk, const char *name);
179
189
198int sceKernelFreeHeapMemory(SceUID heapid, void *block);
199
208
217
227
238
245
254
261
269
276
285
294
306
307#ifdef __cplusplus
308}
309#endif
310
313#endif /* PSPSYSMEMKERNEL_H */
int sceKernelGetUIDcontrolBlock(SceUID uid, SceUidControlBlock **block)
Get a UID control block.
void sceKernelSysMemDumpTail(void)
Dump the tail blocks.
SceUID sceKernelCreateHeap(SceUID partitionid, SceSize size, int unk, const char *name)
Create a heap.
void * sceKernelAllocHeapMemory(SceUID heapid, SceSize size)
Allocate a memory block from a heap.
int sceKernelGetSystemStatus()
Gets the current status of the system.
int sceKernelQueryMemoryPartitionInfo(int pid, PspSysmemPartitionInfo *info)
Query the parition information.
struct PspSysMemPartition PspSysMemPartition
int sceKernelGetSceUidControlBlockWithType(SceUID uid, SceUidControlBlock *type, SceUidControlBlock **block)
Get a UID control block on a particular type.
int sceKernelGetSceUidControlBlock(SceUID uid, SceUidControlBlock **block)
Get a UID control block.
SceGameInfo * sceKernelGetGameInfo()
Gets the information of the game.
SceSize sceKernelPartitionTotalFreeMemSize(int pid)
Get the total amount of free memory.
SceUidControlBlock * SysMemForKernel_536AD5E1(void)
Get the root of the UID tree (1.5+ only)
int sceKernelGetModel(void)
Get the model of PSP.
void sceKernelSysMemDump(void)
Get the kernel to dump the internal memory table to Kprintf.
int sceKernelFreeHeapMemory(SceUID heapid, void *block)
Free a memory block allocated from a heap.
int sceKernelDeleteUID(SceUID uid)
Delete a UID.
int sceKernelDeleteHeap(SceUID heapid)
Delete a heap.
struct _PspSysmemPartitionInfo PspSysmemPartitionInfo
struct SceGameInfo SceGameInfo
SceSize sceKernelPartitionMaxFreeMemSize(int pid)
Get the size of the largest free memory block.
int sceKernelSetDdrMemoryProtection(void *addr, int size, int prot)
Set the protection of a block of ddr memory.
void sceKernelSysMemDumpBlock(void)
Dump the list of memory blocks.
int sceKernelGetCompiledSdkVersion(void)
Get the SDK version set with sceKernelSetCompiledSdkVersion().
SceSize sceKernelHeapTotalFreeSize(SceUID heapid)
Get the amount of free size of a heap, in bytes.
struct PspPartitionData PspPartitionData
int sceKernelSetCompiledSdkVersion(int version)
Set the version of the SDK with which the caller was compiled.
int SceUID
UIDs are used to describe many different kernel objects.
Definition pspkerneltypes.h:24
unsigned int SceSize
Definition psptypes.h:103
uint32_t u32
Definition psptypes.h:41
Definition pspsysmem_kernel.h:101
u32 size
Definition pspsysmem_kernel.h:103
u32 unk[5]
Definition pspsysmem_kernel.h:102
Definition pspsysmem_kernel.h:106
u32 size
Definition pspsysmem_kernel.h:109
u32 address
Definition pspsysmem_kernel.h:108
PspPartitionData * data
Definition pspsysmem_kernel.h:111
struct PspSysMemPartition * next
Definition pspsysmem_kernel.h:107
u32 attributes
Definition pspsysmem_kernel.h:110
Definition pspsysmem_kernel.h:42
u32 compiler_version
Definition pspsysmem_kernel.h:55
u32 flags
Definition pspsysmem_kernel.h:44
int opnssmp_ver
Definition pspsysmem_kernel.h:63
char vsh_version[8]
Definition pspsysmem_kernel.h:52
u32 utility_location
Definition pspsysmem_kernel.h:57
char qtgp3[16]
Definition pspsysmem_kernel.h:48
char vsh_bootfilename[64]
Definition pspsysmem_kernel.h:58
int bootable
Definition pspsysmem_kernel.h:62
char gamedata_id[16]
Definition pspsysmem_kernel.h:59
char expect_umd_data[16]
Definition pspsysmem_kernel.h:46
u32 size
Definition pspsysmem_kernel.h:43
char app_ver[8]
Definition pspsysmem_kernel.h:60
char umd_data_string[16]
Definition pspsysmem_kernel.h:45
u32 umd_cache_on
Definition pspsysmem_kernel.h:53
u32 allow_replace_umd
Definition pspsysmem_kernel.h:49
char qtgp2[8]
Definition pspsysmem_kernel.h:47
u32 compiled_sdk_version
Definition pspsysmem_kernel.h:54
char subscription_validity[8]
Definition pspsysmem_kernel.h:61
u32 dnas
Definition pspsysmem_kernel.h:56
u32 parental_level
Definition pspsysmem_kernel.h:51
char title_id[16]
Definition pspsysmem_kernel.h:50
Definition pspsysmem_kernel.h:81
u32 addr
Definition pspsysmem_kernel.h:82
u32 size
Definition pspsysmem_kernel.h:83
Definition pspsysmem_kernel.h:86
u32 unk8
Definition pspsysmem_kernel.h:89
SceSysmemPartInfo meUser
Definition pspsysmem_kernel.h:94
SceSysmemPartInfo extMeKernel
Definition pspsysmem_kernel.h:97
SceSysmemPartInfo extScKernel
Definition pspsysmem_kernel.h:96
SceSysmemPartInfo extVshell
Definition pspsysmem_kernel.h:98
SceSysmemPartInfo other1
Definition pspsysmem_kernel.h:90
u32 memSize
Definition pspsysmem_kernel.h:87
SceSysmemPartInfo scUser
Definition pspsysmem_kernel.h:93
SceSysmemPartInfo other2
Definition pspsysmem_kernel.h:91
SceSysmemPartInfo extSc2Kernel
Definition pspsysmem_kernel.h:95
u32 unk4
Definition pspsysmem_kernel.h:88
SceSysmemPartInfo vshell
Definition pspsysmem_kernel.h:92
Definition pspsysmem_kernel.h:35
SceSize size
Definition pspsysmem_kernel.h:36
unsigned int attr
Definition pspsysmem_kernel.h:39
unsigned int memsize
Definition pspsysmem_kernel.h:38
unsigned int startaddr
Definition pspsysmem_kernel.h:37
Structure of a UID control block.
Definition pspsysmem_kernel.h:67
struct _uidControlBlock * nextChild
Definition pspsysmem_kernel.h:69
short attribute
Definition pspsysmem_kernel.h:75
struct _uidControlBlock * type
Definition pspsysmem_kernel.h:70
unsigned char size
Definition pspsysmem_kernel.h:74
struct _uidControlBlock * parent
Definition pspsysmem_kernel.h:68
char * name
Definition pspsysmem_kernel.h:72
u32 UID
Definition pspsysmem_kernel.h:71
struct _uidControlBlock * nextEntry
Definition pspsysmem_kernel.h:76
unsigned char unk
Definition pspsysmem_kernel.h:73