187 lines
6.1 KiB
Plaintext
187 lines
6.1 KiB
Plaintext
# Copyright (c) 2024 Tenstorrent
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config POSIX_API
|
|
bool "POSIX APIs"
|
|
depends on !NATIVE_APPLICATION
|
|
select NATIVE_LIBC_INCOMPATIBLE
|
|
select POSIX_BASE_DEFINITIONS # clock_gettime(), pthread_create(), sem_get(), etc
|
|
select POSIX_AEP_REALTIME_MINIMAL # CLOCK_MONOTONIC, pthread_attr_setstack(), etc
|
|
select POSIX_NETWORKING if NETWORKING # inet_ntoa(), socket(), etc
|
|
imply EVENTFD # eventfd(), eventfd_read(), eventfd_write()
|
|
imply POSIX_FD_MGMT # open(), close(), read(), write()
|
|
imply POSIX_MESSAGE_PASSING # mq_open(), etc
|
|
imply POSIX_MULTI_PROCESS # sleep(), getpid(), etc
|
|
help
|
|
This option enables the required POSIX System Interfaces (base definitions), all of PSE51,
|
|
and some features found in PSE52.
|
|
|
|
Note: in the future, this option may be deprecated in favour of subprofiling options.
|
|
|
|
choice POSIX_AEP_CHOICE
|
|
prompt "POSIX Subprofile"
|
|
default POSIX_AEP_CHOICE_NONE
|
|
help
|
|
This choice is intended to help users select the correct POSIX profile for their
|
|
application. Choices are based on IEEE 1003.13-2003 (now inactive / reserved) and
|
|
extrapolated to the more recent Subprofiling Option Groups in IEEE 1003.3-2017.
|
|
|
|
For more information, please refer to
|
|
https://standards.ieee.org/ieee/1003.13/3322/
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
|
|
|
|
config POSIX_AEP_CHOICE_NONE
|
|
bool "No pre-defined POSIX subprofile"
|
|
help
|
|
No pre-defined POSIX profile is selected.
|
|
|
|
config POSIX_AEP_CHOICE_BASE
|
|
bool "Base definitions (system interfaces)"
|
|
depends on !NATIVE_APPLICATION
|
|
select NATIVE_LIBC_INCOMPATIBLE
|
|
select POSIX_BASE_DEFINITIONS
|
|
help
|
|
Only enable the base definitions required for all POSIX systems.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap02.html#tag_02_01_03_01
|
|
|
|
config POSIX_AEP_CHOICE_PSE51
|
|
bool "Minimal Realtime System Profile (PSE51)"
|
|
depends on !NATIVE_APPLICATION
|
|
select NATIVE_LIBC_INCOMPATIBLE
|
|
select POSIX_BASE_DEFINITIONS
|
|
select POSIX_AEP_REALTIME_MINIMAL
|
|
help
|
|
PSE51 includes the POSIX Base Definitions (System Interfaces) as well as several Options and
|
|
Option Groups to facilitate device I/O, signals, mandatory configuration utilities, and
|
|
threading.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
|
|
|
|
config POSIX_AEP_CHOICE_PSE52
|
|
bool "Realtime Controller System Profile (PSE52)"
|
|
depends on !NATIVE_APPLICATION
|
|
select NATIVE_LIBC_INCOMPATIBLE
|
|
select POSIX_BASE_DEFINITIONS
|
|
select POSIX_AEP_REALTIME_MINIMAL
|
|
select POSIX_AEP_REALTIME_CONTROLLER
|
|
help
|
|
PSE52 includes the POSIX Base Definitions (System Interfaces) as well as all features of
|
|
PSE51. Additionally, it includes interfaces for file descriptor management, filesystem
|
|
support, support for message queues, and tracing.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
|
|
|
|
config POSIX_AEP_CHOICE_PSE53
|
|
bool "Dedicated Realtime System Profile (PSE53)"
|
|
depends on !NATIVE_APPLICATION
|
|
select NATIVE_LIBC_INCOMPATIBLE
|
|
select POSIX_BASE_DEFINITIONS
|
|
select POSIX_AEP_REALTIME_MINIMAL
|
|
select POSIX_AEP_REALTIME_CONTROLLER
|
|
select POSIX_AEP_REALTIME_DEDICATED
|
|
help
|
|
PSE53 includes the POSIX Base Definitions (System Interfaces) as well as all features of
|
|
PSE52. Additionally, it includes interfaces for POSIX multi-processing, networking, pipes,
|
|
and prioritized I/O.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
|
|
|
|
# TODO: PSE54: Multi-purpose Realtime System Profile
|
|
|
|
endchoice # POSIX_AEP_CHOICE
|
|
|
|
# Base Definitions (System Interfaces)
|
|
config POSIX_BASE_DEFINITIONS
|
|
bool
|
|
select POSIX_ASYNCHRONOUS_IO
|
|
select POSIX_BARRIERS
|
|
select POSIX_CLOCK_SELECTION
|
|
# select POSIX_MAPPED_FILES
|
|
# select POSIX_MEMORY_PROTECTION
|
|
select POSIX_READER_WRITER_LOCKS
|
|
select POSIX_REALTIME_SIGNALS
|
|
select POSIX_SEMAPHORES
|
|
select POSIX_SPIN_LOCKS
|
|
select POSIX_THREAD_SAFE_FUNCTIONS
|
|
select POSIX_THREADS
|
|
select POSIX_TIMEOUTS
|
|
select POSIX_TIMERS
|
|
help
|
|
This option is not user configurable. It may be configured indirectly by selecting
|
|
CONFIG_POSIX_AEP_CHOICE_BASE=y.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap02.html#tag_02_01_03_01
|
|
|
|
config POSIX_AEP_REALTIME_MINIMAL
|
|
bool
|
|
# Option Groups
|
|
select POSIX_DEVICE_IO
|
|
select POSIX_SIGNALS
|
|
select POSIX_SINGLE_PROCESS
|
|
select XSI_THREADS_EXT
|
|
# Options
|
|
select POSIX_FSYNC
|
|
# select POSIX_MEMLOCK
|
|
# select POSIX_MEMLOCK_RANGE
|
|
select POSIX_MONOTONIC_CLOCK
|
|
# select POSIX_SHARED_MEMORY_OBJECTS
|
|
select POSIX_SYNCHRONIZED_IO
|
|
select POSIX_THREAD_ATTR_STACKADDR
|
|
select POSIX_THREAD_ATTR_STACKSIZE
|
|
select POSIX_THREAD_CPUTIME
|
|
select POSIX_THREAD_PRIO_INHERIT
|
|
select POSIX_THREAD_PRIO_PROTECT
|
|
select POSIX_THREAD_PRIORITY_SCHEDULING
|
|
# select POSIX_THREAD_SPORADIC_SERVER
|
|
help
|
|
This option is not user configurable. It may be configured indirectly by selecting
|
|
CONFIG_POSIX_AEP_CHOICE_PSE51=y.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
|
|
|
|
config POSIX_AEP_REALTIME_CONTROLLER
|
|
bool
|
|
# Option Groups
|
|
select POSIX_FD_MGMT
|
|
select POSIX_FILE_SYSTEM
|
|
# Options
|
|
select POSIX_MESSAGE_PASSING
|
|
# select POSIX_TRACE
|
|
# select POSIX_TRACE_EVENT_FILTER
|
|
# select POSIX_TRACE_LOG
|
|
help
|
|
This option is not user configurable. It may be configured indirectly by selecting
|
|
CONFIG_POSIX_AEP_CHOICE_PSE52=y.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
|
|
|
|
config POSIX_AEP_REALTIME_DEDICATED
|
|
bool
|
|
# Option Groups
|
|
select POSIX_MULTI_PROCESS
|
|
select POSIX_NETWORKING
|
|
# select POSIX_PIPE
|
|
# select POSIX_SIGNAL_JUMP
|
|
# Options
|
|
select POSIX_CPUTIME
|
|
# select POSIX_PRIORITIZED_IO
|
|
select POSIX_PRIORITY_SCHEDULING
|
|
select POSIX_RAW_SOCKETS
|
|
# select POSIX_SPAWN
|
|
# select POSIX_SPORADIC_SERVER
|
|
help
|
|
This option is not user configurable. It may be configured indirectly by selecting
|
|
CONFIG_POSIX_AEP_CHOICE_PSE53=y.
|
|
|
|
For more information, please see
|
|
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
|