zephyr/lib
Nicolas Pitre a2011d8af9 z_heap_aligned_alloc(): avoid memory wastage
The strategy used in z_heap_aligned_alloc() was to allocate an extra
align-sized memory block for storing a pointer to the memory heap.
This is wasteful in terms of memory usage when alignment is larger
than a pointer width. A loop is needed to find the initial memory
start when freeing it which isn't optimal either.

Instead, let's have sys_heap_aligned_alloc() rewind a pointer after
it is aligned to make just enough room for storing our heap reference.
This way the heap reference is always located immediately before the
aligned memory and any unused memory is returned to the heap.

The rewind and alignment values may coincide in which case only
the alignment is necessary anyway.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2021-01-22 10:04:43 -05:00
..
cmsis_rtos_v1 cmsis: align buffer containing struct k_timer 2020-11-13 14:53:55 -08:00
cmsis_rtos_v2 lib: cmsis_rtos_v2: Handle possible zero length array 2020-09-18 10:13:58 -05:00
fnmatch ext: lib: Move fnmatch to lib/ 2020-03-20 22:56:19 -04:00
gui drivers: display: Added support for restricted update. 2021-01-21 17:26:37 +01:00
libc Revert "newlib: memory-map the heap, cleanups" 2021-01-22 08:39:45 -05:00
open-amp lib: open-amp: add helper to add resource table in project 2020-04-01 09:21:15 -05:00
os z_heap_aligned_alloc(): avoid memory wastage 2021-01-22 10:04:43 -05:00
posix lib/posix: SPARC newlib has unsigned short mode_t 2020-11-13 14:53:55 -08:00
CMakeLists.txt updatehub: Move from lib to subsys:mgmt folder 2020-08-03 16:33:06 +02:00
Kconfig updatehub: Move from lib to subsys:mgmt folder 2020-08-03 16:33:06 +02:00