2024-01-31 12:05:44 +08:00
|
|
|
# Copyright (c) 2018 Intel Corporation
|
|
|
|
# Copyright (c) 2023 Meta
|
2024-05-20 21:04:30 +08:00
|
|
|
# Copyright (c) 2024 Tenstorrent AI ULC
|
2024-01-31 12:05:44 +08:00
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
menu "POSIX Options"
|
|
|
|
|
|
|
|
config POSIX_API
|
|
|
|
depends on !NATIVE_APPLICATION
|
|
|
|
bool "POSIX APIs"
|
2024-03-27 21:13:47 +08:00
|
|
|
select NATIVE_LIBC_INCOMPATIBLE
|
2024-01-31 12:05:44 +08:00
|
|
|
help
|
|
|
|
Enable mostly-standards-compliant implementations of
|
|
|
|
various POSIX (IEEE 1003.1) APIs.
|
|
|
|
|
|
|
|
config PTHREAD_IPC
|
|
|
|
bool "POSIX pthread IPC API"
|
|
|
|
default y if POSIX_API
|
2024-05-21 00:23:58 +08:00
|
|
|
depends on POSIX_TIMERS
|
2024-01-31 12:05:44 +08:00
|
|
|
help
|
|
|
|
This enables a mostly-standards-compliant implementation of
|
|
|
|
the pthread mutex, condition variable and barrier IPC
|
|
|
|
mechanisms.
|
|
|
|
|
2024-04-15 22:11:07 +08:00
|
|
|
rsource "Kconfig.aio"
|
2024-01-31 12:05:44 +08:00
|
|
|
rsource "Kconfig.barrier"
|
|
|
|
rsource "Kconfig.cond"
|
2024-05-23 07:44:17 +08:00
|
|
|
rsource "Kconfig.c_lib_ext"
|
posix: deprecate POSIX_MAX_FDS and add POSIX_DEVICE_IO
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>
2024-05-22 10:45:15 +08:00
|
|
|
rsource "Kconfig.device_io"
|
2024-05-23 04:35:57 +08:00
|
|
|
rsource "Kconfig.fd_mgmt"
|
2024-01-31 12:05:44 +08:00
|
|
|
rsource "Kconfig.fs"
|
|
|
|
rsource "Kconfig.key"
|
2024-05-23 06:04:35 +08:00
|
|
|
rsource "Kconfig.mem"
|
2024-01-31 12:05:44 +08:00
|
|
|
rsource "Kconfig.mqueue"
|
|
|
|
rsource "Kconfig.mutex"
|
2024-03-23 09:03:13 +08:00
|
|
|
rsource "Kconfig.net"
|
2024-05-23 06:04:35 +08:00
|
|
|
rsource "Kconfig.proc1"
|
2024-05-21 00:23:58 +08:00
|
|
|
rsource "Kconfig.procN"
|
2024-01-31 12:05:44 +08:00
|
|
|
rsource "Kconfig.pthread"
|
|
|
|
rsource "Kconfig.rwlock"
|
|
|
|
rsource "Kconfig.sched"
|
|
|
|
rsource "Kconfig.semaphore"
|
|
|
|
rsource "Kconfig.signal"
|
|
|
|
rsource "Kconfig.spinlock"
|
|
|
|
rsource "Kconfig.stropts"
|
2024-02-05 11:51:06 +08:00
|
|
|
rsource "Kconfig.syslog"
|
2024-01-31 12:05:44 +08:00
|
|
|
rsource "Kconfig.timer"
|
2024-05-21 00:23:58 +08:00
|
|
|
rsource "Kconfig.xsi"
|
2024-01-31 12:05:44 +08:00
|
|
|
|
2024-05-20 21:04:30 +08:00
|
|
|
rsource "Kconfig.deprecated"
|
|
|
|
|
2024-01-31 12:05:44 +08:00
|
|
|
endmenu # "POSIX Options"
|