[mem] Modify macro definitions for better code reading

This commit is contained in:
wdfk-prog 2024-04-10 22:16:04 +08:00 committed by Meco Man
parent 1a8b8522f7
commit acf4487177
1 changed files with 9 additions and 13 deletions

View File

@ -87,16 +87,12 @@ struct rt_small_mem
#define HEAP_MAGIC 0x1ea0 #define HEAP_MAGIC 0x1ea0
#ifdef ARCH_CPU_64BIT #define MIN_SIZE (sizeof(rt_ubase_t) + sizeof(rt_size_t) + sizeof(rt_size_t))
#define MIN_SIZE 24
#else
#define MIN_SIZE 12
#endif /* ARCH_CPU_64BIT */
#define MEM_MASK ((~(rt_size_t)0) - 1) #define MEM_MASK ((~(rt_size_t)0) - 1)
#define MEM_USED() ((((rt_base_t)(small_mem)) & MEM_MASK) | 0x1) #define MEM_USED(_mem) ((((rt_base_t)(_mem)) & MEM_MASK) | 0x1)
#define MEM_FREED() ((((rt_base_t)(small_mem)) & MEM_MASK) | 0x0) #define MEM_FREED(_mem) ((((rt_base_t)(_mem)) & MEM_MASK) | 0x0)
#define MEM_ISUSED(_mem) \ #define MEM_ISUSED(_mem) \
(((rt_base_t)(((struct rt_small_mem_item *)(_mem))->pool_ptr)) & (~MEM_MASK)) (((rt_base_t)(((struct rt_small_mem_item *)(_mem))->pool_ptr)) & (~MEM_MASK))
#define MEM_POOL(_mem) \ #define MEM_POOL(_mem) \
@ -220,7 +216,7 @@ rt_smem_t rt_smem_init(const char *name,
/* initialize the start of the heap */ /* initialize the start of the heap */
mem = (struct rt_small_mem_item *)small_mem->heap_ptr; mem = (struct rt_small_mem_item *)small_mem->heap_ptr;
mem->pool_ptr = MEM_FREED(); mem->pool_ptr = MEM_FREED(small_mem);
mem->next = small_mem->mem_size_aligned + SIZEOF_STRUCT_MEM; mem->next = small_mem->mem_size_aligned + SIZEOF_STRUCT_MEM;
mem->prev = 0; mem->prev = 0;
#ifdef RT_USING_MEMTRACE #ifdef RT_USING_MEMTRACE
@ -229,7 +225,7 @@ rt_smem_t rt_smem_init(const char *name,
/* initialize the end of the heap */ /* initialize the end of the heap */
small_mem->heap_end = (struct rt_small_mem_item *)&small_mem->heap_ptr[mem->next]; small_mem->heap_end = (struct rt_small_mem_item *)&small_mem->heap_ptr[mem->next];
small_mem->heap_end->pool_ptr = MEM_USED(); small_mem->heap_end->pool_ptr = MEM_USED(small_mem);
small_mem->heap_end->next = small_mem->mem_size_aligned + SIZEOF_STRUCT_MEM; small_mem->heap_end->next = small_mem->mem_size_aligned + SIZEOF_STRUCT_MEM;
small_mem->heap_end->prev = small_mem->mem_size_aligned + SIZEOF_STRUCT_MEM; small_mem->heap_end->prev = small_mem->mem_size_aligned + SIZEOF_STRUCT_MEM;
#ifdef RT_USING_MEMTRACE #ifdef RT_USING_MEMTRACE
@ -333,7 +329,7 @@ void *rt_smem_alloc(rt_smem_t m, rt_size_t size)
/* create mem2 struct */ /* create mem2 struct */
mem2 = (struct rt_small_mem_item *)&small_mem->heap_ptr[ptr2]; mem2 = (struct rt_small_mem_item *)&small_mem->heap_ptr[ptr2];
mem2->pool_ptr = MEM_FREED(); mem2->pool_ptr = MEM_FREED(small_mem);
mem2->next = mem->next; mem2->next = mem->next;
mem2->prev = ptr; mem2->prev = ptr;
#ifdef RT_USING_MEMTRACE #ifdef RT_USING_MEMTRACE
@ -365,7 +361,7 @@ void *rt_smem_alloc(rt_smem_t m, rt_size_t size)
small_mem->parent.max = small_mem->parent.used; small_mem->parent.max = small_mem->parent.used;
} }
/* set small memory object */ /* set small memory object */
mem->pool_ptr = MEM_USED(); mem->pool_ptr = MEM_USED(small_mem);
#ifdef RT_USING_MEMTRACE #ifdef RT_USING_MEMTRACE
if (rt_thread_self()) if (rt_thread_self())
rt_smem_setname(mem, rt_thread_self()->parent.name); rt_smem_setname(mem, rt_thread_self()->parent.name);
@ -462,7 +458,7 @@ void *rt_smem_realloc(rt_smem_t m, void *rmem, rt_size_t newsize)
ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize; ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
mem2 = (struct rt_small_mem_item *)&small_mem->heap_ptr[ptr2]; mem2 = (struct rt_small_mem_item *)&small_mem->heap_ptr[ptr2];
mem2->pool_ptr = MEM_FREED(); mem2->pool_ptr = MEM_FREED(small_mem);
mem2->next = mem->next; mem2->next = mem->next;
mem2->prev = ptr; mem2->prev = ptr;
#ifdef RT_USING_MEMTRACE #ifdef RT_USING_MEMTRACE
@ -530,7 +526,7 @@ void rt_smem_free(void *rmem)
(rt_ubase_t)(mem->next - ((rt_uint8_t *)mem - small_mem->heap_ptr))); (rt_ubase_t)(mem->next - ((rt_uint8_t *)mem - small_mem->heap_ptr)));
/* ... and is now unused. */ /* ... and is now unused. */
mem->pool_ptr = MEM_FREED(); mem->pool_ptr = MEM_FREED(small_mem);
#ifdef RT_USING_MEMTRACE #ifdef RT_USING_MEMTRACE
rt_smem_setname(mem, " "); rt_smem_setname(mem, " ");
#endif /* RT_USING_MEMTRACE */ #endif /* RT_USING_MEMTRACE */