Browse Source

[mem] Modify macro definitions for better code reading

wdfk-prog 1 year ago
parent
commit
acf4487177
1 changed files with 9 additions and 13 deletions
  1. 9 13
      src/mem.c

+ 9 - 13
src/mem.c

@@ -87,16 +87,12 @@ struct rt_small_mem
 
 
 #define HEAP_MAGIC 0x1ea0
 #define HEAP_MAGIC 0x1ea0
 
 
-#ifdef ARCH_CPU_64BIT
-#define MIN_SIZE 24
-#else
-#define MIN_SIZE 12
-#endif /* ARCH_CPU_64BIT */
+#define MIN_SIZE (sizeof(rt_ubase_t) + sizeof(rt_size_t) + sizeof(rt_size_t))
 
 
 #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_FREED()        ((((rt_base_t)(small_mem)) & MEM_MASK) | 0x0)
+#define MEM_USED(_mem)       ((((rt_base_t)(_mem)) & MEM_MASK) | 0x1)
+#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 */