zephyr/lib/os/Kconfig

86 lines
3.1 KiB
Plaintext

# Copyright (c) 2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
menu "OS Support Library"
config JSON_LIBRARY
bool "Build JSON library"
help
Build a minimal JSON parsing/encoding library. Used by sample
applications such as the NATS client.
config RING_BUFFER
bool "Enable ring buffers"
help
Enable usage of ring buffers. This is similar to kernel FIFOs but ring
buffers manage their own buffer memory and can store arbitrary data.
For optimal performance, use buffer sizes that are a power of 2.
config BASE64
bool "Enable base64 encoding and decoding"
help
Enable base64 encoding and decoding functionality
config SYS_HEAP_VALIDATE
bool "Enable internal heap validity checking"
help
The sys_heap implementation is instrumented for extensive
internal validation. Leave this off by default, unless
modifying the heap code or (maybe) when running in
environments that require sensitive detection of memory
corruption.
config SYS_HEAP_ALLOC_LOOPS
int "Number of tries in the inner heap allocation loop"
default 3
help
The sys_heap allocator bounds the number of tries from the
smallest chunk level (the one that might not fit the
requested allocation) to maintain constant time performance.
Setting this to a high level will cause the heap to return
more successful allocations in situations of high
fragmentation, at the cost of potentially significant
(linear time) searching of the free list. The default is
three, which results in an allocator with good statistical
properties ("most" allocations that fit will succeed) but
keeps the maximum runtime at a tight bound so that the heap
is useful in locked or ISR contexts.
config SYS_HEAP_ALIGNED_ALLOC
bool "Enable sys_heap_aligned_alloc() API"
help
When true, the sys_heap_aligned_alloc() API is available to
guarantee alignment of returned heap blocks in an efficient
way. For technical reasons, this requires the use of the
"big" 8 byte heap block header format, so it will moderately
increase heap memory overhead on 32 bit platforms when using
small (<256kb) heaps.
config PRINTK64
bool
prompt "Enable 64 bit printk conversions" if !64BIT
default y
help
When true, 64 bit values will be printable on 32 bit systems
using the "ll" flag to the %d, %i, %u, %x and %X specifiers.
When false, these values will be correctly parsed from the
function arguments, but will print "ERR" if their value is
unrepresentable in 32 bits. This setting is always true on
64 bit systems. Note that setting this =n does not produce
significant code savings within the printk library code
itself. Instead, it suppresses the use of the
toolchain-provided 64 bit division implementation, which may
reduce code size if it is unused elsewhere in the
application. Most apps should leave this set to y.
config PRINTK_SYNC
bool "Serialize printk() calls"
default y if SMP && MP_NUM_CPUS > 1
help
When true, a spinlock will be taken around the output from a
single printk() call, preventing the output data from
interleaving with concurrent usage from another CPU or an
preempting interrupt.
endmenu