diff options
| author | Tangyuxin <[email protected]> | 2021-12-16 16:23:58 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-12-16 16:23:58 +0800 |
| commit | d724eed9fc09269c3c6e921c1f8b2df573508419 (patch) | |
| tree | 92f8528e0efbe28d4632692896d0bcaa2e45b3b6 /include/rtthread.h | |
| parent | 874f6c84f19f8ca24ebd00a9a95e7af02afc49a0 (diff) | |
分离内存分配接口与内存分配算法 (#5175)
* [kernel][mem] Multiple instances of small memory allocation algorithm
* [kernel][mem] Change small memory management algorithm memory header flag
* [kernel][mem] Fix assertion problem
* [kernel][slab] Multiple instances of slab memory management algorithm
* [kernel][memheap] Remove rt_malloc/rt_free/rt_realloc and other related memory interfaces
* [kernel][mem] Clean up memory space of small memory management objects
* [kernel][kservice] Add memory application interface and thread protection interface
* [kernel][kservice] Fix function return value problem
* [kernel][memheap] Optimize memheaptrace print
* [kernel][memheap] Support best mode
* [kernel][memory] Remove semaphore lock
* [kernel][memheap] Add locked flag
* [kernel][memory] Support malloc memory in interrupt
* [kernel][memheap] Add 'memheapcheck' cmd
* [kernel][mem] Fix failure to request full memory
* [kernel][memheap] Fix compilation warning
* [kernel][mem] Fix mem realloc ASSERT
* [examples][testcases] Add small mem testcase
* [examples][mem_tc] Modify test memory size
* [examples][testcases] Add slab memory management algorithm test case
* [examples][testcases] fix small memory management algorithm test case
* [kernel][memory] Adjusting memory allocation algorithm object definition and interface
* [kernel][memory] Fix compilation warning
* [examples][utest] Fix mem test case
* [examples][utest] fix slab test case
* [utest][testcases] Shorten test time
* [kernel][memory] Formatting code
* [examples][utest] Adjust test run time
* [examples][utest] Formatting code
* [bsp] update all rtconfig.h
Diffstat (limited to 'include/rtthread.h')
| -rw-r--r-- | include/rtthread.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/include/rtthread.h b/include/rtthread.h index 536ecd6db0..1c78cbde43 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -271,7 +271,7 @@ void rt_memory_info(rt_uint32_t *total, rt_uint32_t *used, rt_uint32_t *max_used); -#ifdef RT_USING_SLAB +#if defined(RT_USING_SLAB) && defined(RT_USING_SLAB_AS_HEAP) void *rt_page_alloc(rt_size_t npages); void rt_page_free(void *addr, rt_size_t npages); #endif @@ -283,6 +283,19 @@ void rt_free_sethook(void (*hook)(void *ptr)); #endif +#ifdef RT_USING_SMALL_MEM +/** + * small memory object interface + */ +rt_smem_t rt_smem_init(const char *name, + void *begin_addr, + rt_size_t size); +rt_err_t rt_smem_detach(rt_smem_t m); +void *rt_smem_alloc(rt_smem_t m, rt_size_t size); +void *rt_smem_realloc(rt_smem_t m, void *rmem, rt_size_t newsize); +void rt_smem_free(void *rmem); +#endif + #ifdef RT_USING_MEMHEAP /** * memory heap object interface @@ -295,6 +308,23 @@ rt_err_t rt_memheap_detach(struct rt_memheap *heap); void *rt_memheap_alloc(struct rt_memheap *heap, rt_size_t size); void *rt_memheap_realloc(struct rt_memheap *heap, void *ptr, rt_size_t newsize); void rt_memheap_free(void *ptr); +void rt_memheap_info(struct rt_memheap *heap, + rt_uint32_t *total, + rt_uint32_t *used, + rt_uint32_t *max_used); +#endif + +#ifdef RT_USING_SLAB +/** + * slab object interface + */ +rt_slab_t rt_slab_init(const char *name, void *begin_addr, rt_size_t size); +rt_err_t rt_slab_detach(rt_slab_t m); +void *rt_slab_page_alloc(rt_slab_t m, rt_size_t npages); +void rt_slab_page_free(rt_slab_t m, void *addr, rt_size_t npages); +void *rt_slab_alloc(rt_slab_t m, rt_size_t size); +void *rt_slab_realloc(rt_slab_t m, void *ptr, rt_size_t size); +void rt_slab_free(rt_slab_t m, void *ptr); #endif /**@}*/ |
