1# Copyright (c) 2016 Intel Corporation 2# SPDX-License-Identifier: Apache-2.0 3 4menu "Utility Library" 5 6config JSON_LIBRARY 7 bool "Build JSON library" 8 help 9 Build a minimal JSON parsing/encoding library. Used by sample 10 applications such as the NATS client. 11 12config JSON_LIBRARY_FP_SUPPORT 13 bool "Floating point support in JSON library" 14 depends on JSON_LIBRARY 15 select CBPRINTF_FP_SUPPORT 16 select REQUIRES_FULL_LIBC 17 help 18 Build the JSON library with support for floating point types. 19 20 Requires a libc implementation with support for floating point 21 functions: strtof(), strtod(), isnan() and isinf(). 22 23config RING_BUFFER 24 bool "Ring buffers" 25 help 26 Provide highly efficient ring buffer management for arbitrary data. 27 Some facilities such as kernel pipes are built on top of this. 28 May be used directly e.g. when the pipe overhead is unnecessary. 29 30config RING_BUFFER_LARGE 31 bool "Allow large ring buffer sizes" 32 depends on RING_BUFFER 33 help 34 Increase maximum buffer size from 32KB to 2GB. When this is enabled, 35 all struct ring_buf instances become 12 bytes bigger. 36 37config NOTIFY 38 bool "Asynchronous Notifications" 39 help 40 Use this API to support async transactions. 41 42config BASE64 43 bool "Base64 encoding and decoding" 44 help 45 Enable base64 encoding and decoding functionality 46 47config ONOFF 48 bool "On-Off Manager" 49 select NOTIFY 50 help 51 An on-off manager supports an arbitrary number of clients of a 52 service which has a binary state. Example applications are power 53 rails, clocks, and binary device power management. 54 55config WINSTREAM 56 bool "Lockless shared memory window byte stream" 57 help 58 Winstream is a byte stream IPC for use in shared memory 59 "windows", generally for transmit to non-Zephyr contexts that 60 can't share Zephyr APIs or data structures. 61 62if WINSTREAM 63config WINSTREAM_STDLIB_MEMCOPY 64 bool "Use standard memcpy() in winstream" 65 help 66 The sys_winstream utility is sometimes used in early boot 67 environments before the standard library is usable. By 68 default it uses a simple internal bytewise memcpy(). Set 69 this to use the one from the standard library. 70endif 71 72config UTF8 73 bool "UTF-8 string operation supported" 74 help 75 Enable the utf8 API. The API implements functions to specifically 76 handle UTF-8 encoded strings. 77 78config COBS 79 bool "Consistent overhead byte stuffing" 80 select NET_BUF 81 help 82 Enable consistent overhead byte stuffing 83 84config GETOPT 85 bool "Getopt library support" 86 help 87 This option adds support of the sys_getopt API. 88 89config GETOPT_LONG 90 bool "Getopt long library support" 91 depends on GETOPT 92 help 93 This option adds support of the getopt long. 94 Different shell backends are using their own instance of getopt to 95 not interfere with each other. 96 All not shell threads share one global instance of getopt state, hence 97 apart from shell this library is not thread safe. User can add support 98 for other threads by extending function sys_getopt_state_get in 99 getopt_common.c file. 100 101config TIMEUTIL_APPLY_SKEW 102 bool "Support applying clock skew corrections in conversion functions" 103 default y 104 help 105 Accurately applying clock skew correction in timeutil_sync_ref_from_local 106 and timeutil_sync_local_from_ref requires double-precision floating point 107 operations. If this is the only usage of double precision logic in the 108 build, but clocks skews are not used, this can be a significant ROM 109 overhead. Disabling this option can save ~2.4 kB of ROM. 110 111endmenu 112