43 #define DYN_MEM_BUDDY_UNIT_SIZE (4 * 1024u)
94 static inline uint32_t ckDynMemGetSize(
void)
104 static inline bool ckDynMemPhyIsDynMem(uint32_t phy)
113 static inline bool ckDynMemLocIsDynMem(uint32_t loc)
struct tagDynMemStruct DynMemStruct
동적 메모리를 관리하는 구조체입니다.
동적 메모리를 관리하는 구조체입니다.
Definition: memory.h:53
BuddyBitmap * arBitmap
buddy block을 저장하는 비트맵들을 가리키는 포인터입니다.
Definition: memory.h:63
uint32_t CountOfUnitBlock
최소 크기(DYN_MEM_BUDDY_UNIT_SIZE )의 buddy block의 갯수입니다.
Definition: memory.h:60
uint32_t count
비트맵에서 1로 설정된 비트의 갯수입니다.
Definition: memory.h:49
uint8_t * bits
비트맵의 포인터입니다.
Definition: memory.h:48
uint32_t UsedSize
메타데이터를 제외한, 현재 할당되어 사용되고 있는 동적 메모리 영역의 크기입니다.
Definition: memory.h:58
uint32_t BeginAddr
buddy block 메타데이터를 제외한 동적 메모리 영역의 시작 주소입니다.
Definition: memory.h:57
#define DYN_MEMORY_START_ADDRESS
동적 메모리 영역의 선형 시작 주소입니다.
Definition: memory_map.h:77
uint32_t ckDynMemCheckSize(void)
돟적 메모리의 크기를 검사하고 g_Dynmem.DynMemSize에 저장합니다.
Definition: memory.c:266
void ckDynMemInitialize(void)
buddy block 알고리즘을 사용하는 동적 메모리 관리자를 초기화합니다.
Definition: memory.c:71
uint32_t DynMemSize
동적 메모리 영역의 크기입니다.
Definition: memory.h:55
struct tagBuddyBitmap BuddyBitmap
동적 메모리를 관리하는 buddy block을 기록하는 비트맵 자료구조입니다.
#define DYN_MEMORY_PHYSICAL_ADDRESS
동적 메모리 영역의 물리 시작 주소입니다.
Definition: memory_map.h:85
void * ckDynMemAllocate(uint32_t size)
동적 메모리에서 메모리를 할당받습니다.
Definition: memory.c:122
동적 메모리를 관리하는 buddy block을 기록하는 비트맵 자료구조입니다.
Definition: memory.h:46
#define IOMAP_MEMORY_START_ADDRESS
I/O 맵핑 메모리 영역의 선형 시작 주소입니다.
Definition: memory_map.h:79
bool ckDynMemFree(void *addr, uint32_t size)
동적 메모리에서 할당한 메모리를 해제합니다.
Definition: memory.c:179
DynMemStruct g_DynMem
DynMemStruct 입니다.
Definition: memory.c:38
uint32_t BitmapLevel
buddy block 계층의 갯수입니다.
Definition: memory.h:61