1# Copyright (c) 2020 Tobias Svehagen
2# Copyright (c) 2023 Meta
3#
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig ZVFS
7	bool "Zephyr virtual filesystem (ZVFS) support [EXPERIMENTAL]"
8	select FDTABLE
9	select EXPERIMENTAL
10	help
11	  ZVFS is a central, Zephyr-native library that provides a common interoperable API for all
12	  types of file descriptors such as those from the non-virtual FS, sockets, eventfds, FILE *'s
13	  and more. It is designed to be used by all Zephyr subsystems that need to work with files.
14
15if ZVFS
16
17config ZVFS_EVENTFD
18	bool "ZVFS event file descriptor support"
19	imply ZVFS_POLL
20	help
21	  Enable support for ZVFS event file descriptors. An eventfd can
22	  be used as an event wait/notify mechanism together with POSIX calls
23	  like read, write and poll.
24
25if ZVFS_EVENTFD
26
27config ZVFS_EVENTFD_MAX
28	int "Maximum number of ZVFS eventfd's"
29	default 8 if WIFI_NM_WPA_SUPPLICANT
30	default 1
31	range 1 4096
32	help
33	  The maximum number of supported event file descriptors.
34
35endif # ZVFS_EVENTFD
36
37config ZVFS_POLL
38	bool "ZVFS poll"
39	select POLL
40	help
41	  Enable support for zvfs_poll().
42
43if ZVFS_POLL
44
45config ZVFS_POLL_MAX
46	int "Max number of supported zvfs_poll() entries"
47	default NET_SOCKETS_POLL_MAX if NET_SOCKETS_POLL_MAX > 0
48	default 6 if WIFI_NM_WPA_SUPPLICANT
49	default 4 if SHELL_BACKEND_TELNET
50	default 3
51	help
52	  Maximum number of entries supported for poll() call.
53
54config ZVFS_SELECT
55	bool "ZVFS select"
56	help
57	  Enable support for zvfs_select().
58
59endif # ZVFS_POLL
60
61endif # ZVFS
62