zephyr/lib/os
Nicolas Pitre 130963ad2f lib/os/heap: add an additional validation criteria
One fundamental validation criteria is to never have consecutive free
chunks. If that ever happens we failed to merge them. That means a free
chunk must always be surrounded by used chunks.

It is a pain to extend valid_chunk() with new rules as it is.
So a VALIDATE() macro is introduced to make things easier to work with.
It also allows for isolating each test, possibly making VALIDATE() into
__ASSERT() to determine exactly which test is tripping when debugging.

Finally, because of that new validation rule, sys_heap_validate() must
be modified so not to use valid_chunk() while it is flipping all the
"used" flags. So let's run valid_chunk() up front before alterating
chunk headers.

Now sys_heap_validate() has become justifiably more expensive and a few
emulated targets are about to bust the tests/lib/heap test timeout. So
bump the timeout as well.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2020-07-14 19:35:52 -04:00
..
assert.c assert: Completely remove file info and condition expression 2020-01-13 13:59:55 +01:00
base64.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
CMakeLists.txt lib/os: Add sys_heap, a new/simpler/faster memory allocator 2020-04-14 10:05:55 -07:00
crc7_sw.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
crc8_sw.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
crc16_sw.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
crc32_sw.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
dec.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
fdtable.c fdtable: init fd context objects 2020-06-03 22:33:32 +02:00
heap-validate.c lib/os/heap: add an additional validation criteria 2020-07-14 19:35:52 -04:00
heap.c lib/os/heap: code cleanup 2020-07-14 19:35:52 -04:00
heap.h lib/os/heap: debugging facility to dump the heap structure to the cconsole 2020-06-26 11:41:43 -07:00
hex.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
json.c json: Add top-level array encoding support 2020-06-19 18:21:27 +02:00
Kconfig kernel/printk: Make it synchronous 2020-06-27 08:14:58 -04:00
mempool.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
mutex.c kernel/timeout: Make timeout arguments an opaque type 2020-03-31 19:40:47 -04:00
notify.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
onoff.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
printk.c kernel/printk: Make it synchronous 2020-06-27 08:14:58 -04:00
rb.c cleanup: include/: move misc/rb.h to sys/rb.h 2019-06-27 22:55:49 -04:00
ring_buffer.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
sem.c kernel/timeout: Make timeout arguments an opaque type 2020-03-31 19:40:47 -04:00
thread_entry.c lib: os: remove dead code 2019-06-18 09:08:01 -04:00
timeutil.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
work_q.c global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00