PSPSDK 2026-01-13
Loading...
Searching...
No Matches
System Memory Manager Kernel

This module contains routines to manage heaps of memory. More...

Data Structures

struct  _PspSysmemPartitionInfo
 
struct  SceGameInfo
 
struct  _uidControlBlock
 Structure of a UID control block. More...
 

Typedefs

typedef struct _PspSysmemPartitionInfo PspSysmemPartitionInfo
 
typedef struct SceGameInfo SceGameInfo
 
typedef struct _uidControlBlock SceUidControlBlock
 
typedef struct _uidControlBlock uidControlBlock
 

Functions

int sceKernelQueryMemoryPartitionInfo (int pid, PspSysmemPartitionInfo *info)
 Query the parition information.
 
SceSize sceKernelPartitionTotalFreeMemSize (int pid)
 Get the total amount of free memory.
 
SceSize sceKernelPartitionMaxFreeMemSize (int pid)
 Get the size of the largest free memory block.
 
void sceKernelSysMemDump (void)
 Get the kernel to dump the internal memory table to Kprintf.
 
void sceKernelSysMemDumpBlock (void)
 Dump the list of memory blocks.
 
void sceKernelSysMemDumpTail (void)
 Dump the tail blocks.
 
int sceKernelSetDdrMemoryProtection (void *addr, int size, int prot)
 Set the protection of a block of ddr memory.
 
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 sceKernelFreeHeapMemory (SceUID heapid, void *block)
 Free a memory block allocated from a heap.
 
int sceKernelDeleteHeap (SceUID heapid)
 Delete a heap.
 
SceSize sceKernelHeapTotalFreeSize (SceUID heapid)
 Get the amount of free size of a heap, in bytes.
 
int sceKernelGetSceUidControlBlock (SceUID uid, SceUidControlBlock **block)
 Get a UID control block.
 
int sceKernelGetSceUidControlBlockWithType (SceUID uid, SceUidControlBlock *type, SceUidControlBlock **block)
 Get a UID control block on a particular type.
 
SceUidControlBlockSysMemForKernel_536AD5E1 (void)
 Get the root of the UID tree (1.5+ only)
 
int sceKernelDeleteUID (SceUID uid)
 Delete a UID.
 
int sceKernelGetModel (void)
 Get the model of PSP.
 
int sceKernelSetCompiledSdkVersion (int version)
 Set the version of the SDK with which the caller was compiled.
 
int sceKernelGetCompiledSdkVersion (void)
 Get the SDK version set with sceKernelSetCompiledSdkVersion().
 
SceGameInfosceKernelGetGameInfo ()
 Gets the information of the game.
 
int sceKernelGetSystemStatus ()
 Gets the current status of the system.
 
int sceKernelGetUIDcontrolBlock (SceUID uid, SceUidControlBlock **block)
 Get a UID control block.
 

Detailed Description

This module contains routines to manage heaps of memory.

Typedef Documentation

◆ PspSysmemPartitionInfo

◆ SceGameInfo

typedef struct SceGameInfo SceGameInfo

◆ SceUidControlBlock

◆ uidControlBlock

Function Documentation

◆ sceKernelAllocHeapMemory()

void * sceKernelAllocHeapMemory ( SceUID heapid,
SceSize size )

Allocate a memory block from a heap.

Parameters
heapid- The UID of the heap to allocate from.
size- The number of bytes to allocate.
Returns
The address of the allocated memory block, or NULL on error.

◆ sceKernelCreateHeap()

SceUID sceKernelCreateHeap ( SceUID partitionid,
SceSize size,
int unk,
const char * name )

Create a heap.

Parameters
partitionid- The UID of the partition where allocate the heap.
size- The size in bytes of the heap.
unk- Unknown, probably some flag or type, pass 1.
name- Name assigned to the new heap.
Returns
The UID of the new heap, or if less than 0 an error.

◆ sceKernelDeleteHeap()

int sceKernelDeleteHeap ( SceUID heapid)

Delete a heap.

Parameters
heapid- The UID of the heap to delete.
Returns
0 on success, < 0 on error.

◆ sceKernelDeleteUID()

int sceKernelDeleteUID ( SceUID uid)

Delete a UID.

Parameters
uid- The UID to delete
Returns
0 on success

◆ sceKernelFreeHeapMemory()

