# Copyright (c) 2016 Intel Corporation # SPDX-License-Identifier: Apache-2.0 menu "Utility 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 JSON_LIBRARY_FP_SUPPORT bool "Floating point support in JSON library" depends on JSON_LIBRARY select CBPRINTF_FP_SUPPORT select REQUIRES_FULL_LIBC help Build the JSON library with support for floating point types. Requires a libc implementation with support for floating point functions: strtof(), strtod(), isnan() and isinf(). config RING_BUFFER bool "Ring buffers" help Provide highly efficient ring buffer management for arbitrary data. Some facilities such as kernel pipes are built on top of this. May be used directly e.g. when the pipe overhead is unnecessary. config RING_BUFFER_LARGE bool "Allow large ring buffer sizes" depends on RING_BUFFER help Increase maximum buffer size from 32KB to 2GB. When this is enabled, all struct ring_buf instances become 12 bytes bigger. 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 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 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 config UTF8 bool "UTF-8 string operation supported" help Enable the utf8 API. The API implements functions to specifically handle UTF-8 encoded strings. config COBS bool "Consistent overhead byte stuffing" select NET_BUF help Enable consistent overhead byte stuffing config GETOPT bool "Getopt library support" help This option adds support of the sys_getopt API. config GETOPT_LONG bool "Getopt long library support" depends on GETOPT help This option adds support of the getopt long. Different shell backends are using their own instance of getopt to not interfere with each other. All not shell threads share one global instance of getopt state, hence apart from shell this library is not thread safe. User can add support for other threads by extending function sys_getopt_state_get in getopt_common.c file. config TIMEUTIL_APPLY_SKEW bool "Support applying clock skew corrections in conversion functions" default y help Accurately applying clock skew correction in timeutil_sync_ref_from_local and timeutil_sync_local_from_ref requires double-precision floating point operations. If this is the only usage of double precision logic in the build, but clocks skews are not used, this can be a significant ROM overhead. Disabling this option can save ~2.4 kB of ROM. endmenu