zephyr/lib/os/Kconfig

180 lines
4.9 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 "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 NOTIFY
bool "Asynchronous Notifications"
help
Use this API to support async transactions.
config BASE64
bool "Base64 encoding and decoding"
help
Enable base64 encoding and decoding functionality
config CRC
bool "Cyclic redundancy check (CRC) Support"
default y
help
Enable use of CRC.
if CRC
config CRC_SHELL
bool "CRC Shell"
depends on SHELL
select GETOPT
help
Enable CRC checking for memory regions from the shell.
endif # CRC
config PRINTK_SYNC
bool "Serialize printk() calls"
default y if SMP && MP_NUM_CPUS > 1 && !(EFI_CONSOLE && LOG)
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.
config MPSC_PBUF
bool "Multi producer, single consumer packet buffer"
select TIMEOUT_64BIT
help
Enable usage of mpsc packet buffer. Packet buffer is capable of
storing variable length packets in a circular way and operate directly
on the buffer memory.
config ONOFF
bool "On-Off Manager"
select NOTIFY
help
An on-off manager supports an arbitrary number of clients of a
service which has a binary state. Example applications are power
rails, clocks, and binary device power management.
config SPSC_PBUF
bool "Single producer, single consumer packet buffer"
help
Enable usage of spsc packet buffer. Packet buffer is capable of
storing variable length packets in a circular way and operate directly
on the buffer memory.
if SPSC_PBUF
choice SPSC_PBUF_CACHE_HANDLING
prompt "Cache handling"
default SPSC_PBUF_CACHE_ALWAYS if SPSC_PBUF_USE_CACHE && !SPSC_PBUF_NO_CACHE
default SPSC_PBUF_CACHE_NEVER if !SPSC_PBUF_USE_CACHE && SPSC_PBUF_NO_CACHE
default SPSC_PBUF_CACHE_FLAG
config SPSC_PBUF_CACHE_FLAG
bool "Use cache flag"
help
Use instance specific configuration flag for cache handling.
config SPSC_PBUF_CACHE_ALWAYS
bool "Always handle cache"
help
Handle cache writeback and invalidation for all instances. Option used
to avoid runtime check and thus reduce memory footprint.
config SPSC_PBUF_CACHE_NEVER
bool "Never handle cache"
help
Discar cache handling for all instances. Option used to avoid runtime
check and thus reduce memory footprint.
endchoice
config SPSC_PBUF_USE_CACHE
bool
config SPSC_PBUF_NO_CACHE
bool
if SPSC_PBUF_CACHE_FLAG || SPSC_PBUF_CACHE_ALWAYS
config SPSC_PBUF_REMOTE_DCACHE_LINE
int "Remote cache line size"
default 32
help
If a packet buffer is used for data sharing between two cores then
this value should be set to the data cache line size of the remote core.
If local data cache line is detected at runtime then it should be
maximum of local and remote line size.
endif # SPSC_PBUF_CACHE_FLAG || SPSC_PBUF_CACHE_ALWAYS
config SPSC_PBUF_UTILIZATION
bool "Track maximum utilization"
help
When enabled, maximum utilization is tracked which can be used to
determine the size of the packet buffer.
endif # SPSC_PBUF
config SHARED_MULTI_HEAP
bool "Shared multi-heap manager"
help
Enable support for a shared multi-heap manager that uses the
multi-heap allocator to manage a set of reserved memory regions with
different capabilities / attributes (cacheable, non-cacheable,
etc...) defined in the DT.
config WINSTREAM
bool "Lockless shared memory window byte stream"
help
Winstream is a byte stream IPC for use in shared memory
"windows", generally for transmit to non-Zephyr contexts that
can't share Zephyr APIs or data structures.
if WINSTREAM
config WINSTREAM_STDLIB_MEMCOPY
bool "Use standard memcpy() in winstream"
help
The sys_winstream utility is sometimes used in early boot
environments before the standard library is usable. By
default it uses a simple internal bytewise memcpy(). Set
this to use the one from the standard library.
endif
if MPSC_PBUF
config MPSC_CLEAR_ALLOCATED
bool "Clear allocated packet"
help
When enabled packet space is zeroed before returning from allocation.
endif
config REBOOT
bool "Reboot functionality"
help
Enable the sys_reboot() API. Enabling this can drag in other subsystems
needed to perform a "safe" reboot (e.g. to stop the system clock before
issuing a reset).
config UTF8
bool "UTF-8 string operation supported"
help
Enable the utf8 API. The API implements functions to specifically
handle UTF-8 encoded strings.
rsource "Kconfig.cbprintf"
rsource "Kconfig.heap"
endmenu