int sceKernelFreeHeapMemory ( SceUID heapid,
void * block )

Free a memory block allocated from a heap.

Parameters
heapid- The UID of the heap where block belongs.
block- The block of memory to free from the heap.
Returns
0 on success, < 0 on error.

◆ sceKernelGetCompiledSdkVersion()

int sceKernelGetCompiledSdkVersion ( void )

Get the SDK version set with sceKernelSetCompiledSdkVersion().

Returns
Version number, or 0 if unset.

◆ sceKernelGetGameInfo()

SceGameInfo * sceKernelGetGameInfo ( )

Gets the information of the game.

(2.00+ ?)

Returns
Pointer to the game information on success. NULL otherwise.
Attention
Needs to link to pspsysmem_kernel stub.

◆ sceKernelGetModel()

int sceKernelGetModel ( void )

Get the model of PSP.

Returns
<= 0 original, 1 slim

◆ sceKernelGetSceUidControlBlock()

int sceKernelGetSceUidControlBlock ( SceUID uid,
SceUidControlBlock ** block )

Get a UID control block.

Parameters
uid- The UID to find
block- Pointer to hold the pointer to the block
Returns
0 on success

◆ sceKernelGetSceUidControlBlockWithType()

int sceKernelGetSceUidControlBlockWithType ( SceUID uid,
SceUidControlBlock * type,
SceUidControlBlock ** block )

Get a UID control block on a particular type.

Parameters
uid- The UID to find
type- Pointer to the type UID block
block- Pointer to hold the pointer to the block
Returns
0 on success

◆ sceKernelGetSystemStatus()

int sceKernelGetSystemStatus ( )

Gets the current status of the system.

Returns
The status of the system.
Attention
Needs to link to pspsysmem_kernel stub.

◆ sceKernelGetUIDcontrolBlock()

int sceKernelGetUIDcontrolBlock ( SceUID uid,
SceUidControlBlock ** block )

Get a UID control block.

Parameters
uid- The UID to find
block- Pointer to hold the pointer to the block
Returns
0 on success
Attention
Needs to link to pspsysmem_kernel stub.

◆ sceKernelHeapTotalFreeSize()

SceSize sceKernelHeapTotalFreeSize ( SceUID heapid)

Get the amount of free size of a heap, in bytes.

Parameters
heapid- The UID of the heap
Returns
the free size of the heap, in bytes. < 0 on error.

◆ sceKernelPartitionMaxFreeMemSize()

SceSize sceKernelPartitionMaxFreeMemSize ( int pid)

Get the size of the largest free memory block.

Parameters
pid- The partition id
Returns
The size of the largest free memory block, in bytes.

◆ sceKernelPartitionTotalFreeMemSize()

SceSize sceKernelPartitionTotalFreeMemSize ( int pid)

Get the total amount of free memory.

Parameters
pid- The partition id
Returns
The total amount of free memory, in bytes.

◆ sceKernelQueryMemoryPartitionInfo()

int sceKernelQueryMemoryPartitionInfo ( int pid,
PspSysmemPartitionInfo * info )

Query the parition information.

Parameters
pid- The partition id
info- Pointer to the PspSysmemPartitionInfo structure
Returns
0 on success.

◆ sceKernelSetCompiledSdkVersion()

int sceKernelSetCompiledSdkVersion ( int version)

Set the version of the SDK with which the caller was compiled.

Version numbers are as for sceKernelDevkitVersion().

Returns
0 on success, < 0 on error.

◆ sceKernelSetDdrMemoryProtection()

int sceKernelSetDdrMemoryProtection ( void * addr,
int size,
int prot )

Set the protection of a block of ddr memory.

Parameters
addr- Address to set protection on
size- Size of block
prot- Protection bitmask
Returns
< 0 on error

◆ sceKernelSysMemDump()

void sceKernelSysMemDump ( void )

Get the kernel to dump the internal memory table to Kprintf.

◆ sceKernelSysMemDumpBlock()

void sceKernelSysMemDumpBlock ( void )

Dump the list of memory blocks.

◆ sceKernelSysMemDumpTail()

void sceKernelSysMemDumpTail ( void )

Dump the tail blocks.

◆ SysMemForKernel_536AD5E1()

SceUidControlBlock * SysMemForKernel_536AD5E1 ( void )

Get the root of the UID tree (1.5+ only)

Returns
Pointer to the UID tree root