The POSIX_MAX_FDS option does not correspond to any standard POSIX option. It was used to define the size of the file descriptor table, which is by no means exclusively used by POSIX (also net, fs, ...). POSIX_MAX_FDS is being deprecated in order to ensure that Zephyr's POSIX Kconfig variables correspond to those defined in the specification, as of IEEE 1003.1-2017. Namely, POSIX_OPEN_MAX. CONFIG_POSIX_MAX_OPEN_FILES is being deprecated for the same reason. To mitigate any possible layering violations, that option is not user selectable. It tracks the newly added CONFIG_ZVFS_OPEN_MAX option, which is native to Zephyr. With this deprecation, we introduce the following Kconfig options that map directly to standard POSIX Option Groups by simply removing "CONFIG_": * CONFIG_POSIX_DEVICE_IO Similarly, with this deprecation, we introduce the following Kconfig options that map directly to standard POSIX Options by simply removing "CONFIG": * CONFIG_POSIX_OPEN_MAX In order to maintain parity with the current feature set, we introduce the following Kconfig options. * CONFIG_POSIX_DEVICE_IO_ALIAS_CLOSE * CONFIG_POSIX_DEVICE_IO_ALIAS_OPEN * CONFIG_POSIX_DEVICE_IO_ALIAS_READ * CONFIG_POSIX_DEVICE_IO_ALIAS_WRITE Gate open(), close(), read(), and write() via the CONFIG_POSIX_DEVICE_IO Kconfig option and move implementations into device_io.c, to be conformant with the spec. Lastly, stage function names for upcoming ZVFS work, to be completed as part of the LTSv3 Roadmap (e.g. zvfs_open(), ..). Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
57 lines
1.6 KiB
Text
57 lines
1.6 KiB
Text
# Copyright (c) 2024 Tenstorrent AI ULC
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "POSIX device I/O"
|
|
|
|
config POSIX_DEVICE_IO
|
|
bool "POSIX device I/O [EXPERIMENTAL]"
|
|
default y if POSIX_API
|
|
select FDTABLE
|
|
select EXPERIMENTAL
|
|
help
|
|
Select 'y' here and Zephyr will provide an implementation of the POSIX_DEVICE_IO Option
|
|
Group such as FD_CLR(), FD_ISSET(), FD_SET(), FD_ZERO(), close(), fdopen(), fileno(), open(),
|
|
poll(), pread(), pselect(), pwrite(), read(), select(), and write().
|
|
|
|
For more informnation, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
|
|
|
|
if POSIX_DEVICE_IO
|
|
|
|
# These options are intended to be used for compatibility with external POSIX
|
|
# implementations such as those in Newlib or Picolibc.
|
|
|
|
config POSIX_DEVICE_IO_ALIAS_CLOSE
|
|
bool
|
|
help
|
|
Select 'y' here and Zephyr will provide an alias for close() as _close().
|
|
|
|
config POSIX_DEVICE_IO_ALIAS_OPEN
|
|
bool
|
|
help
|
|
Select 'y' here and Zephyr will provide an alias for open() as _open().
|
|
|
|
config POSIX_DEVICE_IO_ALIAS_READ
|
|
bool
|
|
help
|
|
Select 'y' here and Zephyr will provide an alias for read() as _read().
|
|
|
|
config POSIX_DEVICE_IO_ALIAS_WRITE
|
|
bool
|
|
help
|
|
Select 'y' here and Zephyr will provide an alias for write() as _write().
|
|
|
|
endif # POSIX_DEVICE_IO
|
|
|
|
config POSIX_OPEN_MAX
|
|
int
|
|
default ZVFS_OPEN_MAX
|
|
help
|
|
The maximum number of files that a process can have open at one time. This option is not
|
|
directly user-configurable but can be adjusted via CONFIG_ZVFS_OPEN_MAX.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
|
|
|
|
endmenu
|