REpsp2
PSP2 OS reverse engineering
Loading...
Searching...
No Matches
oheap.h
Go to the documentation of this file.
1
2#ifndef _SCE_KERNEL_SYSMEM_OHEAP_H_
3#define _SCE_KERNEL_SYSMEM_OHEAP_H_
4
5#include <scetypes.h>
8
15
17#define OHEAP_RESOURCE_TYPES_NUM 6
18
23
24#pragma region Public structures definitions
25
46
47#pragma endregion
48
49#pragma region Private functions signatures
50
53 ObjectHeap *pObjectHeap,
54 SceKernelPhyMemPart *pPhyMemPart,
55 SceUInt32 num_heaps,
56 struct HeapDescriptor *heaps,
57 SceKernelHeapHook *pHeapHook);
58
60void ObjectHeap_set_heap_for_size(ObjectHeap *pObjectHeap, SceSize itemSize, SceUIDHeap *pHeap, int heapGuid);
61
62//FUN_81000CF0
63
73
75SceInt32 ObjectHeapSetResourceLimit(ObjectHeap *pObjectHeap, SceUInt32 resourceType, SceInt32 nMaxLimit, SceSize max_cache_size);
76
78void *ObjectHeap_get_unk18(ObjectHeap *pObjectHeap);
79
93
106
107#pragma endregion
108
109#pragma region Exported functions signatures
115
129 ScePID processId,
130 int a2,
131 SceKernelHeapHook *pHeapHook,
132 ObjectHeap **ppObjectHeap);
133
146SceInt32 sceKernelObjectHeapStart(ObjectHeap *pObjectHeap, int a2, unsigned a3);
147
156
169
183SceInt32 sceKernelObjectHeapSetResourceLimit(ObjectHeap *pObjectHeap, SceUInt32 resourceType, SceInt32 nMaxLimit, SceSize max_cache_size);
184
197SceInt32 sceKernelObjectHeapSetResourceLimitAll(ObjectHeap *pObjectHeap, unsigned a2, const void *a3);
198
209
220#pragma endregion
221
223
224#endif /* _SCE_KERNEL_SYSMEM_OHEAP_H_ */
ScePVoid sceKernelObjectHeapAlloc(ObjectHeap *pObjectHeap, SceSize size)
Allocate memory from an object heap.
SceBool ObjectHeapFree(ObjectHeap *pObjectHeap, SceUInt32 type, ScePVoid pObject)
Attempt freeing memory into object heap.
SceInt32 sce_KernelDeleteObjectHeap(ObjectHeap *pObjectHeap)
Delete an object heap.
SceInt32 sceKernelCreateObjectHeap(ScePID processId, int a2, SceKernelHeapHook *pHeapHook, ObjectHeap **ppObjectHeap)
Create an object heap.
ObjectHeap * get_kernel_objectheap(void)
Obtain pointer to the kernel's object heap.
void * ObjectHeap_get_unk18(ObjectHeap *pObjectHeap)
SceInt32 sceKernelObjectHeapFree(ObjectHeap *pObjectHeap, SceSize size, ScePVoid ptr)
Free memory allocated from an object heap.
Definition oheap.c:56
SceInt32 sceKernelObjectHeapSetResourceLimitAll(ObjectHeap *pObjectHeap, unsigned a2, const void *a3)
Set limit for "all" resource types in an object heap.
SceInt32 ObjectHeapSetResourceLimit(ObjectHeap *pObjectHeap, SceUInt32 resourceType, SceInt32 nMaxLimit, SceSize max_cache_size)
SceUIDHeap * ObjectHeapGetHeap(ObjectHeap *pObjectHeap, SceSize size)
Get appropriate heap for allocations of given size.
void ObjectHeap_init(ObjectHeap *pObjectHeap, SceKernelPhyMemPart *pPhyMemPart, SceUInt32 num_heaps, struct HeapDescriptor *heaps, SceKernelHeapHook *pHeapHook)
SceInt32 sceKernelObjectHeapSetResourceLimit(ObjectHeap *pObjectHeap, SceUInt32 resourceType, SceInt32 nMaxLimit, SceSize max_cache_size)
Set limit for specific resource in object heap.
SceBool ObjectHeapAllocLimit(ObjectHeap *pObjectHeap, SceUInt32 type, ScePVoid *ppObject)
Allocate resource from object heap with limit checking.
SceInt32 sceKernelObjectHeap_setResourceSize(SceUInt32 type, SceSize size)
Set size of resources of a given type in object heap.
SceInt32 sceKernelObjectHeapStart(ObjectHeap *pObjectHeap, int a2, unsigned a3)
void ObjectHeap_set_heap_for_size(ObjectHeap *pObjectHeap, SceSize itemSize, SceUIDHeap *pHeap, int heapGuid)
#define OHEAP_RESOURCE_TYPES_NUM
Definition oheap.h:17
unsigned int SceUInt32
Definition scetypes.h:13
SceUID ScePID
Definition scetypes.h:249
int SceBool
Definition scetypes.h:39
unsigned int SceSize
Definition scetypes.h:228
void * ScePVoid
Definition scetypes.h:47
int SceUID
Definition scetypes.h:237
signed int SceInt32
Definition scetypes.h:12
SceUInt32 SceKernelSpinlock
Definition spinlock.h:8
SceUID heapUid
Definition oheap.h:13
SceUIDHeap * pHeap
Definition oheap.h:12
SceUInt32 itemSize
Definition oheap.h:11
SceInt32 nMaxLimit
Definition oheap.h:37
SceUInt32 num_heaps
Definition oheap.h:30
SceUIDHeap * unk_14
Definition oheap.h:33
SceUIDHeap * unk_18
Definition oheap.h:34
SceKernelSpinlock lock
Definition oheap.h:28
SceInt32 num_alloc
Definition oheap.h:39
SceUInt32 max_freelist_size
Definition oheap.h:38
SceKernelHeapHook * pHeapHook
Definition oheap.h:32
void ** free_list_tail
Definition oheap.h:43
void ** free_list_head
Definition oheap.h:42
SceUInt32 free_list_size
Definition oheap.h:41
SceInt32 num_alloc_highwater
Definition oheap.h:40
void * pPhyMemPart
Definition oheap.h:29
struct HeapDescriptor * heaps
Definition oheap.h:31