This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 36aefeadfe Documentation: review supported POSIX interfaces in NuttX
36aefeadfe is described below

commit 36aefeadfe665a7ba67a7baf0e7f6fb08cf05057
Author: p-szafonimateusz <p-szafonimate...@xiaomi.com>
AuthorDate: Mon May 19 13:55:38 2025 +0200

    Documentation: review supported POSIX interfaces in NuttX
    
    Add a page in the documentation listing supported and unsupported POSIX 
options.
    This is the first step to support POSIX Application Environment Profiles.
    
    Signed-off-by: p-szafonimateusz <p-szafonimate...@xiaomi.com>
---
 Documentation/index.rst           |    1 +
 Documentation/standards/index.rst |    8 +
 Documentation/standards/posix.rst | 3347 +++++++++++++++++++++++++++++++++++++
 3 files changed, 3356 insertions(+)

diff --git a/Documentation/index.rst b/Documentation/index.rst
index ed213834d4..1443b32636 100644
--- a/Documentation/index.rst
+++ b/Documentation/index.rst
@@ -38,6 +38,7 @@ Last Updated: |today|
    faq/index.rst
    debugging/index.rst
    guides/index.rst
+   standards/index.rst
    glossary.rst
    logos/index.rst
    _tags/tagsindex.rst
