Until recently, the posix api was purely a consumer of the network subsystem. However, a dependency cycle was added as a stop-gap solution for challenges with the native platform. Specifically, 1. eventfd symbols conflict with those of the host 2. eventfd was excluded from native libc builds via cmake If any part of the posix were then to select the network subsystem (which is a legitimate use case, given that networking is a part of the posix api), we would get a build error due to the Kconfig dependency cycle. As usual, with dependency cycles, the cycle can be broken via a third, mutual dependency. What is the third mutual dependency? Naturally, it is ZVFS which was planned some time ago. ZVFS will be where we collect file-descriptor and FILE-pointer APIs so that we can ensure consistency for Zephyr users. This change deprecates EVENTFD_MAX in favour of ZVFS_EVENTFD_MAX. Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
129 lines
3.5 KiB
Plaintext
129 lines
3.5 KiB
Plaintext
# Copyright (c) 2016 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "OS Support Library"
|
|
|
|
config FDTABLE
|
|
bool "File descriptor table"
|
|
help
|
|
This file provides generic file descriptor table implementation, suitable
|
|
for any I/O object implementing POSIX I/O semantics (i.e. read/write +
|
|
aux operations).
|
|
|
|
config ZVFS_OPEN_MAX
|
|
int "Maximum number of open file descriptors"
|
|
default 16 if WIFI_NM_WPA_SUPPLICANT
|
|
default 16 if POSIX_API
|
|
default 4
|
|
help
|
|
Maximum number of open file descriptors, this includes
|
|
files, sockets, special devices, etc.
|
|
|
|
config PRINTK_SYNC
|
|
bool "Serialize printk() calls"
|
|
default y if SMP && MP_MAX_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 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
|
|
|
|
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 HAS_POWEROFF
|
|
bool
|
|
help
|
|
Option to signal that power off functionality is implemented.
|
|
|
|
config POWEROFF
|
|
bool "Power off functionality"
|
|
depends on HAS_POWEROFF
|
|
help
|
|
Enable support for system power off.
|
|
|
|
rsource "Kconfig.cbprintf"
|
|
rsource "zvfs/Kconfig"
|
|
|
|
endmenu
|