2#ifndef _SCE_KERNEL_SYSMEM_OHEAP_H_
3#define _SCE_KERNEL_SYSMEM_OHEAP_H_
17#define OHEAP_RESOURCE_TYPES_NUM 6
24#pragma region Public structures definitions
49#pragma region Private functions signatures
54 SceKernelPhyMemPart *pPhyMemPart,
109#pragma region Exported functions signatures
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.
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
SceUInt32 SceKernelSpinlock
SceUInt32 max_freelist_size
SceKernelHeapHook * pHeapHook
SceInt32 num_alloc_highwater
struct HeapDescriptor * heaps