zephyr/lib/os
Nicolas Pitre e2b64777e5 sys_heap: optimize usage of size and used flags
By storing the used flag in the LSB, it is no longer necessary to have
a size_mask variable to locate that flag. This produces smaller and
faster code.

Replace the validation check in chunk_set() to base it on the storage
type.

Also clarify the semantics of set_chunk_size() which allows for clearing
the used flag bit unconditionally which simplifies the code further.

The idea of moving the used flag bit into the LEFT_SIZE field was
raised. It turns out that this isn't as beneficial as it may seem
because the used bit is set only once i.e. when the memory is handed off
to a user and the size field becomes frozen at that point. Modifications
on the leftward chunk may still occur and extra instructions to preserve
that bit would be necessary if it were moved there.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2020-06-21 19:25:35 +02: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 sys_heap: provide more chunk_fields accessors 2020-06-21 19:25:35 +02:00
heap.c sys_heap: optimize usage of size and used flags 2020-06-21 19:25:35 +02:00
heap.h sys_heap: optimize usage of size and used flags 2020-06-21 19:25:35 +02: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 lib/os: Add sys_heap, a new/simpler/faster memory allocator 2020-04-14 10:05:55 -07: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 lib: os: fix signed and unsigend comparison warnings 2020-04-03 18:06:59 -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