diff --git a/Documentation/standards/index.rst 
b/Documentation/standards/index.rst
new file mode 100644
index 0000000000..878d3d4efb
--- /dev/null
+++ b/Documentation/standards/index.rst
@@ -0,0 +1,8 @@
+=========
+Standards
+=========
+
+.. toctree::
+   :maxdepth: 2
+
+   posix.rst
diff --git a/Documentation/standards/posix.rst 
b/Documentation/standards/posix.rst
new file mode 100644
index 0000000000..35187b2b4d
--- /dev/null
+++ b/Documentation/standards/posix.rst
@@ -0,0 +1,3347 @@
+=====
+POSIX
+=====
+
+Apache NuttX is **not** licensed to use the POSIX trademark. NuttX uses the
+POSIX standard as a development guideline only.
+
+This page summarizes supported POSIX features in NuttX.
+
+POSIX Subprofiles
+=================
+
+POSIX PSE51 - Minimal
+---------------------
+
+Units of Functionality Requirements:
+
++------------------------------+----------------+---------+
+| Symbol                       | Support        | Remarks |
++==============================+================+=========+
+| POSIX_ADA_LANG_SUPPORT       | No             |         |
++------------------------------+----------------+---------+
+| `POSIX_C_LANG_JUMP`_         | Yes            |         |
++------------------------------+----------------+---------+
+| `POSIX_C_LANG_SUPPORT`_      | 94/105 [#fn1]_ |         |
++------------------------------+----------------+---------+
+| `POSIX_DEVICE_IO`_           | Yes            |         |
++------------------------------+----------------+---------+
+| `POSIX_FILE_LOCKING`_        | Yes            |         |
++------------------------------+----------------+---------+
+| `POSIX_SINGLE_PROCESS`_      | 7/9            |         |
++------------------------------+----------------+---------+
+| `POSIX_THREADS_BASE`_        | Yes            |         |
++------------------------------+----------------+---------+
+| `POSIX_THREADS_EXT`_ [#fn2]_ | 2/4            |         |
++------------------------------+----------------+---------+
+| `XSI_THREADS_EXT`_           | 2/4            |         |
++------------------------------+----------------+---------+
+
+.. [#fn1] ``fenv.h`` related functions not supported.
+.. [#fn2] In older revisions this was called ``XSI_THREAD_MUTEX_EXT``
+          and some of interfaces was moved from ``POSIX_THREADS_EXT``
+          to ``POSIX_THREADS_EXT``.
+
+POSIX.1 Option Requirements:
+
++-------------------------------------------------+-------------+----------------------------------+
+|Symbol                                           |   Support   | Remarks      
                    |
++=================================================+=============+==================================+
+|`_POSIX_CLOCK_SELECTION`_                        | Yes         |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_FSYNC`_                                  | Yes         |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_MEMLOCK`_                                | Yes [#fn3]_ |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_MEMLOCK_RANGE`_                          | Yes [#fn3]_ |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_MONOTONIC_CLOCK`_                        | Yes         |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_NO_TRUNC`_                               | No          |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_REALTIME_SIGNALS`_                       | 201712L     |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_SEMAPHORES`_                             | 201712L     |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_SHARED_MEMORY_OBJECTS`_                  | 201712L     |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_SYNCHRONIZED_IO`_                        | Yes         |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_THREAD_ATTR_STACKADDR`_                  | Yes         |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_THREAD_ATTR_STACKSIZE`_                  | Yes         |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_THREAD_CPUTIME`_                         | 201712L     |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_THREAD_PRIO_INHERIT`_                    | Yes         | 
``CONFIG_PRIORITY_INHERITANCE``  |
++-------------------------------------------------+-------------+----------------------------------+
+|`_POSIX_THREAD_PRIO_PROTECT`_                    | Yes         | 
``CONFIG_PRIORITY_PROTECT``      |
++-------------------------------------------------+-------------+----------------------------------+
+| `_POSIX_THREAD_PRIORITY_SCHEDULING`_            | 201712L     |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+| `_POSIX_THREAD_SPORADIC_SERVER`_                | Yes         | 
``CONFIG_SCHED_SPORADIC``        |
++-------------------------------------------------+-------------+----------------------------------+
+| `_POSIX_TIMEOUTS`_ [#fn4]_                      | Yes         |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+| `_POSIX_TIMERS`_                                | Yes         | 
``!CONFIG_DISABLE_POSIX_TIMERS`` |
++-------------------------------------------------+-------------+----------------------------------+
+| `_POSIX2_C_DEV`_                                | Yes [#fn5]_ |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+| `_POSIX2_SW_DEV`_                               | Yes [#fn5]_ |              
                    |
++-------------------------------------------------+-------------+----------------------------------+
+
+.. [#fn3] NuttX provides dummy implementations for ``_POSIX_MEMLOCK`` and
+          ``_POSIX_MEMLOCK_RANGE`` which is sufficient for devices without MMU,
+          but doesn't meet the requirement for devices with MMU.
+.. [#fn4] Deprecated in new revisions of POSIX. Merged into other base options.
+.. [#fn5] Requred only for the development platform.
+          For PSE54 this requirement is also for execution platform whis is
+          not supported.
+
+Requirements for Other Standards:
+
++-----------------------------+---------+---------+
+| Symbol                      | Support | Remarks |
++=============================+=========+=========+
+| POSIX.26                    | ?       |         |
++-----------------------------+---------+---------+
+
+POSIX PSE52 - Real-Time Controller
+----------------------------------
+
+The Realtime Controller System Profile (PSE52) includes all features from 
PSE51.
+
+Units of Functionality Requirements:
+
++-----------------------------+-------------+---------------------+
+| Symbol                      |   Support   | Remarks             |
++=============================+=============+=====================+
+| `POSIX_C_LANG_MATH`_        | Yes [#fn6]_ | ``CONFIG_LIBM_XXX`` |
++-----------------------------+-------------+---------------------+
+| `POSIX_FD_MGMT`_            | Yes         |                     |
++-----------------------------+-------------+---------------------+
+| `POSIX_FILE_SYSTEM`_        | Yes         |                     |
++-----------------------------+-------------+---------------------+
+
+.. [#fn6] NuttX supports different libm implementations with different sets of
+          supported functions. libm support in NuttX is controlled by Kconfig
+          choice option.
+
+POSIX.1 Option Requirements
+
++------------------------------------+---------+----------------------------+
+| Symbol                             | Support | Remarks                    |
++====================================+=========+============================+
+| `_POSIX_MAPPED_FILES`_             | 201712L |                            |
++------------------------------------+---------+----------------------------+
+| `_POSIX_MESSAGE_PASSING`_          | Yes     | ``!CONFIG_DISABLE_MQUEUE`` |
++------------------------------------+---------+----------------------------+
+| _POSIX_TRACE [#fn7]_               | No      |                            |
++------------------------------------+---------+----------------------------+
+| _POSIX_TRACE_EVENT_FILTER [#fn7]_  | No      |                            |
++------------------------------------+---------+----------------------------+
+| _POSIX_TRACE_LOG [#fn7]_           | No      |                            |
++------------------------------------+---------+----------------------------+
+
+.. [#fn7] ``_POSIX_TRACE*`` are obsolete.
+
+POSIX PSE53 - Dedicated
+-----------------------
+
+The Dedicated Realtime System Profile (PSE53) includes all features from PSE52 
and PSE51.
+
+Units of Functionality Requirements:
+
++-----------------------------+---------+------------------+
+| Symbol                      | Support | Remarks          |
++=============================+=========+==================+
+| POSIX_EVENT_MGMT [#fn8]_    | Yes     |                  |
++-----------------------------+---------+------------------+
+| `POSIX_MULTI_PROCESS`_      | 25/29   |                  |
++-----------------------------+---------+------------------+
+| `POSIX_NETWORKING`_         | Yes     | ``CONFIG_NET``   |
++-----------------------------+---------+------------------+
+| `POSIX_PIPE`_               | Yes     | ``CONFIG_PIPES`` |
++-----------------------------+---------+------------------+
+| `POSIX_SIGNAL_JUMP`_        | No      |                  |
++-----------------------------+---------+------------------+
+
+.. [#fn8] Deprecated in new revisions of POSIX.
+          Merged into ``POSIX_DEVICE_IO``.
+
+POSIX.1 Option Requirements
+
++---------------------------------+-------------+---------------------------+
+| Symbol                          |   Support   | Remarks                   |
++=================================+=============+===========================+
+| `_POSIX_ASYNCHRONOUS_IO`_       | 201712L     | ``CONFIG_FS_AIO``         |
++---------------------------------+-------------+---------------------------+
+| `_POSIX_CPUTIME`_               | 201712L     |                           |
++---------------------------------+-------------+---------------------------+
+| `_POSIX_MEMORY_PROTECTION`_     | Yes [#fn9]_ |                           |
++---------------------------------+-------------+---------------------------+
+| `_POSIX_PRIORITIZED_IO`_        | 201712L     |                           |
++---------------------------------+-------------+---------------------------+
+| `_POSIX_PRIORITY_SCHEDULING`_   | Yes         |                           |
++---------------------------------+-------------+---------------------------+
+| `_POSIX_RAW_SOCKETS`_           | Yes         |                           |
++---------------------------------+-------------+---------------------------+
+| `_POSIX_SPAWN`_                 | 13/17       | ``CONFIG_BUILD_KERNEL``   |
++---------------------------------+-------------+---------------------------+
+| `_POSIX_SPORADIC_SERVER`_       | Yes         | ``CONFIG_SCHED_SPORADIC`` |
++---------------------------------+-------------+---------------------------+
+| `_POSIX_THREAD_PROCESS_SHARED`_ | 201712L     |                           |
++---------------------------------+-------------+---------------------------+
+
+.. [#fn9] NuttX provides dummy implementations for ``_POSIX_MEMORY_PROTECTION``
+          which is sufficient for devices without MMU, but doesn't meet the
+          requirement for devices with MMU.
+
+POSIX PSE54 - Multipurpose
+--------------------------
+
+The Multipurpose Realtime System Profile (PSE54) includes all features from 
PSE53, PSE52 and PSE51.
+
+Units of Functionality Requirements:
+
++------------------------------+---------+--------------------------------+
+| Symbol                       | Support | Remarks                        |
++==============================+=========+================================+
+| `POSIX_C_LANG_WIDE_CHAR`_    |         |                                |
++------------------------------+---------+--------------------------------+
+| `POSIX_DEVICE_SPECIFIC`_     | 3/15    | ``CONFIG_TERMIOS=y``           |
++------------------------------+---------+--------------------------------+
+| `POSIX_FIFO`_                | Yes     | ``CONFIG_DEV_FIFO_SIZE > 0``   |
++------------------------------+---------+--------------------------------+
+| `POSIX_FILE_ATTRIBUTES`_     | Yes     | ``CONFIG_PSEUDOFS_ATTRIBUTES`` |
++------------------------------+---------+--------------------------------+
+| `POSIX_FILE_SYSTEM_EXT`_     | Yes     |                                |
++------------------------------+---------+--------------------------------+
+| `POSIX_JOB_CONTROL`_         | 1/4     |                                |
++------------------------------+---------+--------------------------------+
+| `POSIX_REGEXP`_              | Yes     |                                |
++------------------------------+---------+--------------------------------+
+| `POSIX_SHELL_FUNC`_          | 3/5     |                                |
++------------------------------+---------+--------------------------------+
+| `POSIX_STRING_MATCHING`_     | Yes     |                                |
++------------------------------+---------+--------------------------------+
+| `POSIX_SYMBOLIC_LINKS`_      | Yes     | ``CONFIG_PSEUDOFS_SOFTLINKS``  |
++------------------------------+---------+--------------------------------+
+| `POSIX_SYSTEM_DATABASE`_     | Yes     |                                |
++------------------------------+---------+--------------------------------+
+| `POSIX_USER_GROUPS`_         | 8/10    |                                |
++------------------------------+---------+--------------------------------+
+| POSIX_WIDE_CHAR_IO [#fn10]_  |         |                                |
++------------------------------+---------+--------------------------------+
+| `XSI_DYNAMIC_LINKING`_       | Yes     |                                |
++------------------------------+---------+--------------------------------+
+| `XSI_SYSTEM_LOGGING`_        | 1/4     |                                |
++------------------------------+---------+--------------------------------+
+
+.. [#fn10] Deprecated in new revision of POSIX.
+           Moved to ``POSIX_WIDE_CHAR_DEVICE_IO``.
+
+POSIX.1 Option Requirements
+
++-----------------------------+---------+---------+
+| Symbol                      | Support | Remarks |
++=============================+=========+=========+
+| `_POSIX_ADVISORY_INFO`_     | 2/4     |         |
++-----------------------------+---------+---------+
+| `_POSIX_SAVED_IDS`_         | No      |         |
++-----------------------------+---------+---------+
+| `_POSIX_VDISABLE`_          | No      |         |
++-----------------------------+---------+---------+
+| `_POSIX2_CHAR_TERM`_        | ?       |         |
++-----------------------------+---------+---------+
+| `_POSIX2_FORT_RUN`_         | No      |         |
++-----------------------------+---------+---------+
+| `_POSIX2_UPE`_              | No      |         |
++-----------------------------+---------+---------+
+
+Functionality Requirements
+==========================
+
+POSIX_C_LANG_JUMP
+-----------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`longjmp`              | Yes     |
++--------------------------------+---------+
+| :c:func:`setjmp`               | Yes     |
++--------------------------------+---------+
+
+POSIX_C_LANG_SUPPORT
+--------------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| abs()                          | Yes     |
++--------------------------------+---------+
+| asctime()                      | Yes     |
++--------------------------------+---------+
+| asctime_r()                    | Yes     |
++--------------------------------+---------+
+| atof()                         | Yes     |
++--------------------------------+---------+
+| atoi()                         | Yes     |
++--------------------------------+---------+
+| atol()                         | Yes     |
++--------------------------------+---------+
+| atoll()                        | Yes     |
++--------------------------------+---------+
+| bsearch()                      | Yes     |
++--------------------------------+---------+
+| calloc()                       | Yes     |
++--------------------------------+---------+
+| ctime()                        | Yes     |
++--------------------------------+---------+
+| ctime_r()                      | Yes     |
++--------------------------------+---------+
+| difftime()                     | Yes     |
++--------------------------------+---------+
+| div()                          | Yes     |
++--------------------------------+---------+
+| feclearexcept()                | No      |
++--------------------------------+---------+
+| fegetenv()                     | No      |
++--------------------------------+---------+
+| fegetexceptflag()              | No      |
++--------------------------------+---------+
+| fegetround()                   | No      |
++--------------------------------+---------+
+| feholdexcept()                 | No      |
++--------------------------------+---------+
+| feraiseexcept()                | No      |
++--------------------------------+---------+
+| fesetenv()                     | No      |
++--------------------------------+---------+
+| fesetexceptflag()              | No      |
++--------------------------------+---------+
+| fesetround()                   | No      |
++--------------------------------+---------+
+| fetestexcept()                 | No      |
++--------------------------------+---------+
+| feupdateenv()                  | No      |
++--------------------------------+---------+
+| free()                         | Yes     |
++--------------------------------+---------+
+| gmtime()                       | Yes     |
++--------------------------------+---------+
+| gmtime_r()                     | Yes     |
++--------------------------------+---------+
+| imaxabs()                      | Yes     |
++--------------------------------+---------+
+| imaxdiv()                      | Yes     |
++--------------------------------+---------+
+| isalnum()                      | Yes     |
++--------------------------------+---------+
+| isalpha()                      | Yes     |
++--------------------------------+---------+
+| isblank()                      | Yes     |
++--------------------------------+---------+
+| iscntrl()                      | Yes     |
++--------------------------------+---------+
+| isdigit()                      | Yes     |
++--------------------------------+---------+
+| isgraph()                      | Yes     |
++--------------------------------+---------+
+| islower()                      | Yes     |
++--------------------------------+---------+
+| isprint()                      | Yes     |
++--------------------------------+---------+
+| ispunct()                      | Yes     |
++--------------------------------+---------+
+| isspace()                      | Yes     |
++--------------------------------+---------+
+| isupper()                      | Yes     |
++--------------------------------+---------+
+| isxdigit()                     | Yes     |
++--------------------------------+---------+
+| labs()                         | Yes     |
++--------------------------------+---------+
+| ldiv()                         | Yes     |
++--------------------------------+---------+
+| llabs()                        | Yes     |
++--------------------------------+---------+
+| lldiv()                        | Yes     |
++--------------------------------+---------+
+| localeconv()                   | Yes     |
++--------------------------------+---------+
+| localtime()                    | Yes     |
++--------------------------------+---------+
+| localtime_r()                  | Yes     |
++--------------------------------+---------+
+| malloc()                       | Yes     |
++--------------------------------+---------+
+| memchr()                       | Yes     |
++--------------------------------+---------+
+| memcmp()                       | Yes     |
++--------------------------------+---------+
+| memcpy()                       | Yes     |
++--------------------------------+---------+
+| memmove()                      | Yes     |
++--------------------------------+---------+
+| memset()                       | Yes     |
++--------------------------------+---------+
+| mktime()                       | Yes     |
++--------------------------------+---------+
+| qsort()                        | Yes     |
++--------------------------------+---------+
+| rand()                         | Yes     |
++--------------------------------+---------+
+| rand_r()                       | Yes     |
++--------------------------------+---------+
+| realloc()                      | Yes     |
++--------------------------------+---------+
+| setlocale()                    | Yes     |
++--------------------------------+---------+
+| snprintf()                     | Yes     |
++--------------------------------+---------+
+| sprintf()                      | Yes     |
++--------------------------------+---------+
+| srand()                        | Yes     |
++--------------------------------+---------+
+| sscanf()                       | Yes     |
++--------------------------------+---------+
+| strcat()                       | Yes     |
++--------------------------------+---------+
+| strchr()                       | Yes     |
++--------------------------------+---------+
+| strcmp()                       | Yes     |
++--------------------------------+---------+
+| strcoll()                      | Yes     |
++--------------------------------+---------+
+| strcpy()                       | Yes     |
++--------------------------------+---------+
+| strcspn()                      | Yes     |
++--------------------------------+---------+
+| strerror()                     | Yes     |
++--------------------------------+---------+
+| strerror_r()                   | Yes     |
++--------------------------------+---------+
+| strftime()                     | Yes     |
++--------------------------------+---------+
+| strlen()                       | Yes     |
++--------------------------------+---------+
+| strncat()                      | Yes     |
++--------------------------------+---------+
+| strncmp()                      | Yes     |
++--------------------------------+---------+
+| strncpy()                      | Yes     |
++--------------------------------+---------+
+| strpbrk()                      | Yes     |
++--------------------------------+---------+
+| strrchr()                      | Yes     |
++--------------------------------+---------+
+| strspn()                       | Yes     |
++--------------------------------+---------+
+| strstr()                       | Yes     |
++--------------------------------+---------+
+| strtod()                       | Yes     |
++--------------------------------+---------+
+| strtof()                       | Yes     |
++--------------------------------+---------+
+| strtoimax()                    | Yes     |
++--------------------------------+---------+
+| strtok()                       | Yes     |
++--------------------------------+---------+
+| strtok_r()                     | Yes     |
++--------------------------------+---------+
+| strtol()                       | Yes     |
++--------------------------------+---------+
+| strtold()                      | Yes     |
++--------------------------------+---------+
+| strtoll()                      | Yes     |
++--------------------------------+---------+
+| strtoul()                      | Yes     |
++--------------------------------+---------+
+| strtoull()                     | Yes     |
++--------------------------------+---------+
+| strtoumax()                    | Yes     |
++--------------------------------+---------+
+| strxfrm()                      | Yes     |
++--------------------------------+---------+
+| time()                         | Yes     |
++--------------------------------+---------+
+| tolower()                      | Yes     |
++--------------------------------+---------+
+| toupper()                      | Yes     |
++--------------------------------+---------+
+| tzname                         | Yes     |
++--------------------------------+---------+
+| tzset()                        | Yes     |
++--------------------------------+---------+
+| va_arg()                       | Yes     |
++--------------------------------+---------+
+| va_copy()                      | Yes     |
++--------------------------------+---------+
+| va_end()                       | Yes     |
++--------------------------------+---------+
+| va_start()                     | Yes     |
++--------------------------------+---------+
+| vsnprintf()                    | Yes     |
++--------------------------------+---------+
+| vsprintf()                     | Yes     |
++--------------------------------+---------+
+| vsscanf()                      | Yes     |
++--------------------------------+---------+
+
+POSIX_DEVICE_IO
+---------------
+
+Device Input and Output:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`FD_CLR`               | Yes     |
++--------------------------------+---------+
+| :c:func:`FD_ISSET`             | Yes     |
++--------------------------------+---------+
+| :c:func:`FD_SET`               | Yes     |
++--------------------------------+---------+
+| :c:func:`FD_ZERO`              | Yes     |
++--------------------------------+---------+
+| :c:func:`clearerr`             | Yes     |
++--------------------------------+---------+
+| :c:func:`close`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fclose`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fdopen`               | Yes     |
++--------------------------------+---------+
+| :c:func:`feof`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`ferror`               | Yes     |
++--------------------------------+---------+
+| :c:func:`flush`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fgetc`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fgets`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fileno`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fopen`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fprintf`              | Yes     |
++--------------------------------+---------+
+| :c:func:`fputc`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fputs`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fread`                | Yes     |
++--------------------------------+---------+
+| :c:func:`freopen`              | Yes     |
++--------------------------------+---------+
+| :c:func:`fscanf`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fwrite`               | Yes     |
++--------------------------------+---------+
+| :c:func:`getc`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`getchar`              | Yes     |
++--------------------------------+---------+
+| :c:func:`open`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`perror`               | Yes     |
++--------------------------------+---------+
+| :c:func:`poll`                 | Yes     |
++--------------------------------+---------+
+| posix_close()                  | No      |
++--------------------------------+---------+
+| :c:func:`ppoll`                | Yes     |
++--------------------------------+---------+
+| :c:func:`printf`               | Yes     |
++--------------------------------+---------+
+| :c:func:`pread`                | Yes     |
++--------------------------------+---------+
+| :c:func:`pselect`              | Yes     |
++--------------------------------+---------+
+| :c:func:`putc`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`putchar`              | Yes     |
++--------------------------------+---------+
+| :c:func:`puts`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`pwrite`               | Yes     |
++--------------------------------+---------+
+| :c:func:`read`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`scanf`                | Yes     |
++--------------------------------+---------+
+| :c:func:`select`               | Yes     |
++--------------------------------+---------+
+| :c:func:`setbuf`               | Yes     |
++--------------------------------+---------+
+| :c:func:`setvbuf`              | Yes     |
++--------------------------------+---------+
+| stderr                         | Yes     |
++--------------------------------+---------+
+| stdin                          | Yes     |
++--------------------------------+---------+
+| stdout                         | Yes     |
++--------------------------------+---------+
+| :c:func:`ungetc`               | Yes     |
++--------------------------------+---------+
+| :c:func:`vfprintf`             | Yes     |
++--------------------------------+---------+
+| :c:func:`vfscanf`              | Yes     |
++--------------------------------+---------+
+| :c:func:`vprintf`              | Yes     |
++--------------------------------+---------+
+| :c:func:`vscanf`               | Yes     |
++--------------------------------+---------+
+| :c:func:`write`                | Yes     |
++--------------------------------+---------+
+
+
+POSIX_FILE_LOCKING
+------------------
+
+Thread-Safe Stdio Locking:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`flockfile`            | Yes     |
++--------------------------------+---------+
+| :c:func:`ftrylockfile`         | Yes     |
++--------------------------------+---------+
+| :c:func:`funlockfile`          | Yes     |
++--------------------------------+---------+
+| :c:func:`getc_unlocked`        | Yes     |
++--------------------------------+---------+
+| :c:func:`getchar_unlocked`     | Yes     |
++--------------------------------+---------+
+| :c:func:`putc_unlocked`        | Yes     |
++--------------------------------+---------+
+| :c:func:`putchar_unlocked`     | Yes     |
++--------------------------------+---------+
+
+POSIX_SINGLE_PROCESS
+--------------------
+
+Single Process:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| confstr()                      | No      |
++--------------------------------+---------+
+| environ                        | Yes     |
++--------------------------------+---------+
+| errno                          | Yes     |
++--------------------------------+---------+
+| :c:func:`getenv`               | Yes     |
++--------------------------------+---------+
+| secure_getenv()                | No      |
++--------------------------------+---------+
+| :c:func:`setenv`               | Yes     |
++--------------------------------+---------+
+| :c:func:`sysconf`              | Yes     |
++--------------------------------+---------+
+| :c:func:`uname`                | Yes     |
++--------------------------------+---------+
+| :c:func:`unsetenv`             | Yes     |
++--------------------------------+---------+
+
+POSIX_THREADS_BASE
+------------------
+
+Base Threads:
+
++-----------------------------------------+---------+
+| API                                     | Support |
++=========================================+=========+
+| :c:func:`pthread_atfork`                | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_destroy`          | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_getdetachstate`   | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_getschedparam`    | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_init`             | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_setdetachstate`   | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_setschedparam`    | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cancel`                | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cleanup_pop`           | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cleanup_push`          | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cond_broadcast`        | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cond_clockwait`        | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cond_destroy`          | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cond_init`             | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cond_signal`           | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cond_timedwait`        | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_cond_wait`             | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_condattr_destroy`      | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_condattr_init`         | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_create`                | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_detach`                | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_equal`                 | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_exit`                  | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_getspecific`           | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_join`                  | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_key_create`            | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_key_delete`            | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_kill`                  | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutex_clocklock`       | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutex_destroy`         | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutex_init`            | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutex_lock`            | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutex_timedlock`       | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutex_trylock`         | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutex_unlock`          | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutexattr_destroy`     | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutexattr_init`        | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_once`                  | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_self`                  | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_setcancelstate`        | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_setcanceltype`         | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_setspecific`           | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_sigmask`               | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_testcancel`            | Yes     |
++-----------------------------------------+---------+
+| :c:func:`sched_yield`                   | Yes     |
++-----------------------------------------+---------+
+
+POSIX_THREADS_EXT
+-----------------
+
+Extended Threads:
+
++-------------------------------------+---------+
+| API                                 | Support |
++=====================================+=========+
+| pthread_attr_getguardsize()         | No      |
++-------------------------------------+---------+
+| pthread_attr_setguardsize()         | No      |
++-------------------------------------+---------+
+| :c:func:`pthread_mutexattr_gettype` | Yes     |
++-------------------------------------+---------+
+| :c:func:`pthread_mutexattr_settype` | Yes     |
++-------------------------------------+---------+
+
+POSIX_C_LANG_MATH
+-----------------
+
+Depends on the enabled ``libm`` implementation [#fn11]_.
+
+Maths Library:
+
++--------------------------------+
+| API                            |
++================================+
+| CMPLX()                        |
++--------------------------------+
+| CMPLXF()                       |
++--------------------------------+
+| CMPLXL()                       |
++--------------------------------+
+| acos()                         |
++--------------------------------+
+| acosf()                        |
++--------------------------------+
+| acosh()                        |
++--------------------------------+
+| acoshf()                       |
++--------------------------------+
+| acoshl()                       |
++--------------------------------+
+| acosl()                        |
++--------------------------------+
+| asin()                         |
++--------------------------------+
+| asinf()                        |
++--------------------------------+
+| asinh()                        |
++--------------------------------+
+| asinhf()                       |
++--------------------------------+
+| asinhl()                       |
++--------------------------------+
+| asinl()                        |
++--------------------------------+
+| atan()                         |
++--------------------------------+
+| atan2()                        |
++--------------------------------+
+| atan2f()                       |
++--------------------------------+
+| atan2l()                       |
++--------------------------------+
+| atanf()                        |
++--------------------------------+
+| atanh()                        |
++--------------------------------+
+| atanhf()                       |
++--------------------------------+
+| atanhl()                       |
++--------------------------------+
+| atanl()                        |
++--------------------------------+
+| cabs()                         |
++--------------------------------+
+| cabsf()                        |
++--------------------------------+
+| cabsl()                        |
++--------------------------------+
+| cacos()                        |
++--------------------------------+
+| cacosf()                       |
++--------------------------------+
+| cacosh()                       |
++--------------------------------+
+| cacoshf()                      |
++--------------------------------+
+| cacoshl()                      |
++--------------------------------+
+| cacosl()                       |
++--------------------------------+
+| carg()                         |
++--------------------------------+
+| cargf()                        |
++--------------------------------+
+| cargl()                        |
++--------------------------------+
+| casin()                        |
++--------------------------------+
+| casinf()                       |
++--------------------------------+
+| casinh()                       |
++--------------------------------+
+| casinhf()                      |
++--------------------------------+
+| casinhl()                      |
++--------------------------------+
+| casinl()                       |
++--------------------------------+
+| catan()                        |
++--------------------------------+
+| catanf()                       |
++--------------------------------+
+| catanh()                       |
++--------------------------------+
+| catanhf()                      |
++--------------------------------+
+| catanhl()                      |
++--------------------------------+
+| catanl()                       |
++--------------------------------+
+| cbrt()                         |
++--------------------------------+
+| cbrtf()                        |
++--------------------------------+
+| cbrtl()                        |
++--------------------------------+
+| ccos()                         |
++--------------------------------+
+| ccosf()                        |
++--------------------------------+
+| ccosh()                        |
++--------------------------------+
+| ccoshf()                       |
++--------------------------------+
+| ccoshl()                       |
++--------------------------------+
+| ccosl()                        |
++--------------------------------+
+| ceil()                         |
++--------------------------------+
+| ceilf()                        |
++--------------------------------+
+| ceill()                        |
++--------------------------------+
+| cexp()                         |
++--------------------------------+
+| cexpf()                        |
++--------------------------------+
+| cexpl()                        |
++--------------------------------+
+| cimag()                        |
++--------------------------------+
+| cimagf()                       |
++--------------------------------+
+| cimagl()                       |
++--------------------------------+
+| clog()                         |
++--------------------------------+
+| clogf()                        |
++--------------------------------+
+| clogl()                        |
++--------------------------------+
+| conj()                         |
++--------------------------------+
+| conjf()                        |
++--------------------------------+
+| conjl()                        |
++--------------------------------+
+| copysign()                     |
++--------------------------------+
+| copysignf()                    |
++--------------------------------+
+| copysignl()                    |
++--------------------------------+
+| cos()                          |
++--------------------------------+
+| cosf()                         |
++--------------------------------+
+| cosh()                         |
++--------------------------------+
+| coshf()                        |
++--------------------------------+
+| coshl()                        |
++--------------------------------+
+| cosl()                         |
++--------------------------------+
+| cpow()                         |
++--------------------------------+
+| cpowf()                        |
++--------------------------------+
+| cpowl()                        |
++--------------------------------+
+| cproj()                        |
++--------------------------------+
+| cprojf()                       |
++--------------------------------+
+| cprojl()                       |
++--------------------------------+
+| creal()                        |
++--------------------------------+
+| crealf()                       |
++--------------------------------+
+| creall()                       |
++--------------------------------+
+| csin()                         |
++--------------------------------+
+| csinf()                        |
++--------------------------------+
+| csinh()                        |
++--------------------------------+
+| csinhf()                       |
++--------------------------------+
+| csinhl()                       |
++--------------------------------+
+| csinl()                        |
++--------------------------------+
+| csqrt()                        |
++--------------------------------+
+| csqrtf()                       |
++--------------------------------+
+| csqrtl()                       |
++--------------------------------+
+| ctan()                         |
++--------------------------------+
+| ctanf()                        |
++--------------------------------+
+| ctanh()                        |
++--------------------------------+
+| ctanhf()                       |
++--------------------------------+
+| ctanhl()                       |
++--------------------------------+
+| ctanl()                        |
++--------------------------------+
+| erf()                          |
++--------------------------------+
+| erfc()                         |
++--------------------------------+
+| erfcf()                        |
++--------------------------------+
+| erfcl()                        |
++--------------------------------+
+| erff()                         |
++--------------------------------+
+| erfl()                         |
++--------------------------------+
+| exp()                          |
++--------------------------------+
+| exp2()                         |
++--------------------------------+
+| exp2f()                        |
++--------------------------------+
+| exp2l()                        |
++--------------------------------+
+| expf()                         |
++--------------------------------+
+| expl()                         |
++--------------------------------+
+| expm1()                        |
++--------------------------------+
+| expm1f()                       |
++--------------------------------+
+| expm1l()                       |
++--------------------------------+
+| fabs()                         |
++--------------------------------+
+| fabsf()                        |
++--------------------------------+
+| fabsl()                        |
++--------------------------------+
+| fdim()                         |
++--------------------------------+
+| fdimf()                        |
++--------------------------------+
+| fdiml()                        |
++--------------------------------+
+| floor()                        |
++--------------------------------+
+| floorf()                       |
++--------------------------------+
+| floorl()                       |
++--------------------------------+
+| fma()                          |
++--------------------------------+
+| fmaf()                         |
++--------------------------------+
+| fmal()                         |
++--------------------------------+
+| fmax()                         |
++--------------------------------+
+| fmaxf()                        |
++--------------------------------+
+| fmaxl()                        |
++--------------------------------+
+| fmin()                         |
++--------------------------------+
+| fminf()                        |
++--------------------------------+
+| fminl()                        |
++--------------------------------+
+| fmod()                         |
++--------------------------------+
+| fmodf()                        |
++--------------------------------+
+| fmodl()                        |
++--------------------------------+
+| fpclassify()                   |
++--------------------------------+
+| frexp()                        |
++--------------------------------+
+| frexpf()                       |
++--------------------------------+
+| frexpl()                       |
++--------------------------------+
+| hypot()                        |
++--------------------------------+
+| hypotf()                       |
++--------------------------------+
+| hypotl()                       |
++--------------------------------+
+| ilogb()                        |
++--------------------------------+
+| ilogbf()                       |
++--------------------------------+
+| ilogbl()                       |
++--------------------------------+
+| isfinite()                     |
++--------------------------------+
+| isgreater()                    |
++--------------------------------+
+| isgreaterequal()               |
++--------------------------------+
+| isinf()                        |
++--------------------------------+
+| isless()                       |
++--------------------------------+
+| islessequal()                  |
++--------------------------------+
+| islessgreater()                |
++--------------------------------+
+| isnan()                        |
++--------------------------------+
+| isnormal()                     |
++--------------------------------+
+| isunordered()                  |
++--------------------------------+
+| ldexp()                        |
++--------------------------------+
+| ldexpf()                       |
++--------------------------------+
+| ldexpl()                       |
++--------------------------------+
+| lgamma()                       |
++--------------------------------+
+| lgammaf()                      |
++--------------------------------+
+| lgammal()                      |
++--------------------------------+
+| llrint()                       |
++--------------------------------+
+| llrintf()                      |
++--------------------------------+
+| llrintl()                      |
++--------------------------------+
+| llround()                      |
++--------------------------------+
+| llroundf()                     |
++--------------------------------+
+| llroundl()                     |
++--------------------------------+
+| log()                          |
++--------------------------------+
+| log10()                        |
++--------------------------------+
+| log10f()                       |
++--------------------------------+
+| log10l()                       |
++--------------------------------+
+| log1p()                        |
++--------------------------------+
+| log1pf()                       |
++--------------------------------+
+| log1pl()                       |
++--------------------------------+
+| log2()                         |
++--------------------------------+
+| log2f()                        |
++--------------------------------+
+| log2l()                        |
++--------------------------------+
+| logb()                         |
++--------------------------------+
+| logbf()                        |
++--------------------------------+
+| logbl()                        |
++--------------------------------+
+| logf()                         |
++--------------------------------+
+| logl()                         |
++--------------------------------+
+| lrint()                        |
++--------------------------------+
+| lrintf()                       |
++--------------------------------+
+| lrintl()                       |
++--------------------------------+
+| lround()                       |
++--------------------------------+
+| lroundf()                      |
++--------------------------------+
+| lroundl()                      |
++--------------------------------+
+| modf()                         |
++--------------------------------+
+| modff()                        |
++--------------------------------+
+| modfl()                        |
++--------------------------------+
+| nan()                          |
++--------------------------------+
+| nanf()                         |
++--------------------------------+
+| nanl()                         |
++--------------------------------+
+| nearbyint()                    |
++--------------------------------+
+| nearbyintf()                   |
++--------------------------------+
+| nearbyintl()                   |
++--------------------------------+
+| nextafter()                    |
++--------------------------------+
+| nextafterf()                   |
++--------------------------------+
+| nextafterl()                   |
++--------------------------------+
+| nexttoward()                   |
++--------------------------------+
+| nexttowardf()                  |
++--------------------------------+
+| nexttowardl()                  |
++--------------------------------+
+| pow()                          |
++--------------------------------+
+| powf()                         |
++--------------------------------+
+| powl()                         |
++--------------------------------+
+| remainder()                    |
++--------------------------------+
+| remainderf()                   |
++--------------------------------+
+| remainderl()                   |
++--------------------------------+
+| remquo()                       |
++--------------------------------+
+| remquof()                      |
++--------------------------------+
+| remquol()                      |
++--------------------------------+
+| rint()                         |
++--------------------------------+
+| rintf()                        |
++--------------------------------+
+| rintl()                        |
++--------------------------------+
+| round()                        |
++--------------------------------+
+| roundf()                       |
++--------------------------------+
+| roundl()                       |
++--------------------------------+
+| scalbln()                      |
++--------------------------------+
+| scalblnf()                     |
++--------------------------------+
+| scalblnl()                     |
++--------------------------------+
+| scalbn()                       |
++--------------------------------+
+| scalbnf()                      |
++--------------------------------+
+| scalbnl()                      |
++--------------------------------+
+| signbit()                      |
++--------------------------------+
+| sin()                          |
++--------------------------------+
+| sinf()                         |
++--------------------------------+
+| sinh()                         |
++--------------------------------+
+| sinhf()                        |
++--------------------------------+
+| sinhl()                        |
++--------------------------------+
+| sinl()                         |
++--------------------------------+
+| sqrt()                         |
++--------------------------------+
+| sqrtf()                        |
++--------------------------------+
+| sqrtl()                        |
++--------------------------------+
+| tan()                          |
++--------------------------------+
+| tanf()                         |
++--------------------------------+
+| tanh()                         |
++--------------------------------+
+| tanhf()                        |
++--------------------------------+
+| tanhl()                        |
++--------------------------------+
+| tanl()                         |
++--------------------------------+
+| tgamma()                       |
++--------------------------------+
+| tgammaf()                      |
++--------------------------------+
+| tgammal()                      |
++--------------------------------+
+| trunc()                        |
++--------------------------------+
+| truncf()                       |
++--------------------------------+
+| truncl()                       |
++--------------------------------+
+
+.. [#fn11] NuttX supports different ``libm`` implementations with different
+           sets of supported functions. ``libm`` support in NuttX is controlled
+           by Kconfig choice option.
+
+POSIX_FD_MGMT
+-------------
+
+File Descriptor Management:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`dup`                  | Yes     |
++--------------------------------+---------+
+| :c:func:`dup2`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`dup3`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`fcntl`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fgetpos`              | Yes     |
++--------------------------------+---------+
+| :c:func:`fseek`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fseeko`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fsetpos`              | Yes     |
++--------------------------------+---------+
+| :c:func:`ftell`                | Yes     |
++--------------------------------+---------+
+| :c:func:`ftello`               | Yes     |
++--------------------------------+---------+
+| :c:func:`ftruncate`            | Yes     |
++--------------------------------+---------+
+| :c:func:`lseek`                | Yes     |
++--------------------------------+---------+
+| :c:func:`rewind`               | Yes     |
++--------------------------------+---------+
+
+POSIX_FILE_SYSTEM
+-----------------
+
+File System:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`access`               | Yes     |
++--------------------------------+---------+
+| :c:func:`chdir`                | Yes     |
++--------------------------------+---------+
+| :c:func:`closedir`             | Yes     |
++--------------------------------+---------+
+| :c:func:`creat`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fchdir`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fpathconf`            | Yes     |
++--------------------------------+---------+
+| :c:func:`fstat`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fstatvfs`             | Yes     |
++--------------------------------+---------+
+| :c:func:`futimens`             | Yes     |
++--------------------------------+---------+
+| :c:func:`getcwd`               | Yes     |
++--------------------------------+---------+
+| :c:func:`link`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`mkdir`                | Yes     |
++--------------------------------+---------+
+| :c:func:`mkostemp`             | Yes     |
++--------------------------------+---------+
+| :c:func:`mkstemp`              | Yes     |
++--------------------------------+---------+
+| :c:func:`opendir`              | Yes     |
++--------------------------------+---------+
+| :c:func:`pathconf`             | Yes     |
++--------------------------------+---------+
+| posix_getdents()               | No      |
++--------------------------------+---------+
+| :c:func:`readdir`              | Yes     |
++--------------------------------+---------+
+| :c:func:`remove`               | Yes     |
++--------------------------------+---------+
+| :c:func:`rename`               | Yes     |
++--------------------------------+---------+
+| :c:func:`rewinddir`            | Yes     |
++--------------------------------+---------+
+| :c:func:`rmdir`                | Yes     |
++--------------------------------+---------+
+| :c:func:`stat`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`statvfs`              | Yes     |
++--------------------------------+---------+
+| :c:func:`tmpfile`              | Yes     |
++--------------------------------+---------+
+| :c:func:`tmpnam`               | Yes     |
++--------------------------------+---------+
+| :c:func:`truncate`             | Yes     |
++--------------------------------+---------+
+| :c:func:`unlink`               | Yes     |
++--------------------------------+---------+
+
+POSIX_MULTI_PROCESS
+-------------------
+
+Multiple Processes:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`_Exit`                | Yes     |
++--------------------------------+---------+
+| _Fork()                        | No      |
++--------------------------------+---------+
+| :c:func:`_exit`                | Yes     |
++--------------------------------+---------+
+| :c:func:`assert`               | Yes     |
++--------------------------------+---------+
+| :c:func:`at_quick_exit`        | Yes     |
++--------------------------------+---------+
+| :c:func:`atexit`               | Yes     |
++--------------------------------+---------+
+| :c:func:`clock`                | Yes     |
++--------------------------------+---------+
+| :c:func:`execl`                | Yes     |
++--------------------------------+---------+
+| :c:func:`execle`               | Yes     |
++--------------------------------+---------+
+| :c:func:`execlp`               | Yes     |
++--------------------------------+---------+
+| :c:func:`execv`                | Yes     |
++--------------------------------+---------+
+| :c:func:`execve`               | Yes     |
++--------------------------------+---------+
+| :c:func:`execvp`               | Yes     |
++--------------------------------+---------+
+| :c:func:`exit`                 | Yes     |
++--------------------------------+---------+
+| fork()                         | No      |
++--------------------------------+---------+
+| :c:func:`getpgrp`              | Yes     |
++--------------------------------+---------+
+| :c:func:`getpgid`              | Yes     |
++--------------------------------+---------+
+| :c:func:`getpid`               | Yes     |
++--------------------------------+---------+
+| :c:func:`getppid`              | Yes     |
++--------------------------------+---------+
+| :c:func:`getrlimit`            | Yes     |
++--------------------------------+---------+
+| getsid()                       | No      |
++--------------------------------+---------+
+| :c:func:`quick_exit`           | Yes     |
++--------------------------------+---------+
+| :c:func:`setrlimit`            | Yes     |
++--------------------------------+---------+
+| setsid()                       | No      |
++--------------------------------+---------+
+| :c:func:`sleep`                | Yes     |
++--------------------------------+---------+
+| :c:func:`times`                | Yes     |
++--------------------------------+---------+
+| :c:func:`wait`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`waitid`               | Yes     |
++--------------------------------+---------+
+| :c:func:`waitpid`              | Yes     |
++--------------------------------+---------+
+
+POSIX_NETWORKING
+----------------
+
+Networking:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`accept`               | Yes     |
++--------------------------------+---------+
+| :c:func:`accept4`              | Yes     |
++--------------------------------+---------+
+| :c:func:`be16toh`              | Yes     |
++--------------------------------+---------+
+| :c:func:`be32toh`              | Yes     |
++--------------------------------+---------+
+| :c:func:`be64toh`              | Yes     |
++--------------------------------+---------+
+| :c:func:`bind`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`connect`              | Yes     |
++--------------------------------+---------+
+| :c:func:`endhostent`           | Yes     |
++--------------------------------+---------+
+| :c:func:`endnetent`            | Yes     |
++--------------------------------+---------+
+| :c:func:`endprotoent`          | Yes     |
++--------------------------------+---------+
+| :c:func:`endservent`           | Yes     |
++--------------------------------+---------+
+| :c:func:`freeaddrinfo`         | Yes     |
++--------------------------------+---------+
+| :c:func:`gai_strerror`         | Yes     |
++--------------------------------+---------+
+| :c:func:`getaddrinfo`          | Yes     |
++--------------------------------+---------+
+| :c:func:`gethostent`           | Yes     |
++--------------------------------+---------+
+| :c:func:`gethostname`          | Yes     |
++--------------------------------+---------+
+| :c:func:`getnameinfo`          | Yes     |
++--------------------------------+---------+
+| :c:func:`getnetbyaddr`         | Yes     |
++--------------------------------+---------+
+| :c:func:`getnetbyname`         | Yes     |
++--------------------------------+---------+
+| :c:func:`getnetent`            | Yes     |
++--------------------------------+---------+
+| :c:func:`getpeername`          | Yes     |
++--------------------------------+---------+
+| :c:func:`getprotobyname`       | Yes     |
++--------------------------------+---------+
+| :c:func:`getprotobynumber`     | Yes     |
++--------------------------------+---------+
+| :c:func:`getprotoent`          | Yes     |
++--------------------------------+---------+
+| :c:func:`getservbyname`        | Yes     |
++--------------------------------+---------+
+| :c:func:`getservbyport`        | Yes     |
++--------------------------------+---------+
+| :c:func:`getservent`           | Yes     |
++--------------------------------+---------+
+| :c:func:`getsockname`          | Yes     |
++--------------------------------+---------+
+| :c:func:`getsockopt`           | Yes     |
++--------------------------------+---------+
+| :c:func:`htobe16`              | Yes     |
++--------------------------------+---------+
+| :c:func:`htobe32`              | Yes     |
++--------------------------------+---------+
+| :c:func:`htobe64`              | Yes     |
++--------------------------------+---------+
+| :c:func:`htole16`              | Yes     |
++--------------------------------+---------+
+| :c:func:`htole32`              | Yes     |
++--------------------------------+---------+
+| :c:func:`htole64`              | Yes     |
++--------------------------------+---------+
+| :c:func:`htonl`                | Yes     |
++--------------------------------+---------+
+| :c:func:`htons`                | Yes     |
++--------------------------------+---------+
+| :c:func:`if_freenameindex`     | Yes     |
++--------------------------------+---------+
+| :c:func:`if_indextoname`       | Yes     |
++--------------------------------+---------+
+| :c:func:`if_nameindex`         | Yes     |
++--------------------------------+---------+
+| :c:func:`if_nametoindex`       | Yes     |
++--------------------------------+---------+
+| :c:func:`inet_addr`            | Yes     |
++--------------------------------+---------+
+| :c:func:`inet_ntoa`            | Yes     |
++--------------------------------+---------+
+| :c:func:`inet_ntop`            | Yes     |
++--------------------------------+---------+
+| :c:func:`inet_pton`            | Yes     |
++--------------------------------+---------+
+| :c:func:`le16toh`              | Yes     |
++--------------------------------+---------+
+| :c:func:`le32toh`              | Yes     |
++--------------------------------+---------+
+| :c:func:`le64toh`              | Yes     |
++--------------------------------+---------+
+| :c:func:`listen`               | Yes     |
++--------------------------------+---------+
+| :c:func:`ntohl`                | Yes     |
++--------------------------------+---------+
+| :c:func:`ntohs`                | Yes     |
++--------------------------------+---------+
+| :c:func:`recv`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`recvfrom`             | Yes     |
++--------------------------------+---------+
+| :c:func:`recvmsg`              | Yes     |
++--------------------------------+---------+
+| :c:func:`send`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`sendmsg`              | Yes     |
++--------------------------------+---------+
+| :c:func:`sendto`               | Yes     |
++--------------------------------+---------+
+| :c:func:`sethostent`           | Yes     |
++--------------------------------+---------+
+| :c:func:`setnetent`            | Yes     |
++--------------------------------+---------+
+| :c:func:`setprotoent`          | Yes     |
++--------------------------------+---------+
+| :c:func:`setservent`           | Yes     |
++--------------------------------+---------+
+| :c:func:`setsockopt`           | Yes     |
++--------------------------------+---------+
+| :c:func:`shutdown`             | Yes     |
++--------------------------------+---------+
+| :c:func:`socket`               | Yes     |
++--------------------------------+---------+
+| :c:func:`sockatmark`           | Yes     |
++--------------------------------+---------+
+| :c:func:`socketpair`           | Yes     |
++--------------------------------+---------+
+
+POSIX_PIPE
+----------
+
+Pipe:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`pipe`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`pipe2`                | Yes     |
++--------------------------------+---------+
+
+POSIX_SIGNAL_JUMP
+-----------------
+
+Signal Jump Functions:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| siglongjmp()                   | No      |
++--------------------------------+---------+
+| sigsetjmp()                    | No      |
++--------------------------------+---------+
+
+POSIX_C_LANG_WIDE_CHAR
+----------------------
+
+Wide-Character ISO C Library:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| btowc()                        | Yes     |
++--------------------------------+---------+
+| iswalnum()                     | Yes     |
++--------------------------------+---------+
+| iswalpha()                     | Yes     |
++--------------------------------+---------+
+| iswblank()                     | Yes     |
++--------------------------------+---------+
+| iswcntrl()                     | Yes     |
++--------------------------------+---------+
+| iswctype()                     | Yes     |
++--------------------------------+---------+
+| iswdigit()                     | Yes     |
++--------------------------------+---------+
+| iswgraph()                     | Yes     |
++--------------------------------+---------+
+| iswlower()                     | Yes     |
++--------------------------------+---------+
+| iswprint()                     | Yes     |
++--------------------------------+---------+
+| iswpunct()                     | Yes     |
++--------------------------------+---------+
+| iswspace()                     | Yes     |
++--------------------------------+---------+
+| iswupper()                     | Yes     |
++--------------------------------+---------+
+| iswxdigit()                    | Yes     |
++--------------------------------+---------+
+| mblen()                        | Yes     |
++--------------------------------+---------+
+| mbrlen()                       | Yes     |
++--------------------------------+---------+
+| mbrtowc()                      | Yes     |
++--------------------------------+---------+
+| mbsinit()                      | Yes     |
++--------------------------------+---------+
+| mbsrtowcs()                    | Yes     |
++--------------------------------+---------+
+| mbstowcs()                     | Yes     |
++--------------------------------+---------+
+| mbtowc()                       | Yes     |
++--------------------------------+---------+
+| swprintf()                     | Yes     |
++--------------------------------+---------+
+| swscanf()                      | Yes     |
++--------------------------------+---------+
+| towctrans()                    | Yes     |
++--------------------------------+---------+
+| towlower()                     | Yes     |
++--------------------------------+---------+
+| towupper()                     | Yes     |
++--------------------------------+---------+
+| vswprintf()                    | Yes     |
++--------------------------------+---------+
+| vswscanf()                     | Yes     |
++--------------------------------+---------+
+| wcrtomb()                      | Yes     |
++--------------------------------+---------+
+| wcscat()                       | Yes     |
++--------------------------------+---------+
+| wcschr()                       | Yes     |
++--------------------------------+---------+
+| wcscmp()                       | Yes     |
++--------------------------------+---------+
+| wcscoll()                      | Yes     |
++--------------------------------+---------+
+| wcscpy()                       | Yes     |
++--------------------------------+---------+
+| wcscspn()                      | Yes     |
++--------------------------------+---------+
+| wcsftime()                     | Yes     |
++--------------------------------+---------+
+| wcslen()                       | Yes     |
++--------------------------------+---------+
+| wcsncat()                      | Yes     |
++--------------------------------+---------+
+| wcsncmp()                      | Yes     |
++--------------------------------+---------+
+| wcsncpy()                      | Yes     |
++--------------------------------+---------+
+| wcspbrk()                      | Yes     |
++--------------------------------+---------+
+| wcsrchr()                      | Yes     |
++--------------------------------+---------+
+| wcsrtombs()                    | Yes     |
++--------------------------------+---------+
+| wcsspn()                       | Yes     |
++--------------------------------+---------+
+| wcsstr()                       | Yes     |
++--------------------------------+---------+
+| wcstod()                       | Yes     |
++--------------------------------+---------+
+| wcstof()                       | Yes     |
++--------------------------------+---------+
+| wcstoimax()                    | Yes     |
++--------------------------------+---------+
+| wcstok()                       | Yes     |
++--------------------------------+---------+
+| wcstol()                       | Yes     |
++--------------------------------+---------+
+| wcstold()                      | Yes     |
++--------------------------------+---------+
+| wcstoll()                      | Yes     |
++--------------------------------+---------+
+| wcstombs()                     | Yes     |
++--------------------------------+---------+
+| wcstoul()                      | Yes     |
++--------------------------------+---------+
+| wcstoull()                     | Yes     |
++--------------------------------+---------+
+| wcstoumax()                    | Yes     |
++--------------------------------+---------+
+| wcsxfrm()                      | Yes     |
++--------------------------------+---------+
+| wctob()                        | Yes     |
++--------------------------------+---------+
+| wctomb()                       | Yes     |
++--------------------------------+---------+
+| wctrans()                      | Yes     |
++--------------------------------+---------+
+| wctype()                       | Yes     |
++--------------------------------+---------+
+| wmemchr()                      | Yes     |
++--------------------------------+---------+
+| wmemcmp()                      | Yes     |
++--------------------------------+---------+
+| wmemcpy()                      | Yes     |
++--------------------------------+---------+
+| wmemmove()                     | Yes     |
++--------------------------------+---------+
+| wmemset()                      | Yes     |
++--------------------------------+---------+
+
+POSIX_DEVICE_SPECIFIC
+---------------------
+
+General Terminal:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`cfgetispeed`          | Yes     |
++--------------------------------+---------+
+| :c:func:`cfgetospeed`          | Yes     |
++--------------------------------+---------+
+| :c:func:`cfsetispeed`          | Yes     |
++--------------------------------+---------+
+| :c:func:`cfsetospeed`          | Yes     |
++--------------------------------+---------+
+| ctermid()                      | No      |
++--------------------------------+---------+
+| :c:func:`isatty`               | Yes     |
++--------------------------------+---------+
+| :c:func:`tcdrain`              | Yes     |
++--------------------------------+---------+
+| :c:func:`tcflow`               | Yes     |
++--------------------------------+---------+
+| :c:func:`tcflush`              | Yes     |
++--------------------------------+---------+
+| :c:func:`tcgetattr`            | Yes     |
++--------------------------------+---------+
+| tcgetwinsize()                 | No      |
++--------------------------------+---------+
+| :c:func:`tcsendbreak`          | Yes     |
++--------------------------------+---------+
+| :c:func:`tcsetattr`            | Yes     |
++--------------------------------+---------+
+| tcsetwinsize()                 | No      |
++--------------------------------+---------+
+| :c:func:`ttyname`              | Yes     |
++--------------------------------+---------+
+
+POSIX_FIFO
+----------
+
+FIFO:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`mkfifo`               | Yes     |
++--------------------------------+---------+
+
+POSIX_FILE_ATTRIBUTES
+---------------------
+
+File Attributes:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`chmod`                | Yes     |
++--------------------------------+---------+
+| :c:func:`chown`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fchmod`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fchown`               | Yes     |
++--------------------------------+---------+
+| :c:func:`umask`                | Yes     |
++--------------------------------+---------+
+
+POSIX_FILE_SYSTEM_EXT
+---------------------
+
+File System Extensions:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`alphasort`            | Yes     |
++--------------------------------+---------+
+| :c:func:`dirfd`                | Yes     |
++--------------------------------+---------+
+| :c:func:`getdelim`             | Yes     |
++--------------------------------+---------+
+| :c:func:`getline`              | Yes     |
++--------------------------------+---------+
+| :c:func:`mkdtemp`              | Yes     |
++--------------------------------+---------+
+| :c:func:`scandir`              | Yes     |
++--------------------------------+---------+
+
+POSIX_JOB_CONTROL
+-----------------
+
+Job Control:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| setpgid()                      | No      |
++--------------------------------+---------+
+| tcgetpgrp()                    | No      |
++--------------------------------+---------+
+| tcsetpgrp()                    | No      |
++--------------------------------+---------+
+| :c:func:`tcgetsid`             | Yes     |
++--------------------------------+---------+
+
+POSIX_REGEXP
+------------
+
+Regular Expressions:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`regcomp`              | Yes     |
++--------------------------------+---------+
+| :c:func:`regerror`             | Yes     |
++--------------------------------+---------+
+| :c:func:`regexec`              | Yes     |
++--------------------------------+---------+
+| :c:func:`regfree`              | Yes     |
++--------------------------------+---------+
+
+POSIX_SHELL_FUNC
+----------------
+
+Shell and Utilities:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`pclose`               | Yes     |
++--------------------------------+---------+
+| :c:func:`popen`                | Yes     |
++--------------------------------+---------+
+| :c:func:`system`               | Yes     |
++--------------------------------+---------+
+| wordexp()                      | No      |
++--------------------------------+---------+
+| wordfree()                     | No      |
++--------------------------------+---------+
+
+POSIX_STRING_MATCHING
+---------------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`fnmatch`              | Yes     |
++--------------------------------+---------+
+| :c:func:`getopt`               | Yes     |
++--------------------------------+---------+
+| optarg                         | Yes     |
++--------------------------------+---------+
+| optind                         | Yes     |
++--------------------------------+---------+
+| opterr                         | Yes     |
++--------------------------------+---------+
+| optopt                         | Yes     |
++--------------------------------+---------+
+
+POSIX_SYMBOLIC_LINKS
+--------------------
+
+Symbolic Links:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`lchown`               | Yes     |
++--------------------------------+---------+
+| :c:func:`lstat`                | Yes     |
++--------------------------------+---------+
+| :c:func:`readlink`             | Yes     |
++--------------------------------+---------+
+| :c:func:`realpath`             | Yes     |
++--------------------------------+---------+
+| :c:func:`symlink`              | Yes     |
++--------------------------------+---------+
+
+POSIX_SYSTEM_DATABASE
+---------------------
+
+System Database:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`getgrgid`             | Yes     |
++--------------------------------+---------+
+| :c:func:`getgrnam`             | Yes     |
++--------------------------------+---------+
+| :c:func:`getpwnam`             | Yes     |
++--------------------------------+---------+
+| :c:func:`getpwuid`             | Yes     |
++--------------------------------+---------+
+
+POSIX_USER_GROUPS
+-----------------
+
+User and Group:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`getegid`              | Yes     |
++--------------------------------+---------+
+| :c:func:`geteuid`              | Yes     |
++--------------------------------+---------+
+| :c:func:`getgid`               | Yes     |
++--------------------------------+---------+
+| getgroups()                    | No      |
++--------------------------------+---------+
+| getlogin()                     | No      |
++--------------------------------+---------+
+| :c:func:`getuid`               | Yes     |
++--------------------------------+---------+
+| :c:func:`setegid`              | Yes     |
++--------------------------------+---------+
+| :c:func:`seteuid`              | Yes     |
++--------------------------------+---------+
+| :c:func:`setgid`               | Yes     |
++--------------------------------+---------+
+| :c:func:`setuid`               | Yes     |
++--------------------------------+---------+
+
+POSIX_WIDE_CHAR_DEVICE_IO
+-------------------------
+
+Device Input and Output:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`fgetwc`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fgetws`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fputwc`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fputws`               | Yes     |
++--------------------------------+---------+
+| :c:func:`fwide`                | Yes     |
++--------------------------------+---------+
+| :c:func:`fwprintf`             | Yes     |
++--------------------------------+---------+
+| :c:func:`fwscanf`              | Yes     |
++--------------------------------+---------+
+| :c:func:`getwc`                | Yes     |
++--------------------------------+---------+
+| :c:func:`getwchar`             | Yes     |
++--------------------------------+---------+
+| open_wmemstream()              | No      |
++--------------------------------+---------+
+| :c:func:`putwc`                | Yes     |
++--------------------------------+---------+
+| :c:func:`putwchar`             | Yes     |
++--------------------------------+---------+
+| :c:func:`ungetwc`              | Yes     |
++--------------------------------+---------+
+| :c:func:`vfwprintf`            | Yes     |
++--------------------------------+---------+
+| :c:func:`vfwscanf`             | Yes     |
++--------------------------------+---------+
+| :c:func:`vwprintf`             | Yes     |
++--------------------------------+---------+
+| :c:func:`vwscanf`              | Yes     |
++--------------------------------+---------+
+| :c:func:`wprintf`              | Yes     |
++--------------------------------+---------+
+| :c:func:`wscanf`               | Yes     |
++--------------------------------+---------+
+
+XSI_C_LANG_SUPPORT
+------------------
+
+XSI General C Library:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| a64l()                         | No      |
++--------------------------------+---------+
+| daylight                       | No      |
++--------------------------------+---------+
+| :c:func:`drand48`              | Yes     |
++--------------------------------+---------+
+| :c:func:`erand48`              | Yes     |
++--------------------------------+---------+
+| :c:func:`ffs`                  | Yes     |
++--------------------------------+---------+
+| :c:func:`ffsl`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`ffsll`                | Yes     |
++--------------------------------+---------+
+| getdate()                      | No      |
++--------------------------------+---------+
+| :c:func:`hcreate`              | Yes     |
++--------------------------------+---------+
+| :c:func:`hdestroy`             | Yes     |
++--------------------------------+---------+
+| :c:func:`hsearch`              | Yes     |
++--------------------------------+---------+
+| initstate()                    | No      |
++--------------------------------+---------+
+| insque()                       | No      |
++--------------------------------+---------+
+| :c:func:`jrand48`              | Yes     |
++--------------------------------+---------+
+| l64a()                         | No      |
++--------------------------------+---------+
+| :c:func:`lcong48`              | Yes     |
++--------------------------------+---------+
+| lfind()                        | No      |
++--------------------------------+---------+
+| :c:func:`lrand48`              | Yes     |
++--------------------------------+---------+
+| lsearch()                      | No      |
++--------------------------------+---------+
+| :c:func:`memccpy`              | Yes     |
++--------------------------------+---------+
+| :c:func:`mrand48`              | Yes     |
++--------------------------------+---------+
+| :c:func:`nrand48`              | Yes     |
++--------------------------------+---------+
+| :c:func:`random`               | Yes     |
++--------------------------------+---------+
+| remque()                       | No      |
++--------------------------------+---------+
+| :c:func:`seed48`               | Yes     |
++--------------------------------+---------+
+| setstate()                     | No      |
++--------------------------------+---------+
+| signgam                        | No      |
++--------------------------------+---------+
+| :c:func:`srand48`              | Yes     |
++--------------------------------+---------+
+| :c:func:`srandom`              | Yes     |
++--------------------------------+---------+
+| :c:func:`strptime`             | Yes     |
++--------------------------------+---------+
+| :c:func:`swab`                 | Yes     |
++--------------------------------+---------+
+| tdelete()                      | No      |
++--------------------------------+---------+
+| tfind()                        | No      |
++--------------------------------+---------+
+| timezone                       | No      |
++--------------------------------+---------+
+| tsearch()                      | No      |
++--------------------------------+---------+
+| twalk()                        | No      |
++--------------------------------+---------+
+
+XSI_DBM
+-------
+
+XSI Database Management:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| dbm_clearerr()                 | No      |
++--------------------------------+---------+
+| dbm_close()                    | No      |
++--------------------------------+---------+
+| dbm_delete()                   | No      |
++--------------------------------+---------+
+| dbm_error()                    | No      |
++--------------------------------+---------+
+| dbm_fetch()                    | No      |
++--------------------------------+---------+
+| dbm_firstkey()                 | No      |
++--------------------------------+---------+
+| dbm_nextkey()                  | No      |
++--------------------------------+---------+
+| dbm_open()                     | No      |
++--------------------------------+---------+
+| dbm_store()                    | No      |
++--------------------------------+---------+
+
+XSI_DEVICE_IO
+-------------
+
+XSI Device Input and Output:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`fmtmsg`               | Yes     |
++--------------------------------+---------+
+| :c:func:`readv`                | Yes     |
++--------------------------------+---------+
+| :c:func:`writev`               | Yes     |
++--------------------------------+---------+
+
+XSI_DEVICE_SPECIFIC
+-------------------
+
+XSI General Terminal:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`grantpt`              | Yes     |
++--------------------------------+---------+
+| :c:func:`posix_openpt`         | Yes     |
++--------------------------------+---------+
+| :c:func:`ptsname`              | Yes     |
++--------------------------------+---------+
+| :c:func:`unlockpt`             | Yes     |
++--------------------------------+---------+
+
+XSI_DYNAMIC_LINKING
+-------------------
+
+Dynamic Linking:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`dladdr`               | Yes     |
++--------------------------------+---------+
+| :c:func:`dlclose`              | Yes     |
++--------------------------------+---------+
+| :c:func:`dlerror`              | Yes     |
++--------------------------------+---------+
+| :c:func:`dlopen`               | Yes     |
++--------------------------------+---------+
+| :c:func:`dlsym`                | Yes     |
++--------------------------------+---------+
+
+XSI_FD_MGMT
+-----------
+
+XSI File Descriptor Management:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`truncate`             | Yes     |
++--------------------------------+---------+
+
+XSI_FILE_SYSTEM
+---------------
+
+XSI File System:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`basename`             | Yes     |
++--------------------------------+---------+
+| :c:func:`dirname`              | Yes     |
++--------------------------------+---------+
+| :c:func:`lockf`                | Yes     |
++--------------------------------+---------+
+| :c:func:`mknod`                | Yes     |
++--------------------------------+---------+
+| :c:func:`nftw`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`seekdir`              | Yes     |
++--------------------------------+---------+
+| :c:func:`sync`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`telldir`              | Yes     |
++--------------------------------+---------+
+| :c:func:`utimes`               | Yes     |
++--------------------------------+---------+
+
+XSI_I18N
+--------
+
+XSI Internationalization:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`catclose`             | Yes     |
++--------------------------------+---------+
+| :c:func:`catgets`              | Yes     |
++--------------------------------+---------+
+| :c:func:`catopen`              | Yes     |
++--------------------------------+---------+
+| :c:func:`nl_langinfo`          | Yes     |
++--------------------------------+---------+
+
+XSI_IPC
+-------
+
+XSI Interprocess Communication:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`ftok`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`msgctl`               | Yes     |
++--------------------------------+---------+
+| :c:func:`msgget`               | Yes     |
++--------------------------------+---------+
+| :c:func:`msgrcv`               | Yes     |
++--------------------------------+---------+
+| :c:func:`msgsnd`               | Yes     |
++--------------------------------+---------+
+| :c:func:`semctl`               | No      |
++--------------------------------+---------+
+| :c:func:`semget`               | No      |
++--------------------------------+---------+
+| :c:func:`semop`                | No      |
++--------------------------------+---------+
+| :c:func:`shmat`                | Yes     |
++--------------------------------+---------+
+| :c:func:`shmctl`               | Yes     |
++--------------------------------+---------+
+| :c:func:`shmdt`                | Yes     |
++--------------------------------+---------+
+| :c:func:`shmget`               | Yes     |
++--------------------------------+---------+
+
+XSI_JOB_CONTROL
+---------------
+
+XSI Job Control:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`tcgetsid`             | Yes     |
++--------------------------------+---------+
+
+XSI_JUMP
+--------
+
+XSI Jump Functions:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`_longjmp`             | Yes     |
++--------------------------------+---------+
+| :c:func:`_setjmp`              | Yes     |
++--------------------------------+---------+
+
+XSI_MATH
+--------
+
+Depends on the enabled ``libm`` implementation [#fn12]_.
+
+XSI Maths Library:
+
++--------------------------------+
+| API                            |
++================================+
+| j0()                           |
++--------------------------------+
+| j1()                           |
++--------------------------------+
+| jn()                           |
++--------------------------------+
+| scalb()                        |
++--------------------------------+
+| y0()                           |
++--------------------------------+
+| y1()                           |
++--------------------------------+
+| yn()                           |
++--------------------------------+
+
+.. [#fn12] NuttX supports different ``libm`` implementations with different
+           sets of supported functions. ``libm`` support in NuttX is controlled
+           by Kconfig choice option.
+
+XSI_MULTI_PROCESS
+-----------------
+
+XSI Multiple Process:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`getpgid`              | Yes     |
++--------------------------------+---------+
+| :c:func:`getpriority`          | Yes     |
++--------------------------------+---------+
+| :c:func:`getrlimit`            | Yes     |
++--------------------------------+---------+
+| :c:func:`getrusage`            | Yes     |
++--------------------------------+---------+
+| getsid()                       | No      |
++--------------------------------+---------+
+| :c:func:`nice`                 | Yes     |
++--------------------------------+---------+
+| setpgrp()                      | No      |
++--------------------------------+---------+
+| :c:func:`setpriority`          | Yes     |
++--------------------------------+---------+
+| :c:func:`setrlimit`            | Yes     |
++--------------------------------+---------+
+| ulimit()                       | No      |
++--------------------------------+---------+
+| :c:func:`usleep`               | Yes     |
++--------------------------------+---------+
+| :c:func:`vfork`                | Yes     |
++--------------------------------+---------+
+| :c:func:`waitid`               | Yes     |
++--------------------------------+---------+
+
+XSI_SIGNALS
+-----------
+
+XSI Signal:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| bsd_signal()                   | No      |
++--------------------------------+---------+
+| :c:func:`killpg`               | Yes     |
++--------------------------------+---------+
+| :c:func:`sigaltstack`          | Yes     |
++--------------------------------+---------+
+| :c:func:`sighold`              | Yes     |
++--------------------------------+---------+
+| :c:func:`sigignore`            | Yes     |
++--------------------------------+---------+
+| :c:func:`siginterrupt`         | Yes     |
++--------------------------------+---------+
+| :c:func:`sigpause`             | Yes     |
++--------------------------------+---------+
+| :c:func:`sigrelse`             | Yes     |
++--------------------------------+---------+
+| :c:func:`sigset`               | Yes     |
++--------------------------------+---------+
+| ualarm()                       | No      |
++--------------------------------+---------+
+
+XSI_SINGLE_PROCESS
+------------------
+
+XSI Single Process:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| gethostid()                    | No      |
++--------------------------------+---------+
+| :c:func:`gettimeofday`         | Yes     |
++--------------------------------+---------+
+| :c:func:`putenv`               | Yes     |
++--------------------------------+---------+
+
+XSI_SYSTEM_DATABASE
+-------------------
+
+XSI System Database:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`endpwent`             | Yes     |
++--------------------------------+---------+
+| :c:func:`getpwent`             | Yes     |
++--------------------------------+---------+
+| :c:func:`setpwent`             | Yes     |
++--------------------------------+---------+
+
+XSI_SYSTEM_LOGGING
+------------------
+
+XSI System Logging:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`closelog`             | No      |
++--------------------------------+---------+
+| :c:func:`openlog`              | No      |
++--------------------------------+---------+
+| :c:func:`setlogmask`           | Yes     |
++--------------------------------+---------+
+| :c:func:`syslog`               | Yes     |
++--------------------------------+---------+
+
+XSI_THREADS_EXT
+---------------
+
+XSI Threads Extensions:
+
++---------------------------------+---------+
+| API                             | Support |
++=================================+=========+
+| :c:func:`pthread_attr_getstack` | Yes     |
++---------------------------------+---------+
+| :c:func:`pthread_attr_setstack` | Yes     |
++---------------------------------+---------+
+| pthread_getconcurrency()        | No      |
++---------------------------------+---------+
+| pthread_setconcurrency()        | No      |
++---------------------------------+---------+
+
+XSI_TIMERS
+----------
+
+XSI Timers:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`getitimer`            | Yes     |
++--------------------------------+---------+
+| :c:func:`setitimer`            | Yes     |
++--------------------------------+---------+
+
+XSI_USER_GROUPS
+---------------
+
+XSI User and Group:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| endgrent()                     | No      |
++--------------------------------+---------+
+| endutxent()                    | No      |
++--------------------------------+---------+
+| getgrent()                     | No      |
++--------------------------------+---------+
+| getutxent()                    | No      |
++--------------------------------+---------+
+| getutxid()                     | No      |
++--------------------------------+---------+
+| getutxline()                   | No      |
++--------------------------------+---------+
+| pututxline()                   | No      |
++--------------------------------+---------+
+| setgrent()                     | No      |
++--------------------------------+---------+
+| :c:func:`setregid`             | Yes     |
++--------------------------------+---------+
+| :c:func:`setreuid`             | Yes     |
++--------------------------------+---------+
+| setutxent()                    | No      |
++--------------------------------+---------+
+
+
+XSI_WIDE_CHAR
+-------------
+
+XSI Wide-Character Library:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`wcswidth`             | Yes     |
++--------------------------------+---------+
+| :c:func:`wcwidth`              | Yes     |
++--------------------------------+---------+
+
+POSIX.1 Option Requirements
+===========================
+
+_POSIX_CLOCK_SELECTION
+----------------------
+
+Clock Selection:
+
++-------------------------------------+---------+
+| API                                 | Support |
++=====================================+=========+
+| :c:func:`clock_nanosleep`           | Yes     |
++-------------------------------------+---------+
+| :c:func:`pthread_condattr_getclock` | Yes     |
++-------------------------------------+---------+
+| :c:func:`pthread_condattr_setclock` | Yes     |
++-------------------------------------+---------+
+
+_POSIX_FSYNC
+------------
+
+File Synchronization:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`fsync`  [#fn13]_      | Yes     |
++--------------------------------+---------+
+
+.. [#fn13] Revisit: why ``#undef  _POSIX_FSYNC`` in ``unistd.h`` ?
+
+_POSIX_IPV6
+-----------
+
+No functions under this option.
+
+_POSIX_MEMLOCK
+--------------
+
++--------------------------------+----------------+
+| API                            | Support        |
++================================+================+
+| :c:func:`mlockall`             | Dummy [#fn14]_ |
++--------------------------------+----------------+
+| :c:func:`munlockall`           | Dummy [#fn14]_ |
++--------------------------------+----------------+
+
+.. [#fn14] The function returns a success value but doesn't implement
+           the requred functionality.
+
+_POSIX_MEMLOCK_RANGE
+--------------------
+
++--------------------------------+----------------+
+| API                            | Support        |
++================================+================+
+| :c:func:`mlock`                | Dummy [#fn15]_ |
++--------------------------------+----------------+
+| :c:func:`munlock`              | Dummy [#fn15]_ |
++--------------------------------+----------------+
+
+.. [#fn15] The function returns a success value but doesn't implement
+           the requred functionality.
+
+_POSIX_MONOTONIC_CLOCK
+----------------------
+
+No functions under this option.
+
+_POSIX_NO_TRUNC
+---------------
+
+No functions under this option.
+
+_POSIX_REALTIME_SIGNALS
+-----------------------
+
+Realtime Signals:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`sigqueue`             | Yes     |
++--------------------------------+---------+
+| :c:func:`sigtimedwait`         | Yes     |
++--------------------------------+---------+
+| :c:func:`sigwaitinfo`          | Yes     |
++--------------------------------+---------+
+
+_POSIX_SEMAPHORES
+-----------------
+
+Semaphores:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`sem_clockwait`        | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_close`            | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_destroy`          | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_getvalue`         | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_init`             | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_open`             | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_post`             | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_timedwait`        | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_trywait`          | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_unlink`           | Yes     |
++--------------------------------+---------+
+| :c:func:`sem_wait`             | Yes     |
++--------------------------------+---------+
+
+_POSIX_SHARED_MEMORY_OBJECTS
+----------------------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`mmap`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`munmap`               | Yes     |
++--------------------------------+---------+
+| :c:func:`shm_open`             | Yes     |
++--------------------------------+---------+
+| shm_unling()                   | No      |
++--------------------------------+---------+
+
+_POSIX_SYNCHRONIZED_IO
+----------------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`fdatasync`            | Yes     |
++--------------------------------+---------+
+| :c:func:`fsync`                | Yes     |
++--------------------------------+---------+
+| :c:func:`msync`                | Yes     |
++--------------------------------+---------+
+
+_POSIX_THREAD_ATTR_STACKADDR
+----------------------------
+
++---------------------------------------+---------+
+| API                                   | Support |
++=======================================+=========+
+| :c:func:`pthread_attr_getstackaddr`   | Yes     |
++---------------------------------------+---------+
+| :c:func:`pthread_attr_setstackaddr`   | Yes     |
++---------------------------------------+---------+
+
+_POSIX_THREAD_ATTR_STACKSIZE
+----------------------------
+
++---------------------------------------+---------+
+| API                                   | Support |
++=======================================+=========+
+| :c:func:`pthread_attr_getstacksize`   | Yes     |
++---------------------------------------+---------+
+| :c:func:`pthread_attr_setstacksize`   | Yes     |
++---------------------------------------+---------+
+
+_POSIX_THREAD_CPUTIME
+---------------------
+
++-----------------------------------+---------+
+| API                               | Support |
++===================================+=========+
+| CLOCK_THREAD_CPUTIME_ID           | Yes     |
++-----------------------------------+---------+
+| :c:func:`pthread_getcpuclockid`   | Yes     |
++-----------------------------------+---------+
+
+_POSIX_THREAD_PRIO_INHERIT
+--------------------------
+
++-----------------------------------------+---------+
+| API                                     | Support |
++=========================================+=========+
+| :c:func:`pthread_mutexattr_getprotocol` | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_mutexattr_setprotocol` | Yes     |
++-----------------------------------------+---------+
+
+_POSIX_THREAD_PRIO_PROTECT
+--------------------------
+
++-----------------------------------------------+---------+
+| API                                           | Support |
++===============================================+=========+
+| :c:func:`pthread_mutex_getprioceiling`        | Yes     |
++-----------------------------------------------+---------+
+| :c:func:`pthread_mutex_setprioceiling`        | Yes     |
++-----------------------------------------------+---------+
+| :c:func:`pthread_mutexattr_getprioceiling`    | Yes     |
++-----------------------------------------------+---------+
+| :c:func:`pthread_mutexattr_getprotocol`       | Yes     |
++-----------------------------------------------+---------+
+| :c:func:`pthread_mutexattr_setprioceiling`    | Yes     |
++-----------------------------------------------+---------+
+| :c:func:`pthread_mutexattr_setprotocol`       | Yes     |
++-----------------------------------------------+---------+
+
+_POSIX_THREAD_PRIORITY_SCHEDULING
+---------------------------------
+
++-----------------------------------------+---------+
+| API                                     | Support |
++=========================================+=========+
+| :c:func:`pthread_attr_getinheritsched`  | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_getschedpolicy`   | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_getscope`         | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_setinheritsched`  | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_setschedpolicy`   | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_attr_setscope`         | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_getschedparam`         | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_setschedparam`         | Yes     |
++-----------------------------------------+---------+
+| :c:func:`pthread_setschedprio`          | Yes     |
++-----------------------------------------+---------+
+
+_POSIX_THREAD_SPORADIC_SERVER
+-----------------------------
+
+No functions under this option.
+
+_POSIX_TIMEOUTS
+---------------
+
++-------------------------------------------+---------+
+| API                                       | Support |
++===========================================+=========+
+| :c:func:`mq_timedreceive`                 | Yes     |
++-------------------------------------------+---------+
+| :c:func:`mq_timedsend`                    | Yes     |
++-------------------------------------------+---------+
+| :c:func:`pthread_mutex_timedlock`         | Yes     |
++-------------------------------------------+---------+
+| :c:func:`pthread_rwlock_timedrdlock`      | Yes     |
++-------------------------------------------+---------+
+| :c:func:`pthread_rwlock_timedwrlock`      | Yes     |
++-------------------------------------------+---------+
+| :c:func:`sem_timedwait`                   | Yes     |
++-------------------------------------------+---------+
+| posix_trace_timedgetnext_event() [#fn16]_ | No      |
++-------------------------------------------+---------+
+
+.. [#fn16] ``_POSIX_TRACE*`` are obsolete.
+
+_POSIX_TIMERS
+-------------
+
+Depends on ``!CONFIG_DISABLE_POSIX_TIMERS``
+
+Timers:
+
++---------------------------------+---------+
+| API                             | Support |
++=================================+=========+
+| :c:func:`clock_getres`          | Yes     |
++---------------------------------+---------+
+| :c:func:`clock_gettime`         | Yes     |
++---------------------------------+---------+
+| :c:func:`clock_settime`         | Yes     |
++---------------------------------+---------+
+| :c:func:`nanosleep`             | Yes     |
++---------------------------------+---------+
+| :c:func:`timer_create`          | Yes     |
++---------------------------------+---------+
+| :c:func:`timer_delete`          | Yes     |
++---------------------------------+---------+
+| :c:func:`timer_getoverrun`      | Yes     |
++---------------------------------+---------+
+| :c:func:`timer_gettime`         | Yes     |
++---------------------------------+---------+
+| :c:func:`timer_settime`         | Yes     |
++---------------------------------+---------+
+
+_POSIX_MAPPED_FILES
+-------------------
+
+Memory Mapped Files:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`mmap`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`munmap`               | Yes     |
++--------------------------------+---------+
+
+_POSIX_MESSAGE_PASSING
+----------------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`mq_close`             | Yes     |
++--------------------------------+---------+
+| :c:func:`mq_getattr`           | Yes     |
++--------------------------------+---------+
+| :c:func:`mq_notify`            | Yes     |
++--------------------------------+---------+
+| :c:func:`mq_open`              | Yes     |
++--------------------------------+---------+
+| :c:func:`mq_receive`           | Yes     |
++--------------------------------+---------+
+| :c:func:`mq_send`              | Yes     |
++--------------------------------+---------+
+| :c:func:`mq_setattr`           | Yes     |
++--------------------------------+---------+
+| :c:func:`mq_unlink`            | Yes     |
++--------------------------------+---------+
+
+_POSIX_ASYNCHRONOUS_IO
+----------------------
+
+Depends on ``CONFIG_FS_AIO``.
+
+Asynchronous Input and Output Functions:
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`aio_cancel`           | Yes     |
++--------------------------------+---------+
+| :c:func:`aio_error`            | Yes     |
++--------------------------------+---------+
+| :c:func:`aio_fsync`            | Yes     |
++--------------------------------+---------+
+| :c:func:`aio_read`             | Yes     |
++--------------------------------+---------+
+| :c:func:`aio_return`           | Yes     |
++--------------------------------+---------+
+| :c:func:`aio_suspend`          | Yes     |
++--------------------------------+---------+
+| :c:func:`aio_write`            | Yes     |
++--------------------------------+---------+
+| :c:func:`lio_listio`           | Yes     |
++--------------------------------+---------+
+
+_POSIX_BARRIERS
+---------------
+
++--------------------------------------------+---------+
+| API                                        | Support |
++============================================+=========+
+| :c:func:`pthread_barrier_destroy`          | Yes     |
++--------------------------------------------+---------+
+| :c:func:`pthread_barrier_init`             | Yes     |
++--------------------------------------------+---------+
+| :c:func:`pthread_barrier_wait`             | Yes     |
++--------------------------------------------+---------+
+| :c:func:`pthread_barrierattr_destroy`      | Yes     |
++--------------------------------------------+---------+
+| :c:func:`pthread_barrierattr_init`         | Yes     |
++--------------------------------------------+---------+
+| :c:func:`pthread_barrierattr_getpshared`   | Yes     |
++--------------------------------------------+---------+
+| :c:func:`pthread_barrierattr_setpshared`   | Yes     |
++--------------------------------------------+---------+
+| :c:func:`pthread_barrierattr_getpshared`   | Yes     |
++--------------------------------------------+---------+
+| :c:func:`pthread_barrierattr_setpshared`   | Yes     |
++--------------------------------------------+---------+
+
+_POSIX_CPUTIME
+--------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`clock_getcpuclockid`  | Yes     |
++--------------------------------+---------+
+
+_POSIX_MEMORY_PROTECTION
+------------------------
+
++--------------------------------+----------------+
+| API                            | Support        |
++================================+================+
+| :c:func:`mprotect`             | Dummy [#fn17]_ |
++--------------------------------+----------------+
+
+.. [#fn17] The function returns a success value but doesn't implement
+           the requred functionality.
+
+_POSIX_PRIORITIZED_IO
+---------------------
+
+No functions under this option.
+
+_POSIX_PRIORITY_SCHEDULING
+--------------------------
+
++-------------------------------------------+---------+
+| API                                       | Support |
++===========================================+=========+
+| :c:func:`sched_get_priority_max`          | Yes     |
++-------------------------------------------+---------+
+| :c:func:`sched_get_priority_min`          | Yes     |
++-------------------------------------------+---------+
+| :c:func:`sched_getparam`                  | Yes     |
++-------------------------------------------+---------+
+| :c:func:`sched_getscheduler`              | Yes     |
++-------------------------------------------+---------+
+| :c:func:`sched_rr_get_interval`           | Yes     |
++-------------------------------------------+---------+
+| :c:func:`sched_setparam`                  | Yes     |
++-------------------------------------------+---------+
+| :c:func:`sched_setscheduler`              | Yes     |
++-------------------------------------------+---------+
+| :c:func:`sched_yield`                     | Yes     |
++-------------------------------------------+---------+
+| :c:func:`posix_spawnattr_getschedparam`   | Yes     |
++-------------------------------------------+---------+
+| :c:func:`posix_spawnattr_setschedparam`   | Yes     |
++-------------------------------------------+---------+
+| :c:func:`posix_spawnattr_getschedpolicy`  | Yes     |
++-------------------------------------------+---------+
+| :c:func:`posix_spawnattr_setschedpolicy`  | Yes     |
++-------------------------------------------+---------+
+
+_POSIX_RAW_SOCKETS
+------------------
+
+No functions under this option.
+
+_POSIX_SPAWN
+------------
+
+Depends on ``CONFIG_BUILD_KERNEL``.
+
++---------------------------------------------+---------+
+| API                                         | Support |
++=============================================+=========+
+| :c:func:`posix_spawn`                       | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawn_file_actions_addclose` | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawn_file_actions_adddup2`  | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawn_file_actions_addopen`  | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawn_file_actions_destroy`  | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawn_file_actions_init`     | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_destroy`           | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_getflags`          | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_getpgroup`         | No      |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_getsigdefault`     | No      |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_getsigmask`        | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_init`              | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_setflags`          | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_setpgroup`         | No      |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_setsigdefault`     | No      |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnattr_setsigmask`        | Yes     |
++---------------------------------------------+---------+
+| :c:func:`posix_spawnp`                      | Yes     |
++---------------------------------------------+---------+
+
+_POSIX_SPIN_LOCKS
+-----------------
+
+Depends on ``CONFIG_PTHREAD_SPINLOCKS``.
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`pthread_spin_destroy` | Yes     |
++--------------------------------+---------+
+| :c:func:`pthread_spin_init`    | Yes     |
++--------------------------------+---------+
+| :c:func:`pthread_spin_lock`    | Yes     |
++--------------------------------+---------+
+| :c:func:`pthread_spin_trylock` | Yes     |
++--------------------------------+---------+
+| :c:func:`pthread_spin_unlock`  | Yes     |
++--------------------------------+---------+
+
+_POSIX_SPORADIC_SERVER
+----------------------
+
+No functions under this option.
+
+_POSIX_THREAD_PROCESS_SHARED
+----------------------------
+
++------------------------------------------+---------+
+| API                                      | Support |
++==========================================+=========+
+| :c:func:`pthread_condattr_getpshared`    | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_condattr_setpshared`    | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_mutexattr_getpshared`   | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_mutexattr_setpshared`   | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlockattr_getpshared`  | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlockattr_setpshared`  | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_barrierattr_getpshared` | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_barrierattr_setpshared` | Yes     |
++------------------------------------------+---------+
+
+_POSIX_ADVISORY_INFO
+--------------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| posix_fadvise()                | No      |
++--------------------------------+---------+
+| :c:func:`posix_fallocate`      | Yes     |
++--------------------------------+---------+
+| :c:func:`posix_memalign`       | Yes     |
++--------------------------------+---------+
+| posix_madvise()                | Empty   |
++--------------------------------+---------+
+
+_POSIX_SAVED_IDS
+----------------
+
+No functions under this option.
+
+_POSIX_VDISABLE
+---------------
+
+No functions under this option.
+
+_POSIX2_CHAR_TERM
+-----------------
+
+No utilities under this option.
+
+_POSIX2_FORT_DEV
+----------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| fort77                         | No      |
++--------------------------------+---------+
+
+_POSIX2_FORT_RUN
+----------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| asa                            | No      |
++--------------------------------+---------+
+
+_POSIX2_LOCALEDEF
+-----------------
+
+No utilities under this option.
+
+_POSIX2_PBS
+-----------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| qalter                         | No      |
++--------------------------------+---------+
+| qdel                           | No      |
++--------------------------------+---------+
+| qhold                          | No      |
++--------------------------------+---------+
+| qmove                          | No      |
++--------------------------------+---------+
+| qmsg                           | No      |
++--------------------------------+---------+
+| qrerun                         | No      |
++--------------------------------+---------+
+| qrls                           | No      |
++--------------------------------+---------+
+| qselect                        | No      |
++--------------------------------+---------+
+| qsig                           | No      |
++--------------------------------+---------+
+| qstat                          | No      |
++--------------------------------+---------+
+| qsub                           | No      |
++--------------------------------+---------+
+
+_POSIX2_PBS_ACCOUNTING
+----------------------
+
+No utilities under this option.
+
+_POSIX2_PBS_CHECKPOINT
+----------------------
+
+No utilities under this option.
+
+_POSIX2_PBS_LOCATE
+------------------
+
+No utilities under this option.
+
+_POSIX2_PBS_MESSAGE
+-------------------
+
+No utilities under this option.
+
+_POSIX2_PBS_TRACK
+-----------------
+
+No utilities under this option.
+
+_POSIX2_UPE
+-----------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| nm                             | No      |
++--------------------------------+---------+
+
+_XOPEN_CRYPT
+------------
+
+Depends on ``CONFIG_CRYPTO``;
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`crypt`                | Yes     |
++--------------------------------+---------+
+| encrypt()                      | No      |
++--------------------------------+---------+
+| setkey()                       | No      |
++--------------------------------+---------+
+
+_XOPEN_ENH_I18N
+---------------
+
+No interfaces fall under this option.
+
+_XOPEN_LEGACY
+-------------
+
++--------------------------------+---------+
+| API                            | Support |
++================================+=========+
+| :c:func:`bcmp`                 | Yes     |
++--------------------------------+---------+
+| :c:func:`bcopy`                | Yes     |
++--------------------------------+---------+
+| :c:func:`bzero`                | Yes     |
++--------------------------------+---------+
+| ecvt()                         | No      |
++--------------------------------+---------+
+| fcvt()                         | No      |
++--------------------------------+---------+
+| ftime()                        | No      |
++--------------------------------+---------+
+| gcvt()                         | No      |
++--------------------------------+---------+
+| getwd()                        | No      |
++--------------------------------+---------+
+| index()                        | No      |
++--------------------------------+---------+
+| :c:func:`mktemp`               | Yes     |
++--------------------------------+---------+
+| :c:func:`rindex`               | Yes     |
++--------------------------------+---------+
+| :c:func:`utimes`               | Yes     |
++--------------------------------+---------+
+| :c:func:`wcswcs`               | Yes     |
++--------------------------------+---------+
+
+_XOPEN_STREAMS
+--------------
+
++---------------------------------+---------+
+| API                             | Support |
++=================================+=========+
+| fattach()                       | No      |
++---------------------------------+---------+
+| fdetach()                       | No      |
++---------------------------------+---------+
+| getmsg()                        | No      |
++---------------------------------+---------+
+| getpmsg()                       | No      |
++---------------------------------+---------+
+| :c:func:`ioctl`                 | Yes     |
++---------------------------------+---------+
+| isastream()                     | No      |
++---------------------------------+---------+
+| putmsg()                        | No      |
++---------------------------------+---------+
+| putpmsg()                       | No      |
++---------------------------------+---------+
+
+POSIX_BARRIERS
+--------------
+
++----------------------------------------+---------+
+| API                                    | Support |
++========================================+=========+
+| :c:func:`pthread_barrier_destroy`      | Yes     |
++----------------------------------------+---------+
+| :c:func:`pthread_barrier_init`         | Yes     |
++----------------------------------------+---------+
+| :c:func:`pthread_barrier_wait`         | Yes     |
++----------------------------------------+---------+
+| :c:func:`pthread_barrierattr_destroy`  | Yes     |
++----------------------------------------+---------+
+| :c:func:`pthread_barrierattr_init`     | Yes     |
++----------------------------------------+---------+
+
+POSIX_RW_LOCKS
+--------------
+
+Reader Writer Locks:
+
++------------------------------------------+---------+
+| API                                      | Support |
++==========================================+=========+
+| :c:func:`pthread_rwlock_clockrdlock`     | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_clockwrlock`     | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_destroy`         | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_init`            | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_rdlock`          | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_timedrdlock`     | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_timedwrlock`     | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_tryrdlock`       | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_trywrlock`       | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_unlock`          | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlock_wrlock`          | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlockattr_destroy`     | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlockattr_init`        | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlockattr_getpshared`  | Yes     |
++------------------------------------------+---------+
+| :c:func:`pthread_rwlockattr_setpshared`  | Yes     |
++------------------------------------------+---------+
+
+_POSIX2_C_DEV
+-------------
+
++-----------------------------------+---------+
+| API                               | Support |
++===================================+=========+
+| c99                               | No      |
++-----------------------------------+---------+
+| lex                               | No      |
++-----------------------------------+---------+
+| yacc                              | No      |
++-----------------------------------+---------+
+
+_POSIX2_SW_DEV
+--------------
+
++-----------------------------------+---------+
+| API                               | Support |
++===================================+=========+
+| ar                                | No      |
++-----------------------------------+---------+
+| make                              | No      |
++-----------------------------------+---------+
+| strip                             | No      |
++-----------------------------------+---------+
+| nm                                | No      |
++-----------------------------------+---------+
+
+References
+==========
+
+* IEEE Std 1003.13, 2003 - Standardized Application Environment Profile 
(AEP)—POSIX® Realtime and Embedded Application Support
+
+* `IEEE Std 1003.1, 2004 Subprofiling Option Groups 
<https://pubs.opengroup.org/onlinepubs/009604299/xrat/subprofiles.html>`_
+
+* `IEEE Std 1003.1, 2008 Subprofiling Option Groups 
<https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/xrat/V4_subprofiles.html>`_
+
+* `IEEE Std 1003.1, 2013 Subprofiling Option Groups 
<https://pubs.opengroup.org/onlinepubs/9699919799.2013edition/xrat/V4_subprofiles.html>`_
+
+* `IEEE Std 1003.1, 2016 Subprofiling Option Groups 
<https://pubs.opengroup.org/onlinepubs/9699919799.2016edition/xrat/V4_subprofiles.html>`_
+
+* `IEEE Std 1003.1, 2018 Subprofiling Option Groups 
<https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/xrat/V4_subprofiles.html>`_
+
+* `IEEE Std 1003.1, 2024 Subprofiling Option Groups 
<https://pubs.opengroup.org/onlinepubs/9799919799/xrat/V4_subprofiles.html>`_


Reply via email to