1.. _posix_aep: 2 3POSIX Application Environment Profiles (AEP) 4############################################ 5 6Although inactive, `IEEE 1003.13-2003`_ defined a number of AEP that inspired the modern 7subprofiling options of `IEEE 1003.1-2017`_. The single-purpose realtime system profiles 8are listed below, for reference, in terms that agree with the current POSIX-1 standard. PSE54 9is not considered at this time. 10 11System Interfaces 12================= 13 14The required POSIX :ref:`System Interfaces<posix_system_interfaces_required>` are supported for 15each Application Environment Profile. 16 17.. figure:: si.svg 18 :align: center 19 :scale: 150% 20 :alt: Required System Interfaces 21 22 System Interfaces 23 24.. _posix_aep_pse51: 25 26Minimal Realtime System Profile (PSE51) 27======================================= 28 29The *Minimal Realtime System Profile* (PSE51) includes all of the 30:ref:`System Interfaces<posix_system_interfaces_required>` along with several additional features. 31 32.. figure:: aep-pse51.svg 33 :align: center 34 :scale: 150% 35 :alt: Minimal Realtime System Profile (PSE51) 36 37 Minimal Realtime System Profile (PSE51) 38 39.. Conforming implementations shall define _POSIX_AEP_REALTIME_MINIMAL to the value 200312L 40 41.. csv-table:: PSE51 System Interfaces 42 :header: Symbol, Support, Remarks 43 :widths: 50, 10, 50 44 45 _POSIX_AEP_REALTIME_MINIMAL, -1, :kconfig:option:`CONFIG_POSIX_AEP_REALTIME_MINIMAL` 46 47.. csv-table:: PSE51 Option Groups 48 :header: Symbol, Support, Remarks 49 :widths: 50, 10, 50 50 51 :ref:`POSIX_C_LANG_JUMP <posix_option_group_c_lang_jump>`, yes, 52 :ref:`POSIX_C_LANG_SUPPORT <posix_option_group_c_lang_support>`, yes, 53 :ref:`POSIX_DEVICE_IO <posix_option_group_device_io>`, yes, :kconfig:option:`CONFIG_POSIX_DEVICE_IO` 54 :ref:`POSIX_SIGNALS <posix_option_group_signals>`, yes, :kconfig:option:`CONFIG_POSIX_SIGNALS` :ref:`†<posix_undefined_behaviour>` 55 :ref:`POSIX_SINGLE_PROCESS <posix_option_group_single_process>`, yes, :kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS` 56 :ref:`XSI_THREADS_EXT <posix_option_group_xsi_threads_ext>`, yes, :kconfig:option:`CONFIG_XSI_THREADS_EXT` 57 58.. csv-table:: PSE51 Option Requirements 59 :header: Symbol, Support, Remarks 60 :widths: 50, 10, 50 61 62 :ref:`_POSIX_FSYNC <posix_option_fsync>`, 200809L, :kconfig:option:`CONFIG_POSIX_FSYNC` 63 :ref:`_POSIX_MEMLOCK <posix_option_memlock>`, 200809L, :kconfig:option:`CONFIG_POSIX_MEMLOCK` :ref:`†<posix_undefined_behaviour>` 64 :ref:`_POSIX_MEMLOCK_RANGE <posix_option_memlock_range>`, 200809L, :kconfig:option:`CONFIG_POSIX_MEMLOCK_RANGE` 65 :ref:`_POSIX_MONOTONIC_CLOCK <posix_option_monotonic_clock>`, 200809L, :kconfig:option:`CONFIG_POSIX_MONOTONIC_CLOCK` 66 :ref:`_POSIX_SHARED_MEMORY_OBJECTS <posix_shared_memory_objects>`, 200809L, :kconfig:option:`CONFIG_POSIX_SHARED_MEMORY_OBJECTS` 67 :ref:`_POSIX_SYNCHRONIZED_IO <posix_option_synchronized_io>`, 200809L, :kconfig:option:`CONFIG_POSIX_SYNCHRONIZED_IO` 68 :ref:`_POSIX_THREAD_ATTR_STACKADDR<posix_option_thread_attr_stackaddr>`, 200809L, :kconfig:option:`CONFIG_POSIX_THREAD_ATTR_STACKADDR` 69 :ref:`_POSIX_THREAD_ATTR_STACKSIZE<posix_option_thread_attr_stacksize>`, 200809L, :kconfig:option:`CONFIG_POSIX_THREAD_ATTR_STACKSIZE` 70 :ref:`_POSIX_THREAD_CPUTIME <posix_option_thread_cputime>`, 200809L, :kconfig:option:`CONFIG_POSIX_CPUTIME` 71 :ref:`_POSIX_THREAD_PRIO_INHERIT <posix_option_thread_prio_inherit>`, 200809L, :kconfig:option:`CONFIG_POSIX_THREAD_PRIO_INHERIT` 72 :ref:`_POSIX_THREAD_PRIO_PROTECT <posix_option_thread_prio_protect>`, 200809L, :kconfig:option:`CONFIG_POSIX_THREAD_PRIO_PROTECT` 73 :ref:`_POSIX_THREAD_PRIORITY_SCHEDULING <posix_option_thread_priority_scheduling>`, 200809L, :kconfig:option:`CONFIG_POSIX_THREAD_PRIORITY_SCHEDULING` 74 _POSIX_THREAD_SPORADIC_SERVER, -1, 75 76.. _posix_aep_pse52: 77 78Realtime Controller System Profile (PSE52) 79========================================== 80 81The *Realtime Controller System Profile* (PSE52) includes all features from PSE51 and the 82:ref:`System Interfaces<posix_system_interfaces_required>`. 83 84.. figure:: aep-pse52.svg 85 :align: center 86 :scale: 150% 87 :alt: Realtime Controller System Profile (PSE52) 88 89 Realtime Controller System Profile (PSE52) 90 91.. Conforming implementations shall define _POSIX_AEP_REALTIME_CONTROLLER to the value 200312L 92 93.. csv-table:: PSE52 System Interfaces 94 :header: Symbol, Support, Remarks 95 :widths: 50, 10, 50 96 97 _POSIX_AEP_REALTIME_CONTROLLER, -1, :kconfig:option:`CONFIG_POSIX_AEP_REALTIME_CONTROLLER` 98 99.. csv-table:: PSE52 Option Groups 100 :header: Symbol, Support, Remarks 101 :widths: 50, 10, 50 102 103 :ref:`POSIX_C_LANG_MATH <posix_option_group_c_lang_math>`, yes, 104 :ref:`POSIX_FD_MGMT <posix_option_group_fd_mgmt>`,, :kconfig:option:`CONFIG_POSIX_FD_MGMT` 105 :ref:`POSIX_FILE_SYSTEM <posix_option_group_file_system>`,, :kconfig:option:`CONFIG_POSIX_FILE_SYSTEM` 106 107.. csv-table:: PSE52 Option Requirements 108 :header: Symbol, Support, Remarks 109 :widths: 50, 10, 50 110 111 :ref:`_POSIX_MESSAGE_PASSING <posix_option_message_passing>`, 200809L, :kconfig:option:`CONFIG_POSIX_MESSAGE_PASSING` 112 _POSIX_TRACE, -1, 113 _POSIX_TRACE_EVENT_FILTER, -1, 114 _POSIX_TRACE_LOG, -1, 115 116.. _posix_aep_pse53: 117 118Dedicated Realtime System Profile (PSE53) 119========================================= 120 121The *Dedicated Realtime System Profile* (PSE53) includes all features from PSE52, PSE51, and the 122:ref:`System Interfaces<posix_system_interfaces_required>`. 123 124.. figure:: aep-pse53.svg 125 :align: center 126 :scale: 150% 127 :alt: Dedicated Realtime System Profile (PSE53) 128 129 Dedicated Realtime System Profile (PSE53) 130 131.. Conforming implementations shall define _POSIX_AEP_REALTIME_DEDICATED to the value 200312L 132 133.. csv-table:: PSE53 System Interfaces 134 :header: Symbol, Support, Remarks 135 :widths: 50, 10, 50 136 137 _POSIX_AEP_REALTIME_DEDICATED, -1, :kconfig:option:`CONFIG_POSIX_AEP_REALTIME_DEDICATED` 138 139.. csv-table:: PSE53 Option Groups 140 :header: Symbol, Support, Remarks 141 :widths: 50, 10, 50 142 143 :ref:`POSIX_MULTI_PROCESS<posix_option_group_multi_process>`,, :kconfig:option:`CONFIG_POSIX_MULTI_PROCESS`:ref:`†<posix_undefined_behaviour>` 144 :ref:`POSIX_NETWORKING <posix_option_group_networking>`, yes, :kconfig:option:`CONFIG_POSIX_NETWORKING` 145 :ref:`POSIX_PIPE <posix_option_group_pipe>`,, 146 :ref:`POSIX_SIGNAL_JUMP <posix_option_group_signal_jump>`,, 147 148.. csv-table:: PSE53 Option Requirements 149 :header: Symbol, Support, Remarks 150 :widths: 50, 10, 50 151 152 :ref:`_POSIX_CPUTIME <posix_option_cputime>`, 200809L, :kconfig:option:`CONFIG_POSIX_CPUTIME` 153 _POSIX_PRIORITIZED_IO, -1, 154 :ref:`_POSIX_PRIORITY_SCHEDULING <posix_option_priority_scheduling>`, -1, 155 :ref:`_POSIX_RAW_SOCKETS <posix_option_raw_sockets>`, 200809L, :kconfig:option:`CONFIG_POSIX_RAW_SOCKETS` 156 _POSIX_SPAWN, -1, :ref:`†<posix_undefined_behaviour>` 157 _POSIX_SPORADIC_SERVER, -1, :ref:`†<posix_undefined_behaviour>` 158 159.. _IEEE 1003.1-2017: https://standards.ieee.org/ieee/1003.1/7101/ 160.. _IEEE 1003.13-2003: https://standards.ieee.org/ieee/1003.13/3322/ 161