| # 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 BASE64 |
| bool "Base64 encoding and decoding" |
| help |
| Enable base64 encoding and decoding functionality |
| |
| 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. |
| |
| 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 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_CACHE_LINE |
| int "Maximum cache line" |
| default 32 |
| help |
| If buffer is used by 2 cores then value should be set to the length of |
| of the longer cache line. |
| |
| 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 |