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
11.. _posix_aep_pse51:
12
13Minimal Realtime System Profile (PSE51)
14=======================================
15
16.. Conforming implementations shall define _POSIX_AEP_REALTIME_MINIMAL to the value 200312L
17
18.. csv-table:: PSE51 System Interfaces
19   :header: Symbol, Support, Remarks
20   :widths: 50, 10, 50
21
22    _POSIX_AEP_REALTIME_MINIMAL, -1,
23
24.. csv-table:: PSE51 Option Groups
25   :header: Symbol, Support, Remarks
26   :widths: 50, 10, 50
27
28    POSIX_C_LANG_JUMP, yes, :ref:`POSIX_C_LANG_JUMP <posix_option_group_c_lang_jump>`
29    POSIX_C_LANG_SUPPORT, yes, :ref:`POSIX_C_LANG_SUPPORT <posix_option_group_c_lang_support>`
30    POSIX_DEVICE_IO,, :ref:`†<posix_undefined_behaviour>`
31    POSIX_FILE_LOCKING,,
32    POSIX_SIGNALS,, :ref:`†<posix_undefined_behaviour>`
33    POSIX_SINGLE_PROCESS,, :ref:`†<posix_undefined_behaviour>`
34    POSIX_THREADS_BASE, yes, :ref:`†<posix_undefined_behaviour>`
35    XSI_THREADS_EXT, yes, :ref:`†<posix_undefined_behaviour>`
36
37.. csv-table:: PSE51 Option Requirements
38   :header: Symbol, Support, Remarks
39   :widths: 50, 10, 50
40
41    _POSIX_CLOCK_SELECTION, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
42    _POSIX_FSYNC, -1,
43    _POSIX_MEMLOCK, -1,
44    _POSIX_MEMLOCK_RANGE, -1,
45    _POSIX_MONOTONIC_CLOCK, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
46    _POSIX_REALTIME_SIGNALS, -1,
47    _POSIX_SEMAPHORES, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC`
48    _POSIX_SHARED_MEMORY_OBJECTS, -1,
49    _POSIX_SYNCHRONIZED_IO, -1,
50    _POSIX_THREAD_ATTR_STACKADDR, 200809L, :kconfig:option:`CONFIG_PTHREAD`
51    _POSIX_THREAD_ATTR_STACKSIZE, 200809L, :kconfig:option:`CONFIG_PTHREAD`
52    _POSIX_THREAD_CPUTIME, -1,
53    _POSIX_THREAD_PRIO_INHERIT, 200809L, :kconfig:option:`CONFIG_PTHREAD_MUTEX`
54    _POSIX_THREAD_PRIO_PROTECT, -1,
55    _POSIX_THREAD_PRIORITY_SCHEDULING, -1, :kconfig:option:`CONFIG_POSIX_PRIORITY_SCHEDULING` (will fail with ``ENOSYS``:ref:`†<posix_undefined_behaviour>`)
56    _POSIX_THREAD_SPORADIC_SERVER, -1,
57    _POSIX_TIMEOUTS, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC`
58    _POSIX_TIMERS, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
59
60.. _posix_aep_pse52:
61
62Realtime Controller System Profile (PSE52)
63==========================================
64
65.. Conforming implementations shall define _POSIX_AEP_REALTIME_CONTROLLER to the value 200312L
66
67.. csv-table:: PSE52 System Interfaces
68   :header: Symbol, Support, Remarks
69   :widths: 50, 10, 50
70
71    _POSIX_AEP_REALTIME_CONTROLLER, -1,
72
73.. csv-table:: PSE52 Option Groups
74   :header: Symbol, Support, Remarks
75   :widths: 50, 10, 50
76
77    POSIX_C_LANG_JUMP, yes, :ref:`POSIX_C_LANG_JUMP <posix_option_group_c_lang_jump>`
78    POSIX_C_LANG_MATH, yes, :ref:`POSIX_C_LANG_MATH <posix_option_group_c_lang_math>`
79    POSIX_C_LANG_SUPPORT, yes, :ref:`POSIX_C_LANG_SUPPORT <posix_option_group_c_lang_support>`
80    POSIX_DEVICE_IO,, :ref:`†<posix_undefined_behaviour>`
81    POSIX_FD_MGMT,,
82    POSIX_FILE_LOCKING,,
83    POSIX_FILE_SYSTEM,,
84    POSIX_SIGNALS,, :ref:`†<posix_undefined_behaviour>`
85    POSIX_SINGLE_PROCESS,, :ref:`†<posix_undefined_behaviour>`
86    POSIX_THREADS_BASE, yes, :ref:`†<posix_undefined_behaviour>`
87    XSI_THREADS_EXT, yes, :ref:`†<posix_undefined_behaviour>`
88
89.. csv-table:: PSE52 Option Requirements
90   :header: Symbol, Support, Remarks
91   :widths: 50, 10, 50
92
93    _POSIX_CLOCK_SELECTION, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
94    _POSIX_FSYNC, -1,
95    _POSIX_MAPPED_FILES, -1,
96    _POSIX_MEMLOCK, -1,
97    _POSIX_MEMLOCK_RANGE, -1,
98    _POSIX_MESSAGE_PASSING, 200809L, :kconfig:option:`CONFIG_POSIX_MQUEUE`
99    _POSIX_MONOTONIC_CLOCK, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
100    _POSIX_REALTIME_SIGNALS, -1,
101    _POSIX_SEMAPHORES, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC`
102    _POSIX_SHARED_MEMORY_OBJECTS, -1,
103    _POSIX_SYNCHRONIZED_IO, -1,
104    _POSIX_THREAD_ATTR_STACKADDR, 200809L, :kconfig:option:`CONFIG_PTHREAD`
105    _POSIX_THREAD_ATTR_STACKSIZE, 200809L, :kconfig:option:`CONFIG_PTHREAD`
106    _POSIX_THREAD_CPUTIME, -1,
107    _POSIX_THREAD_PRIO_INHERIT, 200809L, :kconfig:option:`CONFIG_PTHREAD_MUTEX`
108    _POSIX_THREAD_PRIO_PROTECT, -1,
109    _POSIX_THREAD_PRIORITY_SCHEDULING, -1,
110    _POSIX_THREAD_SPORADIC_SERVER, -1,
111    _POSIX_TIMEOUTS, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC`
112    _POSIX_TIMERS, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
113    _POSIX_TRACE, -1,
114    _POSIX_TRACE_EVENT_FILTER, -1,
115    _POSIX_TRACE_LOG, -1,
116
117.. _posix_aep_pse53:
118
119Dedicated Realtime System Profile (PSE53)
120=========================================
121
122.. Conforming implementations shall define _POSIX_AEP_REALTIME_DEDICATED to the value 200312L
123
124.. csv-table:: PSE53 System Interfaces
125   :header: Symbol, Support, Remarks
126   :widths: 50, 10, 50
127
128    _POSIX_AEP_REALTIME_DEDICATED, -1,
129
130.. csv-table:: PSE53 Option Groups
131   :header: Symbol, Support, Remarks
132   :widths: 50, 10, 50
133
134    POSIX_C_LANG_JUMP, yes, :ref:`POSIX_C_LANG_JUMP <posix_option_group_c_lang_jump>`
135    POSIX_C_LANG_MATH, yes, :ref:`POSIX_C_LANG_MATH <posix_option_group_c_lang_math>`
136    POSIX_C_LANG_SUPPORT, yes, :ref:`POSIX_C_LANG_SUPPORT <posix_option_group_c_lang_support>`
137    POSIX_DEVICE_IO,, :ref:`†<posix_undefined_behaviour>`
138    POSIX_FD_MGMT,,
139    POSIX_FILE_LOCKING,,
140    POSIX_FILE_SYSTEM,,
141    POSIX_MULTI_PROCESS,, :ref:`†<posix_undefined_behaviour>`
142    POSIX_NETWORKING, yes, :ref:`†<posix_undefined_behaviour>`
143    POSIX_PIPE,, :ref:`†<posix_undefined_behaviour>`
144    POSIX_SIGNALS,, :ref:`†<posix_undefined_behaviour>`
145    POSIX_SIGNAL_JUMP,, :ref:`†<posix_undefined_behaviour>`
146    POSIX_SINGLE_PROCESS,, :ref:`†<posix_undefined_behaviour>`
147    POSIX_THREADS_BASE, yes, :ref:`†<posix_undefined_behaviour>`
148    XSI_THREADS_EXT, yes, :ref:`†<posix_undefined_behaviour>`
149
150.. csv-table:: PSE53 Option Requirements
151   :header: Symbol, Support, Remarks
152   :widths: 50, 10, 50
153
154    _POSIX_ASYNCHRONOUS_IO, -1,
155    _POSIX_CLOCK_SELECTION, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
156    _POSIX_CPUTIME, -1,
157    _POSIX_FSYNC, -1,
158    _POSIX_MAPPED_FILES, -1,
159    _POSIX_MEMLOCK, -1,
160    _POSIX_MEMLOCK_RANGE, -1,
161    _POSIX_MEMORY_PROTECTION, -1,
162    _POSIX_MESSAGE_PASSING, 200809L, :kconfig:option:`CONFIG_POSIX_MQUEUE`
163    _POSIX_MONOTONIC_CLOCK, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
164    _POSIX_PRIORITIZED_IO, -1,
165    _POSIX_PRIORITY_SCHEDULING, -1,
166    _POSIX_RAW_SOCKETS, 200809L, :kconfig:option:`CONFIG_NET_SOCKETS`
167    _POSIX_REALTIME_SIGNALS, -1,
168    _POSIX_SEMAPHORES, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC`
169    _POSIX_SHARED_MEMORY_OBJECTS, -1,
170    _POSIX_SPAWN, -1,
171    _POSIX_SPORADIC_SERVER, -1,
172    _POSIX_SYNCHRONIZED_IO, -1,
173    _POSIX_THREAD_ATTR_STACKADDR, 200809L, :kconfig:option:`CONFIG_PTHREAD`
174    _POSIX_THREAD_ATTR_STACKSIZE, 200809L, :kconfig:option:`CONFIG_PTHREAD`
175    _POSIX_THREAD_CPUTIME, -1,
176    _POSIX_THREAD_PRIO_INHERIT, 200809L, :kconfig:option:`CONFIG_PTHREAD_MUTEX`
177    _POSIX_THREAD_PRIO_PROTECT, -1,
178    _POSIX_THREAD_PRIORITY_SCHEDULING, -1,
179    _POSIX_THREAD_PROCESS_SHARED, -1,
180    _POSIX_THREAD_SPORADIC_SERVER, -1,
181    _POSIX_TIMEOUTS, 200809L, :kconfig:option:`CONFIG_PTHREAD_IPC`
182    _POSIX_TIMERS, 200809L, :kconfig:option:`CONFIG_POSIX_CLOCK`
183    _POSIX_TRACE, -1,
184    _POSIX_TRACE_EVENT_FILTER, -1,
185    _POSIX_TRACE_LOG, -1,
186
187.. _IEEE 1003.1-2017: https://standards.ieee.org/ieee/1003.1/7101/
188.. _IEEE 1003.13-2003: https://standards.ieee.org/ieee/1003.13/3322/
189