Dynamic Memory Management
less than a minute
Description
- XWOS does not use the dynamic memory management algorithm provided by picolibc. It uses a memory pool algorithm:
Porting Method
- Source path:
xwmd/libc/picolibcac/mem.c - Rewrite picolibc’s functions:
void * malloc(size_t n);
void * realloc(void * p, size_t n);
void * calloc(size_t elem_nr, size_t elem_sz);
void * memalign(size_t alignment, size_t n);
void * valloc(size_t n);
void * pvalloc(size_t n);
void free(void * p);
int getpagesize(void);
- Functions that do not need rewriting:
int posix_memalign(void ** memptr, size_t align, size_t size); // picolibc provides an implementation based on memalign
void * aligned_alloc(size_t alignment, size_t size); // picolibc provides an implementation based on memalign
- Functions not yet implemented:
malloptmalloc_usable_sizemalloc_statsmallinfo