zephyr/kernel
Allan Stephens 480a131ad9 unified: Support heap memory pool
Fleshes out the prototype heap memory pool support
to make it fully operational. Noteworthy changes are
listed below:

Tweaks arguments to k_malloc() and k_free() to be more like
malloc() and free(). Similarly, modifies k_free() to take
no action when passed a NULL pointer.

Now stores the complete block descriptor at the start
of any block allocated from the heap memory pool. This
increases memory overhead by 4 bytes per block, but
streamlines the allocation and freeing algorithms. It also
ensures that the routines will work if the block descriptor
internals are changed in the future.

Now allows the heap memory pool to be defined using the
HEAP_MEM_POOL_SIZE configuration option. This will be the
official configuration approach in the unified kernel.

Also allows the heap memory pool to be defined using the
(undocumented) HEAP_SIZE entry in the MDEF. This is provided
for legacy reasons only.

Co-locates memory pool initialization code to keep the line
that causes memory pool initialization to be done during booting
right next to the routine that does the initialization.

Change-Id: Ifea9d88142fb434d4bea38bb1fcc4856a3853d8d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-25 00:10:34 +00:00
..
configs unified: initial unified kernel implementation 2016-09-13 17:12:55 -04:00
microkernel power_mgmt: Reduce complexity in handling of power hooks 2016-10-05 10:05:42 +00:00
nanokernel kernel: Relocate ring buffer suppport to 'misc' directory 2016-10-21 15:33:31 +00:00
unified unified: Support heap memory pool 2016-10-25 00:10:34 +00:00
Kconfig sensor: grove: use global sensor init priority 2016-10-07 20:53:29 +00:00
Makefile unified: Fix build broblem caused by concurrent make processes in single dir 2016-10-05 10:29:31 +00:00