REpsp2
PSP2 OS reverse engineering
Loading...
Searching...
No Matches
oheap.c
Go to the documentation of this file.
1
2#include <scetypes.h>
3#include <sysmem/oheap.h>
4
5//ObjectHeap_init#
6
7//ObjectHeap_set_heap_for_size#
8
9//FUN_81000CF0
10
11static SceUIDHeap *ObjectHeapGetHeap(ObjectHeap *pObjectHeap, SceSize itemSize) {
12 if (pObjectHeap == SCE_NULL) {
13 goto return_null;
14 }
15
16 if (pObjectHeap->num_heaps == 0) {
17 goto return_null;
18 }
19
20 for (SceUInt32 i = 0; i < pObjectHeap->num_heaps; i++) {
21 struct HeapDescriptor *pHeapDesc = &pObjectHeap->heaps[i];
22 if (itemSize <= pHeapDesc->itemSize && pHeapDesc->pHeap != SCE_NULL) {
23 return pHeapDesc->pHeap;
24 }
25 }
26
27return_null:
28 /* SceDebugForDriver_D9703808("Cannot found for 0x%08x\n", itemSize); */
29 return SCE_NULL;
30}
31
32//ObjectHeapSetResourceLimit
33
34//ObjectHeap_get_unk18_heap
35
36//ObjectHeapAllocLimit
37
38//ObjectHeapFree
39
40//get_kernel_objectheap
41
42//sceKernelCreateObjectHeap
43
44//sceKernelObjectHeapStart
45
46//sceKernelObjectHeap__delete
47
48//objectheap_set_resource_size
49
50//sceKernelObjectHeapSetResourceLimit
51
52//sceKernelObjectHeapSetResourceLimitAll
53
54//sceKernelObjectHeapAlloc
55
57 SceUIDHeap *pHeap = ObjectHeapGetHeap(pObjectHeap, size);
58 return UIDHeapCallFree(pHeap, ptr);
59}
SceInt32 sceKernelObjectHeapFree(ObjectHeap *pObjectHeap, SceSize size, ScePVoid ptr)
Free memory allocated from an object heap.
Definition oheap.c:56
SceUIDHeap * ObjectHeapGetHeap(ObjectHeap *pObjectHeap, SceSize size)
Get appropriate heap for allocations of given size.
SceInt32 UIDHeapCallFree(SceUIDHeap *pHeap, ScePVoid pObject)
Free object from heap.
Definition uid_heap.c:9
unsigned int SceUInt32
Definition scetypes.h:13
unsigned int SceSize
Definition scetypes.h:228
void * ScePVoid
Definition scetypes.h:47
signed int SceInt32
Definition scetypes.h:12
#define SCE_NULL
Definition scetypes.h:36
SceUIDHeap * pHeap
Definition oheap.h:12
SceUInt32 itemSize
Definition oheap.h:11
SceUInt32 num_heaps
Definition oheap.h:30
struct HeapDescriptor * heaps
Definition oheap.h:31