diff --git a/doc/services/portability/posix/aep/index.rst b/doc/services/portability/posix/aep/index.rst index a03818b511f..59cfd13e7e2 100644 --- a/doc/services/portability/posix/aep/index.rst +++ b/doc/services/portability/posix/aep/index.rst @@ -8,11 +8,20 @@ subprofiling options of `IEEE 1003.1-2017`_. The single-purpose realtime system are listed below, for reference, in terms that agree with the current POSIX-1 standard. PSE54 is not considered at this time. +System Interfaces +================= + +The required POSIX :ref:`System Interfaces` are supported for +each Application Environment Profile. + .. _posix_aep_pse51: Minimal Realtime System Profile (PSE51) ======================================= +The *Minimal Realtime System Profile* (PSE51) includes all of the +:ref:`System Interfaces` along with several additional features. + .. Conforming implementations shall define _POSIX_AEP_REALTIME_MINIMAL to the value 200312L .. csv-table:: PSE51 System Interfaces @@ -25,43 +34,40 @@ Minimal Realtime System Profile (PSE51) :header: Symbol, Support, Remarks :widths: 50, 10, 50 - POSIX_C_LANG_JUMP, yes, :ref:`POSIX_C_LANG_JUMP ` - POSIX_C_LANG_SUPPORT, yes, :ref:`POSIX_C_LANG_SUPPORT ` - POSIX_DEVICE_IO,, :ref:`†` - POSIX_FILE_LOCKING,, - POSIX_SIGNALS,, :ref:`†` - POSIX_SINGLE_PROCESS, yes, - POSIX_THREADS_BASE, yes, :ref:`†` - XSI_THREADS_EXT, yes, + :ref:`POSIX_C_LANG_JUMP `, yes, + :ref:`POSIX_C_LANG_SUPPORT `, yes, + :ref:`POSIX_DEVICE_IO `,, + :ref:`POSIX_SIGNALS `,, + :ref:`POSIX_SINGLE_PROCESS `, yes, + :ref:`POSIX_THREADS_BASE `, yes, + :ref:`XSI_THREADS_EXT `, yes, .. csv-table:: PSE51 Option Requirements :header: Symbol, Support, Remarks :widths: 50, 10, 50 - _POSIX_CLOCK_SELECTION, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` - _POSIX_FSYNC, -1, - _POSIX_MEMLOCK, -1, - _POSIX_MEMLOCK_RANGE, -1, - _POSIX_MONOTONIC_CLOCK, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` - _POSIX_REALTIME_SIGNALS, -1, - _POSIX_SEMAPHORES, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC` - _POSIX_SHARED_MEMORY_OBJECTS, -1, - _POSIX_SYNCHRONIZED_IO, -1, - _POSIX_THREAD_ATTR_STACKADDR, 200809L, :kconfig:option:`CONFIG_PTHREAD` - _POSIX_THREAD_ATTR_STACKSIZE, 200809L, :kconfig:option:`CONFIG_PTHREAD` - _POSIX_THREAD_CPUTIME, -1, + :ref:`_POSIX_FSYNC `, -1, + :ref:`_POSIX_MEMLOCK `, -1, + :ref:`_POSIX_MEMLOCK_RANGE `, -1, + :ref:`_POSIX_MONOTONIC_CLOCK `, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` + :ref:`_POSIX_SHARED_MEMORY_OBJECTS `, -1, + :ref:`_POSIX_SYNCHRONIZED_IO `, -1, + :ref:`_POSIX_THREAD_ATTR_STACKADDR`, 200809L, :kconfig:option:`CONFIG_PTHREAD` + :ref:`_POSIX_THREAD_ATTR_STACKSIZE`, 200809L, :kconfig:option:`CONFIG_PTHREAD` + :ref:`_POSIX_THREAD_CPUTIME `, -1, _POSIX_THREAD_PRIO_INHERIT, 200809L, :kconfig:option:`CONFIG_PTHREAD_MUTEX` _POSIX_THREAD_PRIO_PROTECT, -1, - _POSIX_THREAD_PRIORITY_SCHEDULING, -1, :kconfig:option:`CONFIG_POSIX_PRIORITY_SCHEDULING` (will fail with ``ENOSYS``:ref:`†`) + :ref:`_POSIX_THREAD_PRIORITY_SCHEDULING`, 200809L, :kconfig:option:`CONFIG_POSIX_PRIORITY_SCHEDULING` (will fail with ``ENOSYS``:ref:`†`) _POSIX_THREAD_SPORADIC_SERVER, -1, - _POSIX_TIMEOUTS, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC` - _POSIX_TIMERS, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` .. _posix_aep_pse52: Realtime Controller System Profile (PSE52) ========================================== +The *Realtime Controller System Profile* (PSE52) includes all features from PSE51 and the +:ref:`System Interfaces`. + .. Conforming implementations shall define _POSIX_AEP_REALTIME_CONTROLLER to the value 200312L .. csv-table:: PSE52 System Interfaces @@ -74,42 +80,15 @@ Realtime Controller System Profile (PSE52) :header: Symbol, Support, Remarks :widths: 50, 10, 50 - POSIX_C_LANG_JUMP, yes, :ref:`POSIX_C_LANG_JUMP ` - POSIX_C_LANG_MATH, yes, :ref:`POSIX_C_LANG_MATH ` - POSIX_C_LANG_SUPPORT, yes, :ref:`POSIX_C_LANG_SUPPORT ` - POSIX_DEVICE_IO,, :ref:`†` - POSIX_FD_MGMT,, :ref:`POSIX_FD_MGMT ` - POSIX_FILE_LOCKING,, - POSIX_FILE_SYSTEM,, - POSIX_SIGNALS,, :ref:`†` - POSIX_SINGLE_PROCESS, yes, - POSIX_THREADS_BASE, yes, :ref:`†` - XSI_THREADS_EXT, yes, + :ref:`POSIX_C_LANG_MATH `, yes, + :ref:`POSIX_FD_MGMT `,, + :ref:`POSIX_FILE_SYSTEM `,, .. csv-table:: PSE52 Option Requirements :header: Symbol, Support, Remarks :widths: 50, 10, 50 - _POSIX_CLOCK_SELECTION, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` - _POSIX_FSYNC, -1, - _POSIX_MAPPED_FILES, -1, - _POSIX_MEMLOCK, -1, - _POSIX_MEMLOCK_RANGE, -1, - _POSIX_MESSAGE_PASSING, 200809L, :kconfig:option:`CONFIG_POSIX_MQUEUE` - _POSIX_MONOTONIC_CLOCK, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` - _POSIX_REALTIME_SIGNALS, -1, - _POSIX_SEMAPHORES, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC` - _POSIX_SHARED_MEMORY_OBJECTS, -1, - _POSIX_SYNCHRONIZED_IO, -1, - _POSIX_THREAD_ATTR_STACKADDR, 200809L, :kconfig:option:`CONFIG_PTHREAD` - _POSIX_THREAD_ATTR_STACKSIZE, 200809L, :kconfig:option:`CONFIG_PTHREAD` - _POSIX_THREAD_CPUTIME, -1, - _POSIX_THREAD_PRIO_INHERIT, 200809L, :kconfig:option:`CONFIG_PTHREAD_MUTEX` - _POSIX_THREAD_PRIO_PROTECT, -1, - _POSIX_THREAD_PRIORITY_SCHEDULING, -1, - _POSIX_THREAD_SPORADIC_SERVER, -1, - _POSIX_TIMEOUTS, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC` - _POSIX_TIMERS, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` + :ref:`_POSIX_MESSAGE_PASSING `, 200809L, :kconfig:option:`CONFIG_POSIX_MQUEUE` _POSIX_TRACE, -1, _POSIX_TRACE_EVENT_FILTER, -1, _POSIX_TRACE_LOG, -1, @@ -119,6 +98,9 @@ Realtime Controller System Profile (PSE52) Dedicated Realtime System Profile (PSE53) ========================================= +The *Dedicated Realtime System Profile* (PSE53) includes all features from PSE52, PSE51, and the +:ref:`System Interfaces`. + .. Conforming implementations shall define _POSIX_AEP_REALTIME_DEDICATED to the value 200312L .. csv-table:: PSE53 System Interfaces @@ -131,58 +113,21 @@ Dedicated Realtime System Profile (PSE53) :header: Symbol, Support, Remarks :widths: 50, 10, 50 - POSIX_C_LANG_JUMP, yes, :ref:`POSIX_C_LANG_JUMP ` - POSIX_C_LANG_MATH, yes, :ref:`POSIX_C_LANG_MATH ` - POSIX_C_LANG_SUPPORT, yes, :ref:`POSIX_C_LANG_SUPPORT ` - POSIX_DEVICE_IO,, :ref:`†` - POSIX_FD_MGMT,, :ref:`POSIX_FD_MGMT ` - POSIX_FILE_LOCKING,, - POSIX_FILE_SYSTEM,, POSIX_MULTI_PROCESS,, :ref:`†` - POSIX_NETWORKING, yes, :ref:`POSIX_NETWORKING ` - POSIX_PIPE,, :ref:`†` - POSIX_SIGNALS,, :ref:`†` - POSIX_SIGNAL_JUMP,, :ref:`†` - POSIX_SINGLE_PROCESS, yes, - POSIX_THREADS_BASE, yes, :ref:`†` - XSI_THREADS_EXT, yes, + :ref:`POSIX_NETWORKING `, yes, + :ref:`POSIX_PIPE `,, + :ref:`POSIX_SIGNAL_JUMP `,, .. csv-table:: PSE53 Option Requirements :header: Symbol, Support, Remarks :widths: 50, 10, 50 - _POSIX_ASYNCHRONOUS_IO, -1, - _POSIX_CLOCK_SELECTION, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` _POSIX_CPUTIME, -1, - _POSIX_FSYNC, -1, - _POSIX_MAPPED_FILES, -1, - _POSIX_MEMLOCK, -1, - _POSIX_MEMLOCK_RANGE, -1, - _POSIX_MEMORY_PROTECTION, -1, - _POSIX_MESSAGE_PASSING, 200809L, :kconfig:option:`CONFIG_POSIX_MQUEUE` - _POSIX_MONOTONIC_CLOCK, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` _POSIX_PRIORITIZED_IO, -1, - _POSIX_PRIORITY_SCHEDULING, -1, + :ref:`_POSIX_PRIORITY_SCHEDULING `, -1, _POSIX_RAW_SOCKETS, 200809L, :kconfig:option:`CONFIG_NET_SOCKETS` - _POSIX_REALTIME_SIGNALS, -1, - _POSIX_SEMAPHORES, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC` - _POSIX_SHARED_MEMORY_OBJECTS, -1, _POSIX_SPAWN, -1, _POSIX_SPORADIC_SERVER, -1, - _POSIX_SYNCHRONIZED_IO, -1, - _POSIX_THREAD_ATTR_STACKADDR, 200809L, :kconfig:option:`CONFIG_PTHREAD` - _POSIX_THREAD_ATTR_STACKSIZE, 200809L, :kconfig:option:`CONFIG_PTHREAD` - _POSIX_THREAD_CPUTIME, -1, - _POSIX_THREAD_PRIO_INHERIT, 200809L, :kconfig:option:`CONFIG_PTHREAD_MUTEX` - _POSIX_THREAD_PRIO_PROTECT, -1, - _POSIX_THREAD_PRIORITY_SCHEDULING, -1, - _POSIX_THREAD_PROCESS_SHARED, -1, - _POSIX_THREAD_SPORADIC_SERVER, -1, - _POSIX_TIMEOUTS, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC` - _POSIX_TIMERS, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK` - _POSIX_TRACE, -1, - _POSIX_TRACE_EVENT_FILTER, -1, - _POSIX_TRACE_LOG, -1, .. _IEEE 1003.1-2017: https://standards.ieee.org/ieee/1003.1/7101/ .. _IEEE 1003.13-2003: https://standards.ieee.org/ieee/1003.13/3322/ diff --git a/doc/services/portability/posix/conformance/index.rst b/doc/services/portability/posix/conformance/index.rst index 2fbc7215fc2..a59e4bf69de 100644 --- a/doc/services/portability/posix/conformance/index.rst +++ b/doc/services/portability/posix/conformance/index.rst @@ -54,6 +54,8 @@ POSIX System Interfaces modification is clearly documented. The implementation is not required for PSE51 or PSE52 and beyond that POSIX async I/O functions are rarely used in practice. +.. _posix_system_interfaces_required: + .. csv-table:: POSIX System Interfaces :header: Symbol, Support, Remarks :widths: 50, 10, 50 diff --git a/doc/services/portability/posix/overview/index.rst b/doc/services/portability/posix/overview/index.rst index a57465d8e49..4d53958245b 100644 --- a/doc/services/portability/posix/overview/index.rst +++ b/doc/services/portability/posix/overview/index.rst @@ -51,7 +51,8 @@ and experience limited user interaction. In such systems, full POSIX conformance impractical and unnecessary. For that reason, POSIX defined the following :ref:`Application Environment Profiles (AEP)` -as part of `IEEE 1003.13-2003`_ (also known as POSIX.13-2003). +as part of `IEEE 1003.13-2003`_ (also known as POSIX.13-2003). Each AEP adds incrementally more +features over the required :ref:`POSIX System Interfaces `. * Minimal Realtime System Profile (:ref:`PSE51 `) * Realtime Controller System Profile (:ref:`PSE52 `)