OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
UmmMalloc.c File Reference

Go to the source code of this file.

Data Structures

struct  umm_ptr_t
 
struct  umm_block_t
 

Macros

#define UMM_MALLOC_CFG_HEAP_SIZE   default_umm_heap_size
 
#define UMM_MALLOC_CFG_HEAP_ADDR   default_umm_heap
 
#define UMM_BEST_FIT
 
#define DBGLOG_DEBUG(format, ...)
 
#define DBGLOG_TRACE(froamt, ...)
 
#define UMM_CRITICAL_ENTRY()
 
#define UMM_CRITICAL_EXIT()
 
#define UMM_FREELIST_MASK   (0x80000000)
 
#define UMM_BLOCKNO_MASK   (0x7FFFFFFF)
 
#define UMM_NUMBLOCKS   (umm_numblocks)
 
#define UMM_BLOCK(b)
 
#define UMM_NBLOCK(b)
 
#define UMM_PBLOCK(b)
 
#define UMM_NFREE(b)
 
#define UMM_PFREE(b)
 
#define UMM_DATA(b)
 

Typedefs

typedef struct umm_ptr_t umm_ptr
 
typedef struct umm_block_t umm_block
 

Functions

STATIC UINT32 umm_blocks (UINT32 size)
 
STATIC VOID umm_split_block (UINT32 c, UINT32 blocks, UINT32 new_freemask)
 
STATIC VOID umm_disconnect_from_free_list (UINT32 c)
 
STATIC VOID umm_assimilate_up (UINT32 c)
 
STATIC UINT32 umm_assimilate_down (UINT32 c, UINT32 freemask)
 
VOID umm_init (VOID)
 
BOOLEAN UmmInitialized (VOID)
 
VOID UmmSetHeap (VOID *heap, UINT32 size)
 
BOOLEAN UmmFree (VOID *ptr)
 
VOID * UmmMalloc (UINT32 size)
 

Variables

STATIC UINT8 * default_umm_heap
 
STATIC UINT32 default_umm_heap_size
 
umm_blockumm_heap = NULL
 
UINT32 umm_numblocks = 0
 

Macro Definition Documentation

◆ DBGLOG_DEBUG

#define DBGLOG_DEBUG ( format,
... )
Value:
do { } while (0)

Definition at line 67 of file UmmMalloc.c.

◆ DBGLOG_TRACE

#define DBGLOG_TRACE ( froamt,
... )
Value:
do { } while (0)

Definition at line 68 of file UmmMalloc.c.

◆ UMM_BEST_FIT

#define UMM_BEST_FIT

Definition at line 65 of file UmmMalloc.c.

◆ UMM_BLOCK

#define UMM_BLOCK ( b)
Value:
umm_block * umm_heap
Definition UmmMalloc.c:99

Definition at line 106 of file UmmMalloc.c.

◆ UMM_BLOCKNO_MASK

#define UMM_BLOCKNO_MASK   (0x7FFFFFFF)

Definition at line 95 of file UmmMalloc.c.

◆ UMM_CRITICAL_ENTRY

#define UMM_CRITICAL_ENTRY ( )

Definition at line 70 of file UmmMalloc.c.

◆ UMM_CRITICAL_EXIT

#define UMM_CRITICAL_EXIT ( )

Definition at line 71 of file UmmMalloc.c.

◆ UMM_DATA

#define UMM_DATA ( b)
Value:
(UMM_BLOCK(b).body.data)
#define UMM_BLOCK(b)
Definition UmmMalloc.c:106

Definition at line 112 of file UmmMalloc.c.

◆ UMM_FREELIST_MASK

#define UMM_FREELIST_MASK   (0x80000000)

Definition at line 94 of file UmmMalloc.c.

◆ UMM_MALLOC_CFG_HEAP_ADDR

#define UMM_MALLOC_CFG_HEAP_ADDR   default_umm_heap

Definition at line 63 of file UmmMalloc.c.

◆ UMM_MALLOC_CFG_HEAP_SIZE

#define UMM_MALLOC_CFG_HEAP_SIZE   default_umm_heap_size

Definition at line 62 of file UmmMalloc.c.

◆ UMM_NBLOCK

#define UMM_NBLOCK ( b)
Value:
(UMM_BLOCK(b).header.used.next)

Definition at line 108 of file UmmMalloc.c.

◆ UMM_NFREE

#define UMM_NFREE ( b)
Value:
(UMM_BLOCK(b).body.free.next)

Definition at line 110 of file UmmMalloc.c.

◆ UMM_NUMBLOCKS

#define UMM_NUMBLOCKS   (umm_numblocks)

Definition at line 102 of file UmmMalloc.c.

◆ UMM_PBLOCK

#define UMM_PBLOCK ( b)
Value:
(UMM_BLOCK(b).header.used.prev)

Definition at line 109 of file UmmMalloc.c.

◆ UMM_PFREE

#define UMM_PFREE ( b)
Value:
(UMM_BLOCK(b).body.free.prev)

Definition at line 111 of file UmmMalloc.c.

Typedef Documentation

◆ umm_block

typedef struct umm_block_t umm_block

◆ umm_ptr

typedef struct umm_ptr_t umm_ptr

Function Documentation

◆ umm_assimilate_down()

STATIC UINT32 umm_assimilate_down ( UINT32 c,
UINT32 freemask )

Definition at line 204 of file UmmMalloc.c.

◆ umm_assimilate_up()

STATIC VOID umm_assimilate_up ( UINT32 c)

Definition at line 178 of file UmmMalloc.c.

◆ umm_blocks()

STATIC UINT32 umm_blocks ( UINT32 size)

Definition at line 116 of file UmmMalloc.c.

◆ umm_disconnect_from_free_list()

STATIC VOID umm_disconnect_from_free_list ( UINT32 c)

Definition at line 162 of file UmmMalloc.c.

◆ umm_init()

VOID umm_init ( VOID )

Definition at line 214 of file UmmMalloc.c.

◆ umm_split_block()

STATIC VOID umm_split_block ( UINT32 c,
UINT32 blocks,
UINT32 new_freemask )

Definition at line 149 of file UmmMalloc.c.

◆ UmmFree()

BOOLEAN UmmFree ( VOID * ptr)

Definition at line 290 of file UmmMalloc.c.

◆ UmmInitialized()

BOOLEAN UmmInitialized ( VOID )

Check whether built-in allocator is initialized.

Return values
TRUEon success.

Definition at line 276 of file UmmMalloc.c.

◆ UmmMalloc()

VOID * UmmMalloc ( UINT32 size)

Definition at line 365 of file UmmMalloc.c.

◆ UmmSetHeap()

VOID UmmSetHeap ( VOID * heap,
UINT32 size )

Definition at line 282 of file UmmMalloc.c.

Variable Documentation

◆ default_umm_heap

STATIC UINT8* default_umm_heap

Definition at line 59 of file UmmMalloc.c.

◆ default_umm_heap_size

STATIC UINT32 default_umm_heap_size

Definition at line 60 of file UmmMalloc.c.

◆ umm_heap

umm_block* umm_heap = NULL

Definition at line 99 of file UmmMalloc.c.

◆ umm_numblocks

UINT32 umm_numblocks = 0

Definition at line 100 of file UmmMalloc.c.