zephyr/lib/os
Krzysztof Chruscinski c26e08a51f lib: os: cbprintf: Add alignment offset to packaging
Added parameter to CBPRINTF_STATIC_PACKAGE which indicates buffer
alignment offset compared to CBPRINTF_PACKAGE_ALIGNMENT. When offset
is set to 0, macro assumes that input buffer is aligned to
CBPRINTF_PACKAGE_ALIGNMENT. When offset is positive, macro assumes
that buffer address is shifted by given number of bytes to
CBPRINTF_PACKAGE_ALIGNMENT alignment.

Extended cbprintf_package to use len argument as alignment offset
indicator when calculating length only (package pointer is null).

Features are not available for xtensa platform which seems to
require 16 byte alignment from the package. It is only an assumption
due to lack of the documentation and may be fixed in the future.

Feature allows to avoid unnecessary padding when package is part of
a message and preceeded by a header of a known size. For example,
message header on 32 bit architecture has 12 bytes, long doubles are
not used so cbprintf requires 8 byte alignment. Without alignment
offset indicator, package containing just a string with one argument
would need 4 byte padding after the header and 4 byte padding after
the package. Message would be 32 bytes long. With alignment offset
indication both paddings are not needed and message is only 24 bytes
long.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-03-29 14:08:41 +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
cbprintf.c lib: cbprintf: add libc f/printf substitutes 2021-01-27 13:34:06 -05:00
cbprintf_complete.c kernel: rename reserved 'exp' symbol 2021-03-25 07:28:37 -04:00
cbprintf_nano.c lib/os/cbprintf_nano.c: several improvements 2021-02-23 19:39:59 +01:00
cbprintf_packaged.c lib: os: cbprintf: Add alignment offset to packaging 2021-03-29 14:08:41 +02:00
CMakeLists.txt lib: cbprintf: add support for deferred formatting 2021-03-05 09:29:35 +01: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 lib: crc32_sw: 4 bit at a time implementation 2021-01-24 14:24:48 -05:00
crc32c_sw.c lib: os: Introduce support for CRC32C algorithm 2021-03-02 14:08:30 +01:00
dec.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
fdtable.c fdtable: fdtable: do not use tag name fd_entry 2021-03-22 19:48:14 -04:00
heap-validate.c kernel: heap: rename 'free' and 'alloc' 2021-03-25 07:28:37 -04:00
heap.c kernel: heap: rename resereved 'rewind' 2021-03-25 07:28:37 -04:00
heap.h lib/os/heap: straighten up our type usage 2021-03-18 19:33:39 -04:00
hex.c lib: hex: Remove constant expression 2020-09-02 13:45:50 -04:00
json.c misc: Replace assert include and calls by sys/__assert.h equivalent 2020-10-02 11:42:40 +02:00
Kconfig Revert "lib/os/heap: introduce option to force big heap mode" 2021-02-19 07:32:22 -05:00
Kconfig.cbprintf lib: os: cbprintf: Add static packaging 2021-03-11 09:54:39 +01:00
mutex.c lib: os: Simplify z_impl_z_sys_mutex_kernel_unlock 2021-03-10 05:42:06 -05:00
notify.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
onoff.c code-guideline: Fixing code violation 10.4 Rule 2020-10-01 17:13:29 -04:00
p4wq.c lib/p4wq: Fix race with completed work items 2021-02-14 18:17:28 -05:00
printk.c lib/os: replace z_vprintk with cbprintf 2020-11-13 06:38:01 -05:00
rb.c lib/rbtree: Remove dead case in rb_remove() 2021-03-13 06:49:08 -05:00
ring_buffer.c ring_buffer: rename resereved 'rewind' symbol 2021-03-25 07:28:37 -04:00
sem.c code-guideline: Fixing code violation 10.4 Rule 2020-10-01 17:13:29 -04:00
thread_entry.c lib: os: remove dead code 2019-06-18 09:08:01 -04:00
timeutil.c lib/timeutil: add utilities to manage local/reference clock alignment 2021-01-20 16:38:56 -05:00
user_work.c kernel: provide functional equivalent to old userspace work queue API 2021-03-03 20:06:00 -05:00
work_q.c os: work_q: Use NULL instead of 0 2020-09-02 13:45:50 -04:00