Skip to content

Commit

Permalink
doc: posix: misc cleanup and add links to system interfaces
Browse files Browse the repository at this point in the history
memlock, memlock range, shared memory objects, and synchronized
io were missing links.

Also, vdisable is '\0' (not 0).

Signed-off-by: Chris Friedt <[email protected]>
  • Loading branch information
Chris Friedt committed May 27, 2024
1 parent c82571c commit c237a88
Showing 1 changed file with 21 additions and 23 deletions.
44 changes: 21 additions & 23 deletions doc/services/portability/posix/conformance/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,6 @@ POSIX Conformance

As per `IEEE 1003.1-2017`, this section details Zephyr's POSIX conformance.

.. _posix_undefined_behaviour:

.. note::
As per POSIX 1003.13, single process mode is supported directly by both PSE51 and PSE52
profiles. While Zephyr includes support for many features found in PSE53, PSE53 itself requires
supporting multiple processes. Since supporting multiple processes is beyond the scope of
Zephyr's current design, some features requiring multi-process capabilities may exhibit
undefined behaviour, which we denote with the † (obelus) symbol.

.. _posix_libc_provided:

.. note::
Features listed in various POSIX Options or Option Groups may be provided in whole or in part
by a conformant C library implementation. This includes (but is not limited to) POSIX
Extensions to the ISO C Standard (`CX`_).

.. _posix_system_interfaces:

POSIX System Interfaces
Expand All @@ -34,7 +18,7 @@ POSIX System Interfaces

_POSIX_CHOWN_RESTRICTED, 0,
_POSIX_NO_TRUNC, 0,
_POSIX_VDISABLE, 0,
_POSIX_VDISABLE, ``'\0'``,

.. The following should be valued greater than zero in Zephyr, in order to be strictly conformant
with the POSIX specification.
Expand Down Expand Up @@ -84,14 +68,14 @@ POSIX System Interfaces
:ref:`_POSIX_CPUTIME<posix_option_cputime>`, 200809L, :kconfig:option:`CONFIG_POSIX_CPUTIME`
:ref:`_POSIX_FSYNC<posix_option_fsync>`, 200809L, :kconfig:option:`CONFIG_POSIX_FSYNC`
:ref:`_POSIX_IPV6<posix_option_ipv6>`, 200809L, :kconfig:option:`CONFIG_POSIX_IPV6`
_POSIX_MEMLOCK, -1,
_POSIX_MEMLOCK_RANGE, -1,
:ref:`_POSIX_MEMLOCK <posix_option_memlock>`, -1,
:ref:`_POSIX_MEMLOCK_RANGE <posix_option_memlock_range>`, -1,
:ref:`_POSIX_MESSAGE_PASSING<posix_option_message_passing>`, 200809L, :kconfig:option:`CONFIG_POSIX_MESSAGE_PASSING`
:ref:`_POSIX_MONOTONIC_CLOCK<posix_option_monotonic_clock>`, 200809L, :kconfig:option:`CONFIG_POSIX_MONOTONIC_CLOCK`
_POSIX_PRIORITIZED_IO, -1,
:ref:`_POSIX_PRIORITY_SCHEDULING<posix_option_priority_scheduling>`, 200809L, :kconfig:option:`CONFIG_POSIX_PRIORITY_SCHEDULING`
:ref:`_POSIX_RAW_SOCKETS<posix_option_raw_sockets>`, 200809L, :kconfig:option:`CONFIG_POSIX_RAW_SOCKETS`
_POSIX_SHARED_MEMORY_OBJECTS, -1,
:ref:`_POSIX_SHARED_MEMORY_OBJECTS <posix_shared_memory_objects>`, -1,
_POSIX_SPAWN, -1, :ref:`†<posix_undefined_behaviour>`
_POSIX_SPORADIC_SERVER, -1, :ref:`†<posix_undefined_behaviour>`
:ref:`_POSIX_SYNCHRONIZED_IO <posix_option_synchronized_io>`, -1, :kconfig:option:`CONFIG_POSIX_SYNCHRONIZED_IO`
Expand Down Expand Up @@ -141,10 +125,10 @@ Zephyr does not support a POSIX shell or utilities at this time.
XSI Conformance
###############

XSI System Interfaces
=====================
X/Open System Interfaces
========================

.. csv-table:: XSI System Interfaces
.. csv-table:: X/Open System Interfaces
:header: Symbol, Support, Remarks
:widths: 50, 10, 50

Expand All @@ -153,4 +137,18 @@ XSI System Interfaces
:ref:`_POSIX_THREAD_ATTR_STACKSIZE<posix_option_thread_attr_stacksize>`, 200809L, :kconfig:option:`CONFIG_POSIX_THREADS`
_POSIX_THREAD_PROCESS_SHARED, -1,

.. _posix_undefined_behaviour:

.. note::
Features requiring multi-processing, ad-hoc memory-mapping, multiple users, etc, may exhibit
undefined behaviour as they fall beyond the scope of Zephyr's current design and capabilities.
This is denoted with the † (obelus) symbol. Additional details `here <posix_option_groups>`.

.. _posix_libc_provided:

.. note::
Features listed in various POSIX Options or Option Groups may be provided in whole or in part
by a conformant C library implementation. This includes (but is not limited to) POSIX
Extensions to the ISO C Standard (`CX`_).

.. _CX: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap01.html

0 comments on commit c237a88

Please sign in to comment.