summaryrefslogtreecommitdiffstats
path: root/spec/acfg
diff options
context:
space:
mode:
Diffstat (limited to 'spec/acfg')
-rw-r--r--spec/acfg/if/appl-disable-filesystem.yml24
-rw-r--r--spec/acfg/if/appl-does-not-need-clock-driver.yml33
-rw-r--r--spec/acfg/if/appl-extra-drivers.yml29
-rw-r--r--spec/acfg/if/appl-needs-ata-driver.yml21
-rw-r--r--spec/acfg/if/appl-needs-clock-driver.yml29
-rw-r--r--spec/acfg/if/appl-needs-console-driver.yml33
-rw-r--r--spec/acfg/if/appl-needs-framebuffer-driver.yml22
-rw-r--r--spec/acfg/if/appl-needs-ide-driver.yml21
-rw-r--r--spec/acfg/if/appl-needs-libblock.yml20
-rw-r--r--spec/acfg/if/appl-needs-null-driver.yml19
-rw-r--r--spec/acfg/if/appl-needs-rtc-driver.yml22
-rw-r--r--spec/acfg/if/appl-needs-simple-console-driver.yml37
-rw-r--r--spec/acfg/if/appl-needs-simple-task-console-driver.yml46
-rw-r--r--spec/acfg/if/appl-needs-stub-driver.yml19
-rw-r--r--spec/acfg/if/appl-needs-timer-driver.yml29
-rw-r--r--spec/acfg/if/appl-needs-watchdog-driver.yml22
-rw-r--r--spec/acfg/if/appl-needs-zero-driver.yml19
-rw-r--r--spec/acfg/if/appl-prerequisite-drivers.yml30
-rw-r--r--spec/acfg/if/ata-driver-task-priority.yml22
-rw-r--r--spec/acfg/if/bdbuf-buffer-max-size.yml22
-rw-r--r--spec/acfg/if/bdbuf-buffer-min-size.yml21
-rw-r--r--spec/acfg/if/bdbuf-cache-memory-size.yml21
-rw-r--r--spec/acfg/if/bdbuf-max-read-ahead-blocks.yml24
-rw-r--r--spec/acfg/if/bdbuf-max-write-blocks.yml21
-rw-r--r--spec/acfg/if/bdbuf-read-ahead-task-priority.yml20
-rw-r--r--spec/acfg/if/bdbuf-swapout-block-hold.yml21
-rw-r--r--spec/acfg/if/bdbuf-swapout-swap-period.yml21
-rw-r--r--spec/acfg/if/bdbuf-swapout-task-priority.yml20
-rw-r--r--spec/acfg/if/bdbuf-swapout-worker-taskp-riority.yml21
-rw-r--r--spec/acfg/if/bdbuf-swapout-worker-tasks.yml20
-rw-r--r--spec/acfg/if/bdbuf-task-stack-size.yml24
-rw-r--r--spec/acfg/if/bsp-idle-task-body.yml33
-rw-r--r--spec/acfg/if/bsp-idle-task-stack-size.yml30
-rw-r--r--spec/acfg/if/bsp-initial-extension.yml32
-rw-r--r--spec/acfg/if/bsp-interrupt-stack-size.yml32
-rw-r--r--spec/acfg/if/bsp-prerequisite-drivers.yml33
-rw-r--r--spec/acfg/if/cbs-max-servers.yml25
-rw-r--r--spec/acfg/if/constraint-bspappmin.yml11
-rw-r--r--spec/acfg/if/constraint-idlestackarea.yml12
-rw-r--r--spec/acfg/if/constraint-isrstackalign.yml11
-rw-r--r--spec/acfg/if/constraint-isrstackarea.yml12
-rw-r--r--spec/acfg/if/constraint-memsz.yml12
-rw-r--r--spec/acfg/if/constraint-posix.yml13
-rw-r--r--spec/acfg/if/constraint-prioclassic.yml11
-rw-r--r--spec/acfg/if/constraint-stackspace.yml12
-rw-r--r--spec/acfg/if/constraint-unlimited.yml13
-rw-r--r--spec/acfg/if/constraint-wkspace.yml12
-rw-r--r--spec/acfg/if/dirty-memory.yml25
-rw-r--r--spec/acfg/if/disable-bsp-settings.yml29
-rw-r--r--spec/acfg/if/disable-newlib-reentrancy.yml21
-rw-r--r--spec/acfg/if/executive-ram-size.yml28
-rw-r--r--spec/acfg/if/extra-task-stacks.yml27
-rw-r--r--spec/acfg/if/filesystem-all.yml31
-rw-r--r--spec/acfg/if/filesystem-dosfs.yml20
-rw-r--r--spec/acfg/if/filesystem-ftpfs.yml18
-rw-r--r--spec/acfg/if/filesystem-imfs.yml21
-rw-r--r--spec/acfg/if/filesystem-jffs2.yml18
-rw-r--r--spec/acfg/if/filesystem-nfs.yml18
-rw-r--r--spec/acfg/if/filesystem-rfs.yml20
-rw-r--r--spec/acfg/if/filesystem-tftpfs.yml18
-rw-r--r--spec/acfg/if/group-bdbuf.yml14
-rw-r--r--spec/acfg/if/group-bsp.yml16
-rw-r--r--spec/acfg/if/group-classic.yml13
-rw-r--r--spec/acfg/if/group-classicinit.yml14
-rw-r--r--spec/acfg/if/group-devdrv.yml14
-rw-r--r--spec/acfg/if/group-eventrecord.yml13
-rw-r--r--spec/acfg/if/group-filesystem.yml53
-rw-r--r--spec/acfg/if/group-general.yml13
-rw-r--r--spec/acfg/if/group-idle.yml13
-rw-r--r--spec/acfg/if/group-mpci.yml18
-rw-r--r--spec/acfg/if/group-posix.yml16
-rw-r--r--spec/acfg/if/group-posixinit.yml14
-rw-r--r--spec/acfg/if/group-schedgeneral.yml34
-rw-r--r--spec/acfg/if/group-stackalloc.yml17
-rw-r--r--spec/acfg/if/idle-task-body.yml30
-rw-r--r--spec/acfg/if/idle-task-init-appl.yml43
-rw-r--r--spec/acfg/if/idle-task-stack-size.yml25
-rw-r--r--spec/acfg/if/imfs-disable-chmod.yml20
-rw-r--r--spec/acfg/if/imfs-disable-chown.yml20
-rw-r--r--spec/acfg/if/imfs-disable-link.yml20
-rw-r--r--spec/acfg/if/imfs-disable-mknod-device.yml20
-rw-r--r--spec/acfg/if/imfs-disable-mknod-file.yml20
-rw-r--r--spec/acfg/if/imfs-disable-mknod.yml20
-rw-r--r--spec/acfg/if/imfs-disable-mount.yml21
-rw-r--r--spec/acfg/if/imfs-disable-readdir.yml21
-rw-r--r--spec/acfg/if/imfs-disable-readlink.yml20
-rw-r--r--spec/acfg/if/imfs-disable-rename.yml20
-rw-r--r--spec/acfg/if/imfs-disable-rmnod.yml20
-rw-r--r--spec/acfg/if/imfs-disable-symlink.yml20
-rw-r--r--spec/acfg/if/imfs-disable-unmount.yml21
-rw-r--r--spec/acfg/if/imfs-disable-utime.yml20
-rw-r--r--spec/acfg/if/imfs-enable-mkfifo.yml20
-rw-r--r--spec/acfg/if/imfs-memfile-bytes-per-block.yml51
-rw-r--r--spec/acfg/if/init-task-arguments.yml23
-rw-r--r--spec/acfg/if/init-task-attributes.yml22
-rw-r--r--spec/acfg/if/init-task-entrypoint.yml26
-rw-r--r--spec/acfg/if/init-task-initial-modes.yml24
-rw-r--r--spec/acfg/if/init-task-name.yml25
-rw-r--r--spec/acfg/if/init-task-priority.yml21
-rw-r--r--spec/acfg/if/init-task-stack-size.yml22
-rw-r--r--spec/acfg/if/initial-extensions.yml27
-rw-r--r--spec/acfg/if/interrupt-stack-size.yml44
-rw-r--r--spec/acfg/if/malloc-bsp-supports-sbrk.yml27
-rw-r--r--spec/acfg/if/malloc-dirty.yml22
-rw-r--r--spec/acfg/if/max-barriers.yml27
-rw-r--r--spec/acfg/if/max-drivers.yml65
-rw-r--r--spec/acfg/if/max-file-descriptors.yml26
-rw-r--r--spec/acfg/if/max-message-queues.yml29
-rw-r--r--spec/acfg/if/max-partitions.yml27
-rw-r--r--spec/acfg/if/max-periods.yml27
-rw-r--r--spec/acfg/if/max-ports.yml27
-rw-r--r--spec/acfg/if/max-posix-key-value-pairs.yml34
-rw-r--r--spec/acfg/if/max-posix-keys.yml27
-rw-r--r--spec/acfg/if/max-posix-message-queues.yml31
-rw-r--r--spec/acfg/if/max-posix-queued-signals.yml30
-rw-r--r--spec/acfg/if/max-posix-semaphores.yml34
-rw-r--r--spec/acfg/if/max-posix-shms.yml29
-rw-r--r--spec/acfg/if/max-posix-threads.yml37
-rw-r--r--spec/acfg/if/max-posix-timers.yml32
-rw-r--r--spec/acfg/if/max-priority.yml58
-rw-r--r--spec/acfg/if/max-processors.yml30
-rw-r--r--spec/acfg/if/max-regions.yml27
-rw-r--r--spec/acfg/if/max-semaphores.yml31
-rw-r--r--spec/acfg/if/max-tasks.yml42
-rw-r--r--spec/acfg/if/max-thread-local-storage-size.yml34
-rw-r--r--spec/acfg/if/max-thread-name-size.yml31
-rw-r--r--spec/acfg/if/max-timers.yml27
-rw-r--r--spec/acfg/if/max-user-extensions.yml24
-rw-r--r--spec/acfg/if/memory-overhead.yml30
-rw-r--r--spec/acfg/if/message-buffer-memory.yml72
-rw-r--r--spec/acfg/if/microseconds-per-tick.yml45
-rw-r--r--spec/acfg/if/min-posix-thread-stack-size.yml26
-rw-r--r--spec/acfg/if/min-task-stack-size.yml44
-rw-r--r--spec/acfg/if/min-tasks-with-user-provided-storage.yml27
-rw-r--r--spec/acfg/if/mp-appl.yml25
-rw-r--r--spec/acfg/if/mp-extra-server-stack.yml30
-rw-r--r--spec/acfg/if/mp-max-global-objects.yml26
-rw-r--r--spec/acfg/if/mp-max-nodes.yml23
-rw-r--r--spec/acfg/if/mp-max-proxies.yml29
-rw-r--r--spec/acfg/if/mp-mpci-table-pointer.yml29
-rw-r--r--spec/acfg/if/mp-node-number.yml28
-rw-r--r--spec/acfg/if/posix-init-thread-entry-point.yml25
-rw-r--r--spec/acfg/if/posix-init-thread-stack-size.yml22
-rw-r--r--spec/acfg/if/posix-init-thread-table.yml27
-rw-r--r--spec/acfg/if/record-extensions-enabled.yml24
-rw-r--r--spec/acfg/if/record-fatal-dump-base64-zlib.yml25
-rw-r--r--spec/acfg/if/record-fatal-dump-base64.yml26
-rw-r--r--spec/acfg/if/record-per-processor-items.yml28
-rw-r--r--spec/acfg/if/rtems-init-tasks-table.yml27
-rw-r--r--spec/acfg/if/scheduler-assignments.yml36
-rw-r--r--spec/acfg/if/scheduler-cbs.yml23
-rw-r--r--spec/acfg/if/scheduler-edf-smp.yml30
-rw-r--r--spec/acfg/if/scheduler-edf.yml23
-rw-r--r--spec/acfg/if/scheduler-name.yml46
-rw-r--r--spec/acfg/if/scheduler-priority-affinity-smp.yml29
-rw-r--r--spec/acfg/if/scheduler-priority-smp.yml29
-rw-r--r--spec/acfg/if/scheduler-priority.yml31
-rw-r--r--spec/acfg/if/scheduler-simple-smp.yml27
-rw-r--r--spec/acfg/if/scheduler-simple.yml23
-rw-r--r--spec/acfg/if/scheduler-strong-apa.yml24
-rw-r--r--spec/acfg/if/scheduler-user.yml42
-rw-r--r--spec/acfg/if/stack-checker-enabled.yml22
-rw-r--r--spec/acfg/if/task-stack-allocator-init.yml31
-rw-r--r--spec/acfg/if/task-stack-allocator.yml33
-rw-r--r--spec/acfg/if/task-stack-deallocator.yml33
-rw-r--r--spec/acfg/if/task-stack-from-alloc.yml30
-rw-r--r--spec/acfg/if/task-stack-no-workspace.yml19
-rw-r--r--spec/acfg/if/ticks-per-time-slice.yml24
-rw-r--r--spec/acfg/if/unified-work-areas.yml33
-rw-r--r--spec/acfg/if/unlimited-allocation-size.yml30
-rw-r--r--spec/acfg/if/unlimited-objects.yml25
-rw-r--r--spec/acfg/if/use-devfs-as-base-filesystem.yml50
-rw-r--r--spec/acfg/if/use-miniimfs-as-base-filesystem.yml35
-rw-r--r--spec/acfg/if/verbose-system-init.yml19
-rw-r--r--spec/acfg/if/zero-workspace-automatically.yml26
175 files changed, 4545 insertions, 0 deletions
diff --git a/spec/acfg/if/appl-disable-filesystem.yml b/spec/acfg/if/appl-disable-filesystem.yml
new file mode 100644
index 00000000..f528b4d8
--- /dev/null
+++ b/spec/acfg/if/appl-disable-filesystem.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then a base filesystem and the
+ configured filesystems are initialized during system initialization.
+description: |
+ In case this configuration option is defined, then **no base filesystem** is
+ initialized during system initialization and **no filesystems** are
+ configured.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+notes: |
+ Filesystems shall be initialized to support file descriptor based device
+ drivers and basic input/output functions such as ${/c/if/printf:/name}.
+ Filesystems can be disabled to reduce the memory footprint of an application.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-does-not-need-clock-driver.yml b/spec/acfg/if/appl-does-not-need-clock-driver.yml
new file mode 100644
index 00000000..fcfb0a8e
--- /dev/null
+++ b/spec/acfg/if/appl-does-not-need-clock-driver.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then a Clock Driver may be
+ initialized during system initialization.
+description: |
+ In case this configuration option is defined, then **no** Clock Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+notes: |
+ This configuration parameter is intended to prevent the common user error
+ of using the Hello World example as the baseline for an application and
+ leaving out a clock tick source.
+
+ The application shall define exactly one of the following configuration options
+
+ * ${appl-needs-clock-driver:/name},
+
+ * ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``, or
+
+ * ${appl-needs-timer-driver:/name},
+
+ otherwise a compile time error in the configuration file will occur.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-extra-drivers.yml b/spec/acfg/if/appl-extra-drivers.yml
new file mode 100644
index 00000000..23e2d4c7
--- /dev/null
+++ b/spec/acfg/if/appl-extra-drivers.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a list of initializers for
+ structures of type ${/rtems/io/if/driver-address-table:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is the empty list.
+description: |
+ The value of this configuration option is used to initialize the Device
+ Driver Table.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_EXTRA_DRIVERS
+notes: |
+ The value of this configuration option is placed after the entries of other
+ device driver configuration options.
+
+ See ${appl-prerequisite-drivers:/name} for an alternative
+ placement of application device driver initializers.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-ata-driver.yml b/spec/acfg/if/appl-needs-ata-driver.yml
new file mode 100644
index 00000000..a7a3344c
--- /dev/null
+++ b/spec/acfg/if/appl-needs-ata-driver.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the ATA Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
+notes: |
+ Most BSPs do not include support for an ATA Driver.
+
+ If this option is defined and the BSP does not have this device driver, then
+ the user will get a link time error for an undefined symbol.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-clock-driver.yml b/spec/acfg/if/appl-needs-clock-driver.yml
new file mode 100644
index 00000000..55b1dcb7
--- /dev/null
+++ b/spec/acfg/if/appl-needs-clock-driver.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Clock Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+notes: |
+ The Clock Driver is responsible for providing a regular interrupt
+ which invokes a clock tick directive.
+
+ The application shall define exactly one of the following configuration options
+
+ * ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``,
+
+ * ${appl-does-not-need-clock-driver:/name}, or
+
+ * ${appl-needs-timer-driver:/name},
+
+ otherwise a compile time error in the configuration file will occur.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-console-driver.yml b/spec/acfg/if/appl-needs-console-driver.yml
new file mode 100644
index 00000000..3885389d
--- /dev/null
+++ b/spec/acfg/if/appl-needs-console-driver.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Console Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+notes: |
+ The Console Driver is responsible for providing the :file:`/dev/console`
+ device file. This device is used to initialize the standard input, output,
+ and error file descriptors.
+
+ BSPs should be constructed in a manner that allows ${/rtems/io/if/printk:/name} to work
+ properly without the need for the Console Driver to be configured.
+
+ The
+
+ * ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``,
+
+ * ${appl-needs-simple-console-driver:/name}, and
+
+ * ${appl-needs-simple-task-console-driver:/name}
+
+ configuration options are mutually exclusive.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-framebuffer-driver.yml b/spec/acfg/if/appl-needs-framebuffer-driver.yml
new file mode 100644
index 00000000..654b5a2d
--- /dev/null
+++ b/spec/acfg/if/appl-needs-framebuffer-driver.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Frame Buffer Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
+notes: |
+ Most BSPs do not include support for a Frame Buffer Driver. This is
+ because many boards do not include the required hardware.
+
+ If this option is defined and the BSP does not have this device driver, then
+ the user will get a link time error for an undefined symbol.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-ide-driver.yml b/spec/acfg/if/appl-needs-ide-driver.yml
new file mode 100644
index 00000000..17969fea
--- /dev/null
+++ b/spec/acfg/if/appl-needs-ide-driver.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the IDE Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+notes: |
+ Most BSPs do not include support for an IDE Driver.
+
+ If this option is defined and the BSP does not have this device driver, then
+ the user will get a link time error for an undefined symbol.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-libblock.yml b/spec/acfg/if/appl-needs-libblock.yml
new file mode 100644
index 00000000..dfbaa333
--- /dev/null
+++ b/spec/acfg/if/appl-needs-libblock.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Block Device Cache is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
+notes: |
+ Each option of the Block Device Cache (bdbuf) configuration can be explicitly
+ set by the user with the configuration options below. The Block Device Cache
+ is used for example by the RFS and DOSFS filesystems.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-null-driver.yml b/spec/acfg/if/appl-needs-null-driver.yml
new file mode 100644
index 00000000..b7f5722d
--- /dev/null
+++ b/spec/acfg/if/appl-needs-null-driver.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the :file:`/dev/null`
+ Driver is initialized during system initialization.
+enabled-by: true
+index-entries:
+- /dev/null
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+notes: |
+ This device driver is supported by all BSPs.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-rtc-driver.yml b/spec/acfg/if/appl-needs-rtc-driver.yml
new file mode 100644
index 00000000..bb0bfd3e
--- /dev/null
+++ b/spec/acfg/if/appl-needs-rtc-driver.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Real-Time Clock Driver
+ is initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
+notes: |
+ Most BSPs do not include support for a real-time clock (RTC). This is because
+ many boards do not include the required hardware.
+
+ If this is defined and the BSP does not have this device driver, then the
+ user will get a link time error for an undefined symbol.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-simple-console-driver.yml b/spec/acfg/if/appl-needs-simple-console-driver.yml
new file mode 100644
index 00000000..2c991d67
--- /dev/null
+++ b/spec/acfg/if/appl-needs-simple-console-driver.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Simple Console Driver
+ is initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
+notes: |
+ This device driver is responsible for providing the :file:`/dev/console`
+ device file. This device is used to initialize the standard input, output,
+ and error file descriptors.
+
+ This device driver reads via ${/rtems/io/if/getchark:/name}.
+
+ This device driver writes via ${/rtems/io/if/putc:/name}.
+
+ The Termios framework is not used. There is no support to change device
+ settings, e.g. baud, stop bits, parity, etc.
+
+ The
+
+ * ${appl-needs-console-driver:/name},
+
+ * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``, and
+
+ * ${appl-needs-simple-task-console-driver:/name}
+
+ configuration options are mutually exclusive.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-simple-task-console-driver.yml b/spec/acfg/if/appl-needs-simple-task-console-driver.yml
new file mode 100644
index 00000000..8f3f4325
--- /dev/null
+++ b/spec/acfg/if/appl-needs-simple-task-console-driver.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Simple Task Console
+ Driver is initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
+notes: |
+ This device driver is responsible for providing the :file:`/dev/console`
+ device file. This device is used to initialize the standard input, output,
+ and error file descriptors.
+
+ This device driver reads via ${/rtems/io/if/getchark:/name}.
+
+ This device driver writes into a write buffer. The count of characters
+ written into the write buffer is returned. It might be less than the
+ requested count, in case the write buffer is full. The write is
+ non-blocking and may be called from interrupt context. A dedicated task
+ reads from the write buffer and outputs the characters via
+ ${/rtems/io/if/putc:/name}. This task runs with the least important priority.
+ The write buffer size is 2047 characters and it is not configurable.
+
+ Use ``fsync( STDOUT_FILENO )`` or ``fdatasync( STDOUT_FILENO )`` to drain the
+ write buffer.
+
+ The Termios framework is not used. There is no support to change device
+ settings, e.g. baud, stop bits, parity, etc.
+
+ The
+
+ * ${appl-needs-console-driver:/name},
+
+ * ${appl-needs-simple-console-driver:/name}, and
+
+ * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``
+
+ configuration options are mutually exclusive.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-stub-driver.yml b/spec/acfg/if/appl-needs-stub-driver.yml
new file mode 100644
index 00000000..36654cfe
--- /dev/null
+++ b/spec/acfg/if/appl-needs-stub-driver.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Stub Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+notes: |
+ This device driver simply provides entry points that return successful and
+ is primarily a test fixture. It is supported by all BSPs.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-timer-driver.yml b/spec/acfg/if/appl-needs-timer-driver.yml
new file mode 100644
index 00000000..5feff510
--- /dev/null
+++ b/spec/acfg/if/appl-needs-timer-driver.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Benchmark Timer Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+notes: |
+ The Benchmark Timer Driver is intended for the benchmark tests of the RTEMS
+ Testsuite. Applications should not use this driver.
+
+ The application shall define exactly one of the following configuration options
+
+ * ${appl-needs-clock-driver:/name},
+
+ * ${appl-does-not-need-clock-driver:/name}, or
+
+ * ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER``,
+
+ otherwise a compile time error will occur.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-watchdog-driver.yml b/spec/acfg/if/appl-needs-watchdog-driver.yml
new file mode 100644
index 00000000..63053c98
--- /dev/null
+++ b/spec/acfg/if/appl-needs-watchdog-driver.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the Watchdog Driver is
+ initialized during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
+notes: |
+ Most BSPs do not include support for a watchdog device driver. This is
+ because many boards do not include the required hardware.
+
+ If this is defined and the BSP does not have this device driver, then the
+ user will get a link time error for an undefined symbol.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-needs-zero-driver.yml b/spec/acfg/if/appl-needs-zero-driver.yml
new file mode 100644
index 00000000..d69f3489
--- /dev/null
+++ b/spec/acfg/if/appl-needs-zero-driver.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the :file:`/dev/zero`
+ Driver is initialized during system initialization.
+enabled-by: true
+index-entries:
+- /dev/zero
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
+notes: |
+ This device driver is supported by all BSPs.
+text: ''
+type: interface
diff --git a/spec/acfg/if/appl-prerequisite-drivers.yml b/spec/acfg/if/appl-prerequisite-drivers.yml
new file mode 100644
index 00000000..13f98c9e
--- /dev/null
+++ b/spec/acfg/if/appl-prerequisite-drivers.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a list of initializers for
+ structures of type ${/rtems/io/if/driver-address-table:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is the empty list.
+description: |
+ The value of this configuration option is used to initialize the Device
+ Driver Table.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+name: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
+notes: |
+ The value of this configuration option is placed after the entries defined by
+ ${bsp-prerequisite-drivers:/name} and before all other device driver
+ configuration options.
+
+ See ${appl-extra-drivers:/name} for an alternative placement
+ of application device driver initializers.
+text: ''
+type: interface
diff --git a/spec/acfg/if/ata-driver-task-priority.yml b/spec/acfg/if/ata-driver-task-priority.yml
new file mode 100644
index 00000000..f277c07b
--- /dev/null
+++ b/spec/acfg/if/ata-driver-task-priority.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: 140
+description: |
+ The value of this configuration option defines the ATA task priority.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+- role: constraint
+ uid: constraint-prioclassic
+name: CONFIGURE_ATA_DRIVER_TASK_PRIORITY
+notes: |
+ This configuration option is only evaluated if the configuration option
+ ${appl-needs-ata-driver:/name} is defined.
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-buffer-max-size.yml b/spec/acfg/if/bdbuf-buffer-max-size.yml
new file mode 100644
index 00000000..1c6a4115
--- /dev/null
+++ b/spec/acfg/if/bdbuf-buffer-max-size.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ min: 0
+ texts:
+ - It shall be an integral multiple of ${bdbuf-buffer-min-size:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 4096
+description: |
+ The value of this configuration option defines the maximum size of a buffer
+ in bytes.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_BDBUF_BUFFER_MAX_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-buffer-min-size.yml b/spec/acfg/if/bdbuf-buffer-min-size.yml
new file mode 100644
index 00000000..767a58f4
--- /dev/null
+++ b/spec/acfg/if/bdbuf-buffer-min-size.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 512
+description: |
+ The value of this configuration option defines the minimum size of a buffer
+ in bytes.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_BDBUF_BUFFER_MIN_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-cache-memory-size.yml b/spec/acfg/if/bdbuf-cache-memory-size.yml
new file mode 100644
index 00000000..9c9e52c1
--- /dev/null
+++ b/spec/acfg/if/bdbuf-cache-memory-size.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/size_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 32768
+description: |
+ The value of this configuration option defines the size of the cache memory
+ in bytes.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-max-read-ahead-blocks.yml b/spec/acfg/if/bdbuf-max-read-ahead-blocks.yml
new file mode 100644
index 00000000..32db192e
--- /dev/null
+++ b/spec/acfg/if/bdbuf-max-read-ahead-blocks.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum blocks per
+ read-ahead request.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
+notes: |
+ A value of 0 disables the read-ahead task (default). The read-ahead task
+ will issue speculative read transfers if a sequential access pattern is
+ detected. This can improve the performance on some systems.
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-max-write-blocks.yml b/spec/acfg/if/bdbuf-max-write-blocks.yml
new file mode 100644
index 00000000..a85bcb1f
--- /dev/null
+++ b/spec/acfg/if/bdbuf-max-write-blocks.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 16
+description: |
+ The value of this configuration option defines the maximum blocks per write
+ request.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-read-ahead-task-priority.yml b/spec/acfg/if/bdbuf-read-ahead-task-priority.yml
new file mode 100644
index 00000000..34ed8993
--- /dev/null
+++ b/spec/acfg/if/bdbuf-read-ahead-task-priority.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 15
+description: |
+ The value of this configuration option defines the read-ahead task priority.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+- role: constraint
+ uid: constraint-prioclassic
+name: CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-swapout-block-hold.yml b/spec/acfg/if/bdbuf-swapout-block-hold.yml
new file mode 100644
index 00000000..5a2d5eb3
--- /dev/null
+++ b/spec/acfg/if/bdbuf-swapout-block-hold.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 1000
+description: |
+ The value of this configuration option defines the swapout task maximum block
+ hold time in milliseconds.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_SWAPOUT_BLOCK_HOLD
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-swapout-swap-period.yml b/spec/acfg/if/bdbuf-swapout-swap-period.yml
new file mode 100644
index 00000000..1d679570
--- /dev/null
+++ b/spec/acfg/if/bdbuf-swapout-swap-period.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 250
+description: |
+ The value of this configuration option defines the swapout task swap period
+ in milliseconds.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_SWAPOUT_SWAP_PERIOD
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-swapout-task-priority.yml b/spec/acfg/if/bdbuf-swapout-task-priority.yml
new file mode 100644
index 00000000..82a5dd09
--- /dev/null
+++ b/spec/acfg/if/bdbuf-swapout-task-priority.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 15
+description: |
+ The value of this configuration option defines the swapout task priority.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+- role: constraint
+ uid: constraint-prioclassic
+name: CONFIGURE_SWAPOUT_TASK_PRIORITY
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-swapout-worker-taskp-riority.yml b/spec/acfg/if/bdbuf-swapout-worker-taskp-riority.yml
new file mode 100644
index 00000000..fa942af0
--- /dev/null
+++ b/spec/acfg/if/bdbuf-swapout-worker-taskp-riority.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 15
+description: |
+ The value of this configuration option defines the swapout worker task
+ priority.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+- role: constraint
+ uid: constraint-prioclassic
+name: CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-swapout-worker-tasks.yml b/spec/acfg/if/bdbuf-swapout-worker-tasks.yml
new file mode 100644
index 00000000..5d1a0799
--- /dev/null
+++ b/spec/acfg/if/bdbuf-swapout-worker-tasks.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the swapout worker task count.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+name: CONFIGURE_SWAPOUT_WORKER_TASKS
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bdbuf-task-stack-size.yml b/spec/acfg/if/bdbuf-task-stack-size.yml
new file mode 100644
index 00000000..7d9727f3
--- /dev/null
+++ b/spec/acfg/if/bdbuf-task-stack-size.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ min: ${min-task-stack-size:/name}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: ${/rtems/task/if/minimum-stack-size:/name}
+description: |
+ The value of this configuration option defines the task stack size of the
+ Block Device Cache tasks in bytes.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bdbuf
+- role: constraint
+ uid: constraint-stackspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_BDBUF_TASK_STACK_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bsp-idle-task-body.yml b/spec/acfg/if/bsp-idle-task-body.yml
new file mode 100644
index 00000000..ff8cd034
--- /dev/null
+++ b/spec/acfg/if/bsp-idle-task-body.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be defined to a valid function
+ pointer of the type ``void *( *idle_body )( uintptr_t )``.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is BSP-specific.
+description: |
+ If
+
+ * this configuration option is defined by the BSP
+
+ * and ${disable-bsp-settings:/name} is undefined,
+
+ then the value of this configuration option defines the default value of
+ ${idle-task-body:/name}.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bsp
+name: BSP_IDLE_TASK_BODY
+notes: |
+ As it has knowledge of the specific CPU model, system controller logic, and
+ peripheral buses, a BSP-specific IDLE task may be capable of turning
+ components off to save power during extended periods of no task activity.
+text: ''
+type: interface
diff --git a/spec/acfg/if/bsp-idle-task-stack-size.yml b/spec/acfg/if/bsp-idle-task-stack-size.yml
new file mode 100644
index 00000000..63e9111e
--- /dev/null
+++ b/spec/acfg/if/bsp-idle-task-stack-size.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is BSP-specific.
+description: |
+ If
+
+ * this configuration option is defined by the BSP
+
+ * and ${disable-bsp-settings:/name} is undefined,
+
+ then the value of this configuration option defines the default value of
+ ${idle-task-stack-size:/name}.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bsp
+- role: constraint
+ uid: constraint-idlestackarea
+- role: constraint
+ uid: constraint-bspappmin
+name: BSP_IDLE_TASK_STACK_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bsp-initial-extension.yml b/spec/acfg/if/bsp-initial-extension.yml
new file mode 100644
index 00000000..9fb2b3ab
--- /dev/null
+++ b/spec/acfg/if/bsp-initial-extension.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a list of initializers for
+ structures of type ${/rtems/userext/if/table:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is BSP-specific.
+description: |
+ If
+
+ * this configuration option is defined by the BSP
+
+ * and ${disable-bsp-settings:/name} is undefined,
+
+ then the value of this configuration option is used to initialize the table
+ of initial user extensions.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bsp
+name: BSP_INITIAL_EXTENSION
+notes: |
+ The value of this configuration option is placed after the entries of all
+ other initial user extensions.
+text: ''
+type: interface
diff --git a/spec/acfg/if/bsp-interrupt-stack-size.yml b/spec/acfg/if/bsp-interrupt-stack-size.yml
new file mode 100644
index 00000000..82edfaa1
--- /dev/null
+++ b/spec/acfg/if/bsp-interrupt-stack-size.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is BSP-specific.
+description: |
+ If
+
+ * this configuration option is defined by the BSP
+
+ * and ${disable-bsp-settings:/name} is undefined,
+
+ then the value of this configuration option defines the default value of
+ ${interrupt-stack-size:/name}.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bsp
+- role: constraint
+ uid: constraint-isrstackalign
+- role: constraint
+ uid: constraint-isrstackarea
+- role: constraint
+ uid: constraint-bspappmin
+name: BSP_INTERRUPT_STACK_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/bsp-prerequisite-drivers.yml b/spec/acfg/if/bsp-prerequisite-drivers.yml
new file mode 100644
index 00000000..6e7eb974
--- /dev/null
+++ b/spec/acfg/if/bsp-prerequisite-drivers.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a list of initializers for
+ structures of type ${/rtems/userext/if/table:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is BSP-specific.
+description: |
+ If
+
+ * this configuration option is defined by the BSP
+
+ * and ${disable-bsp-settings:/name} is undefined,
+
+ then the value of this configuration option is used to initialize the table
+ of initial user extensions.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bsp
+name: CONFIGURE_BSP_PREREQUISITE_DRIVERS
+notes: |
+ The value of this configuration option is placed before the entries of all
+ other initial user extensions (including
+ ${appl-prerequisite-drivers:/name}).
+text: ''
+type: interface
diff --git a/spec/acfg/if/cbs-max-servers.yml b/spec/acfg/if/cbs-max-servers.yml
new file mode 100644
index 00000000..41eda107
--- /dev/null
+++ b/spec/acfg/if/cbs-max-servers.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/size_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: ${max-tasks:/name}
+description: |
+ The value of this configuration option defines the maximum number Constant
+ Bandwidth Servers that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_CBS_MAXIMUM_SERVERS
+notes: |
+ This configuration option is only evaluated if the configuration option
+ ${scheduler-cbs:/name} is defined.
+text: ''
+type: interface
diff --git a/spec/acfg/if/constraint-bspappmin.yml b/spec/acfg/if/constraint-bspappmin.yml
new file mode 100644
index 00000000..0cebb9b6
--- /dev/null
+++ b/spec/acfg/if/constraint-bspappmin.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be greater than or equal to a
+ BSP-specific and application-specific minimum value.
+type: constraint
diff --git a/spec/acfg/if/constraint-idlestackarea.yml b/spec/acfg/if/constraint-idlestackarea.yml
new file mode 100644
index 00000000..93301fc5
--- /dev/null
+++ b/spec/acfg/if/constraint-idlestackarea.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be small enough so that the IDLE
+ task stack area calculation carried out by ``<rtems/confdefs.h>`` does not
+ overflow an integer of type ${/c/if/size_t:/name}.
+type: constraint
diff --git a/spec/acfg/if/constraint-isrstackalign.yml b/spec/acfg/if/constraint-isrstackalign.yml
new file mode 100644
index 00000000..0282dfc3
--- /dev/null
+++ b/spec/acfg/if/constraint-isrstackalign.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be aligned according to
+ ${/score/cpu/if/interrupt-stack-alignment:/name}.
+type: constraint
diff --git a/spec/acfg/if/constraint-isrstackarea.yml b/spec/acfg/if/constraint-isrstackarea.yml
new file mode 100644
index 00000000..12821341
--- /dev/null
+++ b/spec/acfg/if/constraint-isrstackarea.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be small enough so that the
+ interrupt stack area calculation carried out by ``<rtems/confdefs.h>`` does
+ not overflow an integer of type ${/c/if/size_t:/name}.
+type: constraint
diff --git a/spec/acfg/if/constraint-memsz.yml b/spec/acfg/if/constraint-memsz.yml
new file mode 100644
index 00000000..b3a2204e
--- /dev/null
+++ b/spec/acfg/if/constraint-memsz.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+type: constraint
diff --git a/spec/acfg/if/constraint-posix.yml b/spec/acfg/if/constraint-posix.yml
new file mode 100644
index 00000000..fa76c0a3
--- /dev/null
+++ b/spec/acfg/if/constraint-posix.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be zero if the POSIX API is not
+ enabled (e.g. RTEMS was built without the ``--enable-posix`` build
+ configuration option). Otherwise a compile time error in the configuration
+ file will occur.
+type: constraint
diff --git a/spec/acfg/if/constraint-prioclassic.yml b/spec/acfg/if/constraint-prioclassic.yml
new file mode 100644
index 00000000..dead5852
--- /dev/null
+++ b/spec/acfg/if/constraint-prioclassic.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be a valid Classic API task
+ priority. The set of valid task priorities is scheduler-specific.
+type: constraint
diff --git a/spec/acfg/if/constraint-stackspace.yml b/spec/acfg/if/constraint-stackspace.yml
new file mode 100644
index 00000000..e1110ab4
--- /dev/null
+++ b/spec/acfg/if/constraint-stackspace.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be small enough so that the task
+ stack space calculation carried out by ``<rtems/confdefs.h>`` does not
+ overflow an integer of type ${/c/if/uintptr_t:/name}.
+type: constraint
diff --git a/spec/acfg/if/constraint-unlimited.yml b/spec/acfg/if/constraint-unlimited.yml
new file mode 100644
index 00000000..c0ca1f4f
--- /dev/null
+++ b/spec/acfg/if/constraint-unlimited.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option may be defined through
+ ${/rtems/config/if/resource-unlimited:/name} the enable unlimited objects for this
+ object class, if the value passed to ${/rtems/config/if/resource-unlimited:/name}
+ satisfies all other constraints of this configuration option.
+type: constraint
diff --git a/spec/acfg/if/constraint-wkspace.yml b/spec/acfg/if/constraint-wkspace.yml
new file mode 100644
index 00000000..826721cc
--- /dev/null
+++ b/spec/acfg/if/constraint-wkspace.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+ The value of this configuration option shall be small enough so that the
+ RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
+ not overflow an integer of type ${/c/if/uintptr_t:/name}.
+type: constraint
diff --git a/spec/acfg/if/dirty-memory.yml b/spec/acfg/if/dirty-memory.yml
new file mode 100644
index 00000000..1813d2bc
--- /dev/null
+++ b/spec/acfg/if/dirty-memory.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the memory areas used for
+ the RTEMS Workspace and the C Program Heap are dirtied with a ``0xCF`` byte
+ pattern during system initialization.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_DIRTY_MEMORY
+notes: |
+ Dirtying memory can add significantly to system initialization time. It may
+ assist in finding code that incorrectly assumes the contents of free memory
+ areas is cleared to zero during system initialization. In case
+ ${zero-workspace-automatically:/name} is also defined, then the
+ memory is first dirtied and then zeroed.
+
+ See also ${malloc-dirty:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/disable-bsp-settings.yml b/spec/acfg/if/disable-bsp-settings.yml
new file mode 100644
index 00000000..84b376c0
--- /dev/null
+++ b/spec/acfg/if/disable-bsp-settings.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the following BSP related
+ configuration options are undefined:
+
+ * ${bsp-idle-task-body:/name}
+
+ * ${bsp-idle-task-stack-size:/name}
+
+ * ${bsp-initial-extension:/name}
+
+ * ${bsp-interrupt-stack-size:/name}
+
+ * ${bsp-prerequisite-drivers:/name}
+
+ * ${malloc-bsp-supports-sbrk:/name}
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bsp
+name: CONFIGURE_DISABLE_BSP_SETTINGS
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/disable-newlib-reentrancy.yml b/spec/acfg/if/disable-newlib-reentrancy.yml
new file mode 100644
index 00000000..530a1b77
--- /dev/null
+++ b/spec/acfg/if/disable-newlib-reentrancy.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the Newlib reentrancy
+ support per thread is disabled and a global reentrancy structure is used.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+notes: |
+ You can enable this option to reduce the size of the :term:`TCB`. Use this
+ option with care, since it can lead to race conditions and undefined system
+ behaviour. For example, ${/c/if/errno:/name} is no longer a thread-local
+ variable if this option is enabled.
+text: ''
+type: interface
diff --git a/spec/acfg/if/executive-ram-size.yml b/spec/acfg/if/executive-ram-size.yml
new file mode 100644
index 00000000..89f4f960
--- /dev/null
+++ b/spec/acfg/if/executive-ram-size.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uintptr_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: |
+ If this configuration option is undefined, then the RTEMS Workspace and task
+ stack space size is calculated by ``<rtems/confdefs.h>`` based on the values
+ configuration options.
+description: |
+ The value of this configuration option defines the RTEMS Workspace size in
+ bytes.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_EXECUTIVE_RAM_SIZE
+notes: |
+ This is an advanced configuration option. Use it only if you know exactly
+ what you are doing.
+text: ''
+type: interface
diff --git a/spec/acfg/if/extra-task-stacks.yml b/spec/acfg/if/extra-task-stacks.yml
new file mode 100644
index 00000000..c9d16774
--- /dev/null
+++ b/spec/acfg/if/extra-task-stacks.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the number of bytes the
+ applications wishes to add to the task stack requirements calculated by
+ ``<rtems/confdefs.h>``.
+enabled-by: true
+index-entries:
+- memory for task tasks
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+- role: constraint
+ uid: constraint-stackspace
+name: CONFIGURE_EXTRA_TASK_STACKS
+notes: |
+ This parameter is very important. If the application creates tasks with
+ stacks larger then the minimum, then that memory is **not** accounted for by
+ ``<rtems/confdefs.h>``.
+text: ''
+type: interface
diff --git a/spec/acfg/if/filesystem-all.yml b/spec/acfg/if/filesystem-all.yml
new file mode 100644
index 00000000..04a578a6
--- /dev/null
+++ b/spec/acfg/if/filesystem-all.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the following
+ configuration options will be defined as well
+
+ * ${filesystem-dosfs:/name},
+
+ * ${filesystem-ftpfs:/name},
+
+ * ${filesystem-imfs:/name},
+
+ * ${filesystem-jffs2:/name},
+
+ * ${filesystem-nfs:/name},
+
+ * ${filesystem-rfs:/name}, and
+
+ * ${filesystem-tftpfs:/name}.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_FILESYSTEM_ALL
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/filesystem-dosfs.yml b/spec/acfg/if/filesystem-dosfs.yml
new file mode 100644
index 00000000..bd69f4cb
--- /dev/null
+++ b/spec/acfg/if/filesystem-dosfs.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the DOS (FAT) filesystem
+ is registered, so that instances of this filesystem can be mounted by the
+ application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_FILESYSTEM_DOSFS
+notes: |
+ This filesystem requires a Block Device Cache configuration, see
+ ${appl-needs-libblock:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/filesystem-ftpfs.yml b/spec/acfg/if/filesystem-ftpfs.yml
new file mode 100644
index 00000000..aca6c3f5
--- /dev/null
+++ b/spec/acfg/if/filesystem-ftpfs.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the FTP filesystem (FTP
+ client) is registered, so that instances of this filesystem
+ can be mounted by the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_FILESYSTEM_FTPFS
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/filesystem-imfs.yml b/spec/acfg/if/filesystem-imfs.yml
new file mode 100644
index 00000000..dfeb3469
--- /dev/null
+++ b/spec/acfg/if/filesystem-imfs.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the In-Memory Filesystem
+ (IMFS) is registered, so that instances of this filesystem can be mounted by
+ the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_FILESYSTEM_IMFS
+notes: |
+ Applications will rarely need this configuration option. This configuration
+ option is intended for test programs. You do not need to define this
+ configuration option for the base filesystem (also known as root filesystem).
+text: ''
+type: interface
diff --git a/spec/acfg/if/filesystem-jffs2.yml b/spec/acfg/if/filesystem-jffs2.yml
new file mode 100644
index 00000000..ca9c5b01
--- /dev/null
+++ b/spec/acfg/if/filesystem-jffs2.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the JFFS2 filesystem
+ is registered, so that instances of this filesystem can be mounted by the
+ application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_FILESYSTEM_JFFS2
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/filesystem-nfs.yml b/spec/acfg/if/filesystem-nfs.yml
new file mode 100644
index 00000000..a846229b
--- /dev/null
+++ b/spec/acfg/if/filesystem-nfs.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the Network Filesystem
+ (NFS) client is registered, so that instances of this filesystem can be
+ mounted by the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_FILESYSTEM_NFS
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/filesystem-rfs.yml b/spec/acfg/if/filesystem-rfs.yml
new file mode 100644
index 00000000..af9d4f26
--- /dev/null
+++ b/spec/acfg/if/filesystem-rfs.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the RTEMS Filesystem (RFS)
+ is registered, so that instances of this filesystem can be mounted by the
+ application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_FILESYSTEM_RFS
+notes: |
+ This filesystem requires a Block Device Cache configuration, see
+ ${appl-needs-libblock:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/filesystem-tftpfs.yml b/spec/acfg/if/filesystem-tftpfs.yml
new file mode 100644
index 00000000..9ab6d4d2
--- /dev/null
+++ b/spec/acfg/if/filesystem-tftpfs.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the TFTP filesystem (TFTP
+ client) is registered, so that instances of this filesystem can be mounted by
+ the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_FILESYSTEM_TFTPFS
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-bdbuf.yml b/spec/acfg/if/group-bdbuf.yml
new file mode 100644
index 00000000..1824fa9e
--- /dev/null
+++ b/spec/acfg/if/group-bdbuf.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the Block Device Cache
+ (bdbuf).
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Block Device Cache Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-bsp.yml b/spec/acfg/if/group-bsp.yml
new file mode 100644
index 00000000..239cec43
--- /dev/null
+++ b/spec/acfg/if/group-bsp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the BSP. Some
+ configuration options may have a BSP-specific setting which is defined by
+ ``<bsp.h>``. The BSP-specific settings can be disabled by the
+ ${disable-bsp-settings:/name} configuration option.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: BSP Related Configuration Options
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-classic.yml b/spec/acfg/if/group-classic.yml
new file mode 100644
index 00000000..8b33606b
--- /dev/null
+++ b/spec/acfg/if/group-classic.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the Classic API.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Classic API Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-classicinit.yml b/spec/acfg/if/group-classicinit.yml
new file mode 100644
index 00000000..f8786b5d
--- /dev/null
+++ b/spec/acfg/if/group-classicinit.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the Classic API
+ initialization task.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Classic API Initialization Task Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-devdrv.yml b/spec/acfg/if/group-devdrv.yml
new file mode 100644
index 00000000..264d9903
--- /dev/null
+++ b/spec/acfg/if/group-devdrv.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the device drivers.
+ Note that network device drivers are not covered by the following options.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Device Driver Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-eventrecord.yml b/spec/acfg/if/group-eventrecord.yml
new file mode 100644
index 00000000..5fe6e6ee
--- /dev/null
+++ b/spec/acfg/if/group-eventrecord.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ This section describes configuration options related to the event recording.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Event Recording Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-filesystem.yml b/spec/acfg/if/group-filesystem.yml
new file mode 100644
index 00000000..2349b0e4
--- /dev/null
+++ b/spec/acfg/if/group-filesystem.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to filesytems.
+ By default, the In-Memory Filesystem (IMFS) is used as the base filesystem (also
+ known as root filesystem). In order to save some memory for your application,
+ you can disable the filesystem support with the
+ ${appl-disable-filesystem:/name} configuration option.
+ Alternatively, you can strip down the features of the base filesystem with the
+ ${use-miniimfs-as-base-filesystem:/name} and
+ ${use-devfs-as-base-filesystem:/name} configuration options. These
+ three configuration options are mutually exclusive. They are intended for an
+ advanced application configuration.
+
+ Features of the IMFS can be disabled and enabled with the following
+ configuration options:
+
+ * ${imfs-disable-chmod:/name}
+
+ * ${imfs-disable-chown:/name}
+
+ * ${imfs-disable-link:/name}
+
+ * ${imfs-disable-mknod:/name}
+
+ * ${imfs-disable-mknod-file:/name}
+
+ * ${imfs-disable-mount:/name}
+
+ * ${imfs-disable-readdir:/name}
+
+ * ${imfs-disable-readlink:/name}
+
+ * ${imfs-disable-rename:/name}
+
+ * ${imfs-disable-rmnod:/name}
+
+ * ${imfs-disable-symlink:/name}
+
+ * ${imfs-disable-unmount:/name}
+
+ * ${imfs-disable-utime:/name}
+
+ * ${imfs-enable-mkfifo:/name}
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Filesystem Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-general.yml b/spec/acfg/if/group-general.yml
new file mode 100644
index 00000000..ae7598fe
--- /dev/null
+++ b/spec/acfg/if/group-general.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes general system configuration options.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: General System Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-idle.yml b/spec/acfg/if/group-idle.yml
new file mode 100644
index 00000000..ef6bb5f6
--- /dev/null
+++ b/spec/acfg/if/group-idle.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the idle tasks.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Idle Task Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-mpci.yml b/spec/acfg/if/group-mpci.yml
new file mode 100644
index 00000000..5d2209d0
--- /dev/null
+++ b/spec/acfg/if/group-mpci.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes multiprocessing related configuration options. The
+ options are only used if RTEMS was built with the ``--enable-multiprocessing``
+ build configuration option. Additionally, this class of configuration options
+ are only applicable if the configuration option ${mp-appl:/name}
+ is defined. The multiprocessing (MPCI) support must not be confused with the
+ SMP support.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Multiprocessing Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-posix.yml b/spec/acfg/if/group-posix.yml
new file mode 100644
index 00000000..2d1fb9be
--- /dev/null
+++ b/spec/acfg/if/group-posix.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the POSIX API. Most
+ POSIX API objects are available by default since RTEMS 5.1. The queued signals
+ and timers are only available if RTEMS was built with the ``--enable-posix``
+ build configuration option.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: POSIX API Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-posixinit.yml b/spec/acfg/if/group-posixinit.yml
new file mode 100644
index 00000000..b12fed6e
--- /dev/null
+++ b/spec/acfg/if/group-posixinit.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the POSIX
+ initialization thread.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: POSIX Initialization Thread Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-schedgeneral.yml b/spec/acfg/if/group-schedgeneral.yml
new file mode 100644
index 00000000..06581199
--- /dev/null
+++ b/spec/acfg/if/group-schedgeneral.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to selecting a
+ scheduling algorithm for an application. A scheduler configuration is optional
+ and only necessary in very specific circumstances. A normal application
+ configuration does not need any of the configuration options described in this
+ section.
+
+ By default, the ${.:/document-reference/scheduler-priority}
+ algorithm is used in uniprocessor configurations. In case SMP is enabled and
+ the configured maximum processors
+ (${max-processors:/name}) is greater
+ than one, then the
+ ${.:/document-reference/scheduler-smp-edf}
+ is selected as the default scheduler algorithm.
+
+ For the schedulers provided by RTEMS (see ${.:/document-reference/scheduler-concepts}), the
+ configuration is straightforward. All that is required is to define the
+ configuration option which specifies which scheduler you want for in your
+ application.
+
+ The pluggable scheduler interface also enables the user to provide their own
+ scheduling algorithm. If you choose to do this, you must define multiple
+ configuration option.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: General Scheduler Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/group-stackalloc.yml b/spec/acfg/if/group-stackalloc.yml
new file mode 100644
index 00000000..394fb382
--- /dev/null
+++ b/spec/acfg/if/group-stackalloc.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ This section describes configuration options related to the task stack
+ allocator. RTEMS allows the application or BSP to define its own allocation
+ and deallocation methods for task stacks. This can be used to place task stacks
+ in special areas of memory or to utilize a Memory Management Unit so that stack
+ overflows are detected in hardware.
+enabled-by: true
+interface-type: appl-config-group
+links:
+- role: requirement-refinement
+ uid: ../../req/applconfig
+name: Task Stack Allocator Configuration
+text: ''
+type: interface
diff --git a/spec/acfg/if/idle-task-body.yml b/spec/acfg/if/idle-task-body.yml
new file mode 100644
index 00000000..82fc7a4f
--- /dev/null
+++ b/spec/acfg/if/idle-task-body.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be defined to a valid function
+ pointer of the type ``void *( *idle_body )( uintptr_t )``.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ If ${bsp-idle-task-body:/name} is defined, then this will be the default value,
+ otherwise the default value is ``_CPU_Thread_Idle_body``.
+description: |
+ The value of this configuration option initializes the IDLE thread body.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-idle
+name: CONFIGURE_IDLE_TASK_BODY
+notes: |
+ IDLE threads shall not block. A blocking IDLE thread results in undefined
+ system behaviour because the scheduler assume that at least one ready thread
+ exists.
+
+ IDLE threads can be used to initialize the application, see configuration
+ option ${idle-task-init-appl:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/idle-task-init-appl.yml b/spec/acfg/if/idle-task-init-appl.yml
new file mode 100644
index 00000000..ad5f31da
--- /dev/null
+++ b/spec/acfg/if/idle-task-init-appl.yml
@@ -0,0 +1,43 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the user is assumed to
+ provide one or more initialization tasks.
+description: |
+ This configuration option is defined to indicate that the user has configured
+ **no** user initialization tasks or threads and that the user provided IDLE
+ task will perform application initialization and then transform itself into
+ an IDLE task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-idle
+name: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
+notes: |
+ If you use this option be careful, the user IDLE task **cannot** block at all
+ during the initialization sequence. Further, once application
+ initialization is complete, it shall make itself preemptible and enter an idle
+ body loop.
+
+ The IDLE task shall run at the lowest priority of all tasks in the system.
+
+ If this configuration option is defined, then it is mandatory to configure a
+ user IDLE task with the ${idle-task-body:/name} configuration option,
+ otherwise a compile time error in the configuration file will occur.
+
+ The application shall define exactly one of the following configuration
+ options
+
+ * ${rtems-init-tasks-table:/name},
+
+ * ${posix-init-thread-table:/name}, or
+
+ * ``CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION``
+
+ otherwise a compile time error in the configuration file will occur.
+text: ''
+type: interface
diff --git a/spec/acfg/if/idle-task-stack-size.yml b/spec/acfg/if/idle-task-stack-size.yml
new file mode 100644
index 00000000..9053a93b
--- /dev/null
+++ b/spec/acfg/if/idle-task-stack-size.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: ${min-task-stack-size:/name}
+description: |
+ The value of this configuration option defines the task stack size for an
+ IDLE task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-idle
+- role: constraint
+ uid: constraint-idlestackarea
+- role: constraint
+ uid: constraint-bspappmin
+name: CONFIGURE_IDLE_TASK_STACK_SIZE
+notes: |
+ In SMP configurations, there is one IDLE task per configured processor, see
+ ${max-processors:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-chmod.yml b/spec/acfg/if/imfs-disable-chmod.yml
new file mode 100644
index 00000000..15de46c1
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-chmod.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ changing the mode of files.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support changing the mode of files (no support for ${/c/if/chmod:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_CHMOD
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-chown.yml b/spec/acfg/if/imfs-disable-chown.yml
new file mode 100644
index 00000000..bdfaf013
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-chown.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ changing the ownership of files.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support changing the ownership of files (no support for ${/c/if/chown:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_CHOWN
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-link.yml b/spec/acfg/if/imfs-disable-link.yml
new file mode 100644
index 00000000..1b2e2eeb
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-link.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports hard
+ links.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support hard links (no support for ${/c/if/link:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_LINK
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-mknod-device.yml b/spec/acfg/if/imfs-disable-mknod-device.yml
new file mode 100644
index 00000000..332c16ab
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-mknod-device.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: |
+ If this configuration option is undefined, then the root IMFS supports making
+ device files.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support making device files.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-mknod-file.yml b/spec/acfg/if/imfs-disable-mknod-file.yml
new file mode 100644
index 00000000..952d7b77
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-mknod-file.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports making
+ regular files.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support making regular files.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_MKNOD_FILE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-mknod.yml b/spec/acfg/if/imfs-disable-mknod.yml
new file mode 100644
index 00000000..24eb5271
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-mknod.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports making
+ files.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support making files (no support for ${/c/if/mknod:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_MKNOD
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-mount.yml b/spec/acfg/if/imfs-disable-mount.yml
new file mode 100644
index 00000000..319fbf32
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-mount.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ mounting other filesystems.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support mounting other filesystems (no support for
+ ${/rtems/io/if/mount:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_MOUNT
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-readdir.yml b/spec/acfg/if/imfs-disable-readdir.yml
new file mode 100644
index 00000000..a8262cfd
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-readdir.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ reading directories.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support reading directories (no support for ${/c/if/readdir:/name}). It is
+ still possible to open files in a directory.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_READDIR
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-readlink.yml b/spec/acfg/if/imfs-disable-readlink.yml
new file mode 100644
index 00000000..85a2383f
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-readlink.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ reading symbolic links.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support reading symbolic links (no support for ${/c/if/readlink:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_READLINK
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-rename.yml b/spec/acfg/if/imfs-disable-rename.yml
new file mode 100644
index 00000000..0a84a35f
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-rename.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ renaming files.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support renaming files (no support for ${/c/if/rename:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_RENAME
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-rmnod.yml b/spec/acfg/if/imfs-disable-rmnod.yml
new file mode 100644
index 00000000..310ef3a1
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-rmnod.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ removing files.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support removing files (no support for ${/c/if/rmnod:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_RMNOD
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-symlink.yml b/spec/acfg/if/imfs-disable-symlink.yml
new file mode 100644
index 00000000..c62c2303
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-symlink.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ creating symbolic links.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support creating symbolic links (no support for ${/c/if/symlink:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_SYMLINK
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-unmount.yml b/spec/acfg/if/imfs-disable-unmount.yml
new file mode 100644
index 00000000..e4518e3a
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-unmount.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ unmounting other filesystems.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support unmounting other filesystems (no support for
+ ${/rtems/io/if/unmount:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_UNMOUNT
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-disable-utime.yml b/spec/acfg/if/imfs-disable-utime.yml
new file mode 100644
index 00000000..adb6268b
--- /dev/null
+++ b/spec/acfg/if/imfs-disable-utime.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS supports
+ changing file times.
+description: |
+ In case this configuration option is defined, then the root IMFS does not
+ support changing file times (no support for ${/c/if/utime:/name}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_DISABLE_UTIME
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-enable-mkfifo.yml b/spec/acfg/if/imfs-enable-mkfifo.yml
new file mode 100644
index 00000000..366f4384
--- /dev/null
+++ b/spec/acfg/if/imfs-enable-mkfifo.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the root IMFS does not
+ support making FIFOs (no support for ${/c/if/mkfifo:/name}).
+description: |
+ In case this configuration option is defined, then the root IMFS supports
+ making FIFOs.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_ENABLE_MKFIFO
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/imfs-memfile-bytes-per-block.yml b/spec/acfg/if/imfs-memfile-bytes-per-block.yml
new file mode 100644
index 00000000..7f7ed899
--- /dev/null
+++ b/spec/acfg/if/imfs-memfile-bytes-per-block.yml
@@ -0,0 +1,51 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ set:
+ - 16
+ - 32
+ - 64
+ - 128
+ - 256
+ - 512
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 128
+description: |
+ The value of this configuration option defines the block size for in-memory
+ files managed by the IMFS.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
+notes: |
+ The configured block size has two impacts. The first is the average amount of
+ unused memory in the last block of each file. For example, when the block
+ size is 512, on average one-half of the last block of each file will remain
+ unused and the memory is wasted. In contrast, when the block size is 16, the
+ average unused memory per file is only 8 bytes. However, it requires more
+ allocations for the same size file and thus more overhead per block for the
+ dynamic memory management.
+
+ Second, the block size has an impact on the maximum size file that can be
+ stored in the IMFS. With smaller block size, the maximum file size is
+ correspondingly smaller. The following shows the maximum file size possible
+ based on the configured block size:
+
+ * when the block size is 16 bytes, the maximum file size is 1,328 bytes.
+
+ * when the block size is 32 bytes, the maximum file size is 18,656 bytes.
+
+ * when the block size is 64 bytes, the maximum file size is 279,488 bytes.
+
+ * when the block size is 128 bytes, the maximum file size is 4,329,344 bytes.
+
+ * when the block size is 256 bytes, the maximum file size is 68,173,568 bytes.
+
+ * when the block size is 512 bytes, the maximum file size is 1,082,195,456
+ bytes.
+text: ''
+type: interface
diff --git a/spec/acfg/if/init-task-arguments.yml b/spec/acfg/if/init-task-arguments.yml
new file mode 100644
index 00000000..07fea7e9
--- /dev/null
+++ b/spec/acfg/if/init-task-arguments.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a valid integer of type
+ ${/rtems/task/if/argument:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines task argument of the Classic
+ API initialization task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classicinit
+name: CONFIGURE_INIT_TASK_ARGUMENTS
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/init-task-attributes.yml b/spec/acfg/if/init-task-attributes.yml
new file mode 100644
index 00000000..606c221b
--- /dev/null
+++ b/spec/acfg/if/init-task-attributes.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a valid task attribute set.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: ${/rtems/attr/if/default:/name}
+description: |
+ The value of this configuration option defines the task attributes of the
+ Classic API initialization task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classicinit
+name: CONFIGURE_INIT_TASK_ATTRIBUTES
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/init-task-entrypoint.yml b/spec/acfg/if/init-task-entrypoint.yml
new file mode 100644
index 00000000..2b5813dc
--- /dev/null
+++ b/spec/acfg/if/init-task-entrypoint.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be defined to a valid function
+ pointer of the type ``void ( *entry_point )( rtems_task_argument )``.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is ``Init``.
+description: |
+ The value of this configuration option initializes the entry point of the
+ Classic API initialization task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classicinit
+name: CONFIGURE_INIT_TASK_ENTRY_POINT
+notes: |
+ The application shall provide the function referenced by this configuration
+ option.
+text: ''
+type: interface
diff --git a/spec/acfg/if/init-task-initial-modes.yml b/spec/acfg/if/init-task-initial-modes.yml
new file mode 100644
index 00000000..407a1810
--- /dev/null
+++ b/spec/acfg/if/init-task-initial-modes.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a valid task mode set.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ In SMP configurations, the default value is ${/rtems/mode/if/default:/name}
+ otherwise the default value is ${/rtems/mode/if/no-preempt:/name}.
+description: |
+ The value of this configuration option defines the initial execution mode of
+ the Classic API initialization task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classicinit
+name: CONFIGURE_INIT_TASK_INITIAL_MODES
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/init-task-name.yml b/spec/acfg/if/init-task-name.yml
new file mode 100644
index 00000000..81056b0c
--- /dev/null
+++ b/spec/acfg/if/init-task-name.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a valid integer of type
+ ${/rtems/type/if/name:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
+description: |
+ The value of this configuration option defines the name of the Classic API
+ initialization task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classicinit
+name: CONFIGURE_INIT_TASK_NAME
+notes: |
+ Use ${/rtems/object/if/build-name:/name} to define the task name.
+text: ''
+type: interface
diff --git a/spec/acfg/if/init-task-priority.yml b/spec/acfg/if/init-task-priority.yml
new file mode 100644
index 00000000..f5da6b4f
--- /dev/null
+++ b/spec/acfg/if/init-task-priority.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 1
+description: |
+ The value of this configuration option defines the initial priority of the
+ Classic API initialization task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classicinit
+- role: constraint
+ uid: constraint-prioclassic
+name: CONFIGURE_INIT_TASK_PRIORITY
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/init-task-stack-size.yml b/spec/acfg/if/init-task-stack-size.yml
new file mode 100644
index 00000000..8bccea64
--- /dev/null
+++ b/spec/acfg/if/init-task-stack-size.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ min: ${min-task-stack-size:/name}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: ${min-task-stack-size:/name}
+description: |
+ The value of this configuration option defines the task stack size of the
+ Classic API initialization task.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classicinit
+- role: constraint
+ uid: constraint-stackspace
+name: CONFIGURE_INIT_TASK_STACK_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/initial-extensions.yml b/spec/acfg/if/initial-extensions.yml
new file mode 100644
index 00000000..76af433c
--- /dev/null
+++ b/spec/acfg/if/initial-extensions.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a list of initializers for
+ structures of type ${/rtems/userext/if/table:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is the empty list.
+description: |
+ The value of this configuration option is used to initialize the table of
+ initial user extensions.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_INITIAL_EXTENSIONS
+notes: |
+ The value of this configuration option is placed before the entries of
+ ${bsp-initial-extension:/name} and after the entries of all other initial
+ user extensions.
+text: ''
+type: interface
diff --git a/spec/acfg/if/interrupt-stack-size.yml b/spec/acfg/if/interrupt-stack-size.yml
new file mode 100644
index 00000000..75209b5c
--- /dev/null
+++ b/spec/acfg/if/interrupt-stack-size.yml
@@ -0,0 +1,44 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is ${bsp-interrupt-stack-size:/name} in case it is defined,
+ otherwise the default value is ${/score/cpu/if/stack-minimum-size:/name}.
+description: |
+ The value of this configuration option defines the size of an interrupt stack
+ in bytes.
+enabled-by: true
+index-entries:
+- interrupt stack size
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+- role: constraint
+ uid: constraint-isrstackalign
+- role: constraint
+ uid: constraint-isrstackarea
+- role: constraint
+ uid: constraint-bspappmin
+name: CONFIGURE_INTERRUPT_STACK_SIZE
+notes: |
+ There is one interrupt stack available for each configured processor
+ (${max-processors:/name}). The interrupt stack areas are
+ statically allocated in a special linker section (``.rtemsstack.interrupt``).
+ The placement of this linker section is BSP-specific.
+
+ Some BSPs use the interrupt stack as the initialization stack which is used
+ to perform the sequential system initialization before the multithreading
+ is started.
+
+ The interrupt stacks are covered by the stack checker, see
+ ${stack-checker-enabled:/name}. However, using a too small interrupt stack
+ size may still result in undefined behaviour.
+
+ In releases before RTEMS 5.1 the default value was
+ ${min-task-stack-size:/name} instead of
+ ${/score/cpu/if/stack-minimum-size:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/malloc-bsp-supports-sbrk.yml b/spec/acfg/if/malloc-bsp-supports-sbrk.yml
new file mode 100644
index 00000000..31235866
--- /dev/null
+++ b/spec/acfg/if/malloc-bsp-supports-sbrk.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ If
+
+ * this configuration option is defined by the BSP
+
+ * and ${disable-bsp-settings:/name} is undefined,
+
+ then not all memory is made available to the C Program Heap immediately at
+ system initialization time. When ${/c/if/malloc:/name} or other standard
+ memory allocation functions are unable to allocate memory, they will call the
+ BSP supplied ${/c/if/sbrk:/name} function to obtain more memory.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-bsp
+name: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
+notes: |
+ This option should not be defined by the application. Only the BSP knows how
+ it allocates memory to the C Program Heap.
+text: ''
+type: interface
diff --git a/spec/acfg/if/malloc-dirty.yml b/spec/acfg/if/malloc-dirty.yml
new file mode 100644
index 00000000..704bc046
--- /dev/null
+++ b/spec/acfg/if/malloc-dirty.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then each memory area returned
+ by C Program Heap allocator functions such as ${/c/if/malloc:/name} is dirtied
+ with a ``0xCF`` byte pattern before it is handed over to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_MALLOC_DIRTY
+notes: |
+ The dirtying performed by this option is carried out for each successful
+ memory allocation from the C Program Heap in contrast to
+ ${dirty-memory:/name} which dirties the memory only once during the
+ system initialization.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-barriers.yml b/spec/acfg/if/max-barriers.yml
new file mode 100644
index 00000000..129e552e
--- /dev/null
+++ b/spec/acfg/if/max-barriers.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Barriers that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_BARRIERS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-drivers.yml b/spec/acfg/if/max-drivers.yml
new file mode 100644
index 00000000..244419c2
--- /dev/null
+++ b/spec/acfg/if/max-drivers.yml
@@ -0,0 +1,65 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/size_max:/name}
+ texts:
+ - |
+ It shall be greater than or equal than the number of statically configured
+ device drivers.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ This is computed by default, and is set to the number of statically
+ configured device drivers configured using the following configuration
+ options:
+
+ * ${appl-extra-drivers:/name}
+
+ * ${appl-needs-ata-driver:/name}
+
+ * ${appl-needs-clock-driver:/name}
+
+ * ${appl-needs-console-driver:/name}
+
+ * ${appl-needs-framebuffer-driver:/name}
+
+ * ${appl-needs-ide-driver:/name}
+
+ * ${appl-needs-libblock:/name}
+
+ * ${appl-needs-null-driver:/name}
+
+ * ${appl-needs-rtc-driver:/name}
+
+ * ${appl-needs-simple-console-driver:/name}
+
+ * ${appl-needs-simple-task-console-driver:/name}
+
+ * ${appl-needs-stub-driver:/name}
+
+ * ${appl-needs-timer-driver:/name}
+
+ * ${appl-needs-watchdog-driver:/name}
+
+ * ${appl-needs-zero-driver:/name}
+
+ * ${appl-prerequisite-drivers:/name}
+
+ * ${bsp-prerequisite-drivers:/name}
+description: |
+ The value of this configuration option defines the number of device drivers.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-devdrv
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_DRIVERS
+notes: |
+ If the application will dynamically install device drivers, then the
+ configuration option value shall be larger than the number of statically
+ configured device drivers.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-file-descriptors.yml b/spec/acfg/if/max-file-descriptors.yml
new file mode 100644
index 00000000..ceb6260a
--- /dev/null
+++ b/spec/acfg/if/max-file-descriptors.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/size_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 3
+description: |
+ The value of this configuration option defines the maximum number of file
+ like objects that can be concurrently open.
+enabled-by: true
+index-entries:
+- maximum file descriptors
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
+notes: |
+ The default value of three file descriptors allows RTEMS to support standard
+ input, output, and error I/O streams on :file:`/dev/console`.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-message-queues.yml b/spec/acfg/if/max-message-queues.yml
new file mode 100644
index 00000000..ad471a5c
--- /dev/null
+++ b/spec/acfg/if/max-message-queues.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Message Queues that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}. You have to account for the memory used to
+ store the messages of each message queue, see
+ ${message-buffer-memory:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-partitions.yml b/spec/acfg/if/max-partitions.yml
new file mode 100644
index 00000000..ef151f1c
--- /dev/null
+++ b/spec/acfg/if/max-partitions.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Partitions that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_PARTITIONS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-periods.yml b/spec/acfg/if/max-periods.yml
new file mode 100644
index 00000000..008236dc
--- /dev/null
+++ b/spec/acfg/if/max-periods.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Periods that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_PERIODS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-ports.yml b/spec/acfg/if/max-ports.yml
new file mode 100644
index 00000000..a9617ed8
--- /dev/null
+++ b/spec/acfg/if/max-ports.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Ports that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_PORTS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-posix-key-value-pairs.yml b/spec/acfg/if/max-posix-key-value-pairs.yml
new file mode 100644
index 00000000..73d967c5
--- /dev/null
+++ b/spec/acfg/if/max-posix-key-value-pairs.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is
+ ${max-posix-keys:/name} *
+ ${max-tasks:/name} +
+ ${max-posix-threads:/name}.
+description: |
+ The value of this configuration option defines the maximum number of key
+ value pairs used by POSIX API Keys that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+
+ A key value pair is created by ${/c/if/pthread_setspecific:/name} if the value
+ is not ${/c/if/null:/name}, otherwise it is deleted.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-posix-keys.yml b/spec/acfg/if/max-posix-keys.yml
new file mode 100644
index 00000000..82308c31
--- /dev/null
+++ b/spec/acfg/if/max-posix-keys.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of POSIX
+ API Keys that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_POSIX_KEYS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-posix-message-queues.yml b/spec/acfg/if/max-posix-message-queues.yml
new file mode 100644
index 00000000..1028f6c8
--- /dev/null
+++ b/spec/acfg/if/max-posix-message-queues.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of POSIX
+ API Message Queues that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-wkspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}. You have to account for the memory used to
+ store the messages of each message queue, see
+ ${message-buffer-memory:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-posix-queued-signals.yml b/spec/acfg/if/max-posix-queued-signals.yml
new file mode 100644
index 00000000..541c8ffd
--- /dev/null
+++ b/spec/acfg/if/max-posix-queued-signals.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of POSIX
+ API Queued Signals that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-posix
+- role: constraint
+ uid: constraint-wkspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
+notes: |
+ Unlimited objects are not available for queued signals.
+
+ Queued signals are only available if RTEMS was built with the
+ ``--enable-posix`` build configuration option.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-posix-semaphores.yml b/spec/acfg/if/max-posix-semaphores.yml
new file mode 100644
index 00000000..af37f8f6
--- /dev/null
+++ b/spec/acfg/if/max-posix-semaphores.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of POSIX
+ API Named Semaphores that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-wkspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+
+ Named semaphores are created with ${/c/if/sem_open:/name}. Semaphores
+ initialized with ${/c/if/sem_init:/name} are not affected by this
+ configuration option since the storage space for these semaphores is
+ user-provided.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-posix-shms.yml b/spec/acfg/if/max-posix-shms.yml
new file mode 100644
index 00000000..f3087fe4
--- /dev/null
+++ b/spec/acfg/if/max-posix-shms.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of POSIX
+ API Shared Memory objects that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-wkspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_POSIX_SHMS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-posix-threads.yml b/spec/acfg/if/max-posix-threads.yml
new file mode 100644
index 00000000..aba1ba9b
--- /dev/null
+++ b/spec/acfg/if/max-posix-threads.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of POSIX
+ API Threads that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-stackspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_POSIX_THREADS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+
+ This calculations for the required memory in the RTEMS Workspace for threads
+ assume that each thread has a minimum stack size and has floating point
+ support enabled. The configuration option ${extra-task-stacks:/name} is used
+ to specify thread stack requirements **above** the minimum size required.
+
+ The maximum number of Classic API Tasks is specified by
+ ${max-tasks:/name}.
+
+ All POSIX threads have floating point enabled.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-posix-timers.yml b/spec/acfg/if/max-posix-timers.yml
new file mode 100644
index 00000000..4830bdb7
--- /dev/null
+++ b/spec/acfg/if/max-posix-timers.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of POSIX
+ API Timers that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-posix
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_POSIX_TIMERS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+
+ Timers are only available if RTEMS was built with the
+ ``--enable-posix`` build configuration option.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-priority.yml b/spec/acfg/if/max-priority.yml
new file mode 100644
index 00000000..8f561f30
--- /dev/null
+++ b/spec/acfg/if/max-priority.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ set:
+ - 3
+ - 7
+ - 31
+ - 63
+ - 127
+ - 255
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 255
+description: |
+ For the following schedulers
+
+ * ${.:/document-reference/scheduler-priority}, which is the default in uniprocessor
+ configurations and can be configured through the
+ ${scheduler-priority:/name} configuration option,
+
+ * ${.:/document-reference/scheduler-smp-priority} which can be configured through the
+ ${scheduler-priority-smp:/name} configuration option, and
+
+ * ${.:/document-reference/scheduler-smp-priority-affinity} which can be configured through the
+ ${scheduler-priority-affinity-smp:/name} configuration option
+
+ this configuration option specifies the maximum numeric priority of any task
+ for these schedulers and one less that the number of priority levels for
+ these schedulers. For all other schedulers provided by RTEMS, this
+ configuration option has no effect.
+enabled-by: true
+index-entries:
+- maximum priority
+- number of priority levels
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_MAXIMUM_PRIORITY
+notes: |
+ The numerically greatest priority is the logically lowest priority in the
+ system and will thus be used by the IDLE task.
+
+ Priority zero is reserved for internal use by RTEMS and is not available to
+ applications.
+
+ Reducing the number of priorities through this configuration option reduces
+ the amount of memory allocated by the schedulers listed above. These
+ schedulers use a chain control structure per priority and this structure
+ consists of three pointers. On a 32-bit architecture, the allocated memory
+ is 12 bytes * (``CONFIGURE_MAXIMUM_PRIORITY`` + 1), e.g. 3072 bytes for 256
+ priority levels (default), 48 bytes for 4 priority levels
+ (``CONFIGURE_MAXIMUM_PRIORITY == 3``).
+
+ The default value is 255, because RTEMS shall support 256 priority levels to
+ be compliant with various standards. These priorities range from 0 to 255.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-processors.yml b/spec/acfg/if/max-processors.yml
new file mode 100644
index 00000000..ff4d5d41
--- /dev/null
+++ b/spec/acfg/if/max-processors.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/score/cpu/if/maximum-processors:/name}
+ min: 1
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 1
+description: |
+ The value of this configuration option defines the maximum number of
+ processors an application intends to use. The number of actually available
+ processors depends on the hardware and may be less. It is recommended to use
+ the smallest value suitable for the application in order to save memory.
+ Each processor needs an IDLE task stack and interrupt stack for example.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_MAXIMUM_PROCESSORS
+notes: |
+ If there are more processors available than configured, the rest will be
+ ignored.
+
+ This configuration option is only evaluated in SMP configurations (e.g. RTEMS
+ was built with the ``--enable-smp`` build configuration option). In all
+ other configurations it has no effect.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-regions.yml b/spec/acfg/if/max-regions.yml
new file mode 100644
index 00000000..38b63072
--- /dev/null
+++ b/spec/acfg/if/max-regions.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Regions that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_REGIONS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-semaphores.yml b/spec/acfg/if/max-semaphores.yml
new file mode 100644
index 00000000..4bb560c8
--- /dev/null
+++ b/spec/acfg/if/max-semaphores.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Semaphore that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_SEMAPHORES
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+
+ In SMP configurations, the size of a Semaphore Control Block depends on the
+ scheduler count (see ${.:/document-reference/config-scheduler-table}). The semaphores
+ using the ${.:/document-reference/mrsp} need a ceiling priority per scheduler.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-tasks.yml b/spec/acfg/if/max-tasks.yml
new file mode 100644
index 00000000..86f97695
--- /dev/null
+++ b/spec/acfg/if/max-tasks.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Tasks that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-stackspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_TASKS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+
+ The calculations for the required memory in the RTEMS Workspace for tasks
+ assume that each task has a minimum stack size and has floating point
+ support enabled. The configuration option ${extra-task-stacks:/name} is used
+ to specify task stack requirements *above* the minimum size required.
+
+ The maximum number of POSIX threads is specified by
+ ${max-posix-threads:/name}.
+
+ A future enhancement to ``<rtems/confdefs.h>`` could be to eliminate the
+ assumption that all tasks have floating point enabled. This would require
+ the addition of a new configuration parameter to specify the number of
+ tasks which enable floating point support.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-thread-local-storage-size.yml b/spec/acfg/if/max-thread-local-storage-size.yml
new file mode 100644
index 00000000..dfb979ba
--- /dev/null
+++ b/spec/acfg/if/max-thread-local-storage-size.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/size_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: 0
+description: |
+ If the value of this configuration option is greater than zero, then it
+ defines the maximum thread-local storage size, otherwise the thread-local
+ storage size is defined by the linker depending on the thread-local storage
+ objects used by the application in the statically-linked executable.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+name: CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
+notes: |
+ This configuration option can be used to reserve space for the dynamic linking
+ of modules with thread-local storage objects.
+
+ If the thread-local storage size defined by the thread-local storage
+ objects used by the application in the statically-linked executable is greater
+ than a non-zero value of this configuration option, then a fatal error will
+ occur during system initialization.
+
+ Use ${/rtems/basedefs/if/align-up:/name} and
+ ${/rtems/task/if/storage-alignment:/name} to adjust the size to meet the
+ minimum alignment requirement of a thread-local storage area.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-thread-name-size.yml b/spec/acfg/if/max-thread-name-size.yml
new file mode 100644
index 00000000..6ce4ac2a
--- /dev/null
+++ b/spec/acfg/if/max-thread-name-size.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/size_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 16
+description: |
+ The value of this configuration option defines the maximum thread name size
+ including the terminating ``NUL`` character.
+enabled-by: true
+index-entries:
+- maximum thread name size
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
+notes: |
+ The default value was chosen for Linux compatibility, see
+ ${.:/document-reference/pthread-setname-np}.
+
+ The size of the thread control block is increased by the maximum thread name
+ size.
+
+ This configuration option is available since RTEMS 5.1.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-timers.yml b/spec/acfg/if/max-timers.yml
new file mode 100644
index 00000000..5cc6783c
--- /dev/null
+++ b/spec/acfg/if/max-timers.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API Timers that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-unlimited
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_TIMERS
+notes: |
+ This object class can be configured in unlimited allocation mode, see
+ ${.:/document-reference/config-unlimited-objects}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/max-user-extensions.yml b/spec/acfg/if/max-user-extensions.yml
new file mode 100644
index 00000000..c3b46807
--- /dev/null
+++ b/spec/acfg/if/max-user-extensions.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: 65535
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the maximum number of Classic
+ API User Extensions that can be concurrently active.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MAXIMUM_USER_EXTENSIONS
+notes: |
+ This object class cannot be configured in unlimited allocation mode.
+text: ''
+type: interface
diff --git a/spec/acfg/if/memory-overhead.yml b/spec/acfg/if/memory-overhead.yml
new file mode 100644
index 00000000..39061e26
--- /dev/null
+++ b/spec/acfg/if/memory-overhead.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the number of kilobytes the
+ application wishes to add to the RTEMS Workspace size calculated by
+ ``<rtems/confdefs.h>``.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+- role: constraint
+ uid: constraint-wkspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MEMORY_OVERHEAD
+notes: |
+ This configuration option should only be used when it is suspected that a bug
+ in ``<rtems/confdefs.h>`` has resulted in an underestimation. Typically the
+ memory allocation will be too low when an application does not account for
+ all message queue buffers or task stacks, see
+ ${message-buffer-memory:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/message-buffer-memory.yml b/spec/acfg/if/message-buffer-memory.yml
new file mode 100644
index 00000000..fcdd762d
--- /dev/null
+++ b/spec/acfg/if/message-buffer-memory.yml
@@ -0,0 +1,72 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 0
+description: |
+ The value of this configuration option defines the number of bytes reserved
+ for message queue buffers in the RTEMS Workspace.
+enabled-by: true
+index-entries:
+- configure message queue buffer memory
+- CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
+- memory for a single message queue's buffers
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+- role: constraint
+ uid: constraint-wkspace
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_MESSAGE_BUFFER_MEMORY
+notes: |
+ The configuration options ${max-message-queues:/name} and
+ ${max-posix-message-queues:/name} define only how many message
+ queues can be created by the application. The memory for the message
+ buffers is configured by this option. For each message queue you have to
+ reserve some memory for the message buffers. The size depends on the
+ maximum number of pending messages and the maximum size of the messages of
+ a message queue. Use the ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE()`` macro
+ to specify the message buffer memory for each message queue and sum them up
+ to define the value for ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES``.
+
+ The interface for the ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE()`` help
+ macro is as follows:
+
+ .. code-block:: c
+
+ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( max_messages, max_msg_size )
+
+ Where ``max_messages`` is the maximum number of pending messages and
+ ``max_msg_size`` is the maximum size in bytes of the messages of the
+ corresponding message queue. Both parameters shall be compile time
+ constants. Not using this help macro (e.g. just using
+ ``max_messages * max_msg_size``) may result in an underestimate of the
+ RTEMS Workspace size.
+
+ The following example illustrates how the
+ ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE()`` help macro can be used to assist in
+ calculating the message buffer memory required. In this example, there are
+ two message queues used in this application. The first message queue has a
+ maximum of 24 pending messages with the message structure defined by the
+ type ``one_message_type``. The other message queue has a maximum of 500
+ pending messages with the message structure defined by the type
+ ``other_message_type``.
+
+ .. code-block:: c
+
+ #define CONFIGURE_MESSAGE_BUFFER_MEMORY ( \
+ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( \
+ 24, \
+ sizeof( one_message_type ) \
+ ) \
+ + CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( \
+ 500, \
+ sizeof( other_message_type ) \
+ ) \
+ )
+text: ''
+type: interface
diff --git a/spec/acfg/if/microseconds-per-tick.yml b/spec/acfg/if/microseconds-per-tick.yml
new file mode 100644
index 00000000..07060869
--- /dev/null
+++ b/spec/acfg/if/microseconds-per-tick.yml
@@ -0,0 +1,45 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ texts:
+ - It shall be greater than or equal to a Clock Driver specific value.
+ - It shall be less than or equal to a Clock Driver specific value.
+ - The resulting clock ticks per second should be an integer.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 10000
+description: |
+ The value of this configuration option defines the length of time in
+ microseconds between clock ticks (clock tick quantum).
+
+ When the clock tick quantum value is too low, the system will spend so much
+ time processing clock ticks that it does not have processing time available
+ to perform application work. In this case, the system will become
+ unresponsive.
+
+ The lowest practical time quantum varies widely based upon the speed of the
+ target hardware and the architectural overhead associated with
+ interrupts. In general terms, you do not want to configure it lower than is
+ needed for the application.
+
+ The clock tick quantum should be selected such that it all blocking and
+ delay times in the application are evenly divisible by it. Otherwise,
+ rounding errors will be introduced which may negatively impact the
+ application.
+enabled-by: true
+index-entries:
+- clock tick quantum
+- tick quantum
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_MICROSECONDS_PER_TICK
+notes: |
+ This configuration option has no impact if the Clock Driver is not
+ configured, see ${appl-does-not-need-clock-driver:/name}.
+
+ There may be Clock Driver specific limits on the resolution or maximum value
+ of a clock tick quantum.
+text: ''
+type: interface
diff --git a/spec/acfg/if/min-posix-thread-stack-size.yml b/spec/acfg/if/min-posix-thread-stack-size.yml
new file mode 100644
index 00000000..8b3d364f
--- /dev/null
+++ b/spec/acfg/if/min-posix-thread-stack-size.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is two times the value of
+ ${min-task-stack-size:/name}.
+description: |
+ The value of this configuration option defines the minimum stack size in
+ bytes for every POSIX thread in the system.
+enabled-by: true
+index-entries:
+- minimum POSIX thread stack size
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posix
+- role: constraint
+ uid: constraint-bspappmin
+- role: constraint
+ uid: constraint-stackspace
+name: CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/min-task-stack-size.yml b/spec/acfg/if/min-task-stack-size.yml
new file mode 100644
index 00000000..2bce8e46
--- /dev/null
+++ b/spec/acfg/if/min-task-stack-size.yml
@@ -0,0 +1,44 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints: {}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: ${/score/cpu/if/stack-minimum-size:/name}
+description: |
+ The value of this configuration option defines the minimum stack size in
+ bytes for every user task or thread in the system.
+enabled-by: true
+index-entries:
+- minimum task stack size
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+- role: constraint
+ uid: constraint-bspappmin
+- role: constraint
+ uid: constraint-stackspace
+name: CONFIGURE_MINIMUM_TASK_STACK_SIZE
+notes: |
+ Adjusting this parameter should be done with caution. Examining the actual
+ stack usage using the stack checker usage reporting facility is recommended
+ (see also ${stack-checker-enabled:/name}).
+
+ This parameter can be used to lower the minimum from that recommended. This
+ can be used in low memory systems to reduce memory consumption for
+ stacks. However, this shall be done with caution as it could increase the
+ possibility of a blown task stack.
+
+ This parameter can be used to increase the minimum from that
+ recommended. This can be used in higher memory systems to reduce the risk
+ of stack overflow without performing analysis on actual consumption.
+
+ By default, this configuration parameter defines also the minimum stack
+ size of POSIX threads. This can be changed with the
+ ${min-posix-thread-stack-size:/name}
+ configuration option.
+
+ In releases before RTEMS 5.1 the ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` was
+ used to define the default value of ${interrupt-stack-size:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/min-tasks-with-user-provided-storage.yml b/spec/acfg/if/min-tasks-with-user-provided-storage.yml
new file mode 100644
index 00000000..84d39f17
--- /dev/null
+++ b/spec/acfg/if/min-tasks-with-user-provided-storage.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${max-tasks:/name}
+ min: 0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: 0
+description: |
+ The value of this configuration option defines the minimum count of Classic
+ API Tasks which are constructed by ${/rtems/task/if/construct:/name}.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classic
+name: CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE
+notes: |
+ By default, the calculation for the required memory in the RTEMS Workspace
+ for tasks assumes that all Classic API Tasks are created by
+ ${/rtems/task/if/create:/name}. This configuration option can be used to
+ reduce the required memory for the system-provided task storage areas since
+ tasks constructed by ${/rtems/task/if/construct:/name} use a user-provided
+ task storage area.
+text: ''
+type: interface
diff --git a/spec/acfg/if/mp-appl.yml b/spec/acfg/if/mp-appl.yml
new file mode 100644
index 00000000..2474a79b
--- /dev/null
+++ b/spec/acfg/if/mp-appl.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then the multiprocessing services
+ are not initialized.
+description: |
+ This configuration option is defined to indicate that the application intends
+ to be part of a multiprocessing configuration. Additional configuration
+ options are assumed to be provided.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-mpci
+name: CONFIGURE_MP_APPLICATION
+notes: |
+ This configuration option shall be undefined if the multiprocessing support
+ is not enabled (e.g. RTEMS was built without the ``--enable-multiprocessing``
+ build configuration option). Otherwise a compile time error in the
+ configuration file will occur.
+text: ''
+type: interface
diff --git a/spec/acfg/if/mp-extra-server-stack.yml b/spec/acfg/if/mp-extra-server-stack.yml
new file mode 100644
index 00000000..6f515fbd
--- /dev/null
+++ b/spec/acfg/if/mp-extra-server-stack.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+ texts:
+ - |
+ The value of this configuration option shall be small enough so that the
+ MPCI receive server stack area calculation carried out by
+ ``<rtems/confdefs.h>`` does not overflow an integer of type
+ ${/c/if/size_t:/name}.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: 0
+description: |
+ The value of this configuration option defines the number of bytes the
+ applications wishes to add to the MPCI task stack on top of
+ ${min-task-stack-size:/name}.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-mpci
+name: CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
+notes: |
+ This configuration option is only evaluated if
+ ${mp-appl:/name} is defined.
+text: ''
+type: interface
diff --git a/spec/acfg/if/mp-max-global-objects.yml b/spec/acfg/if/mp-max-global-objects.yml
new file mode 100644
index 00000000..faa1badb
--- /dev/null
+++ b/spec/acfg/if/mp-max-global-objects.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 32
+description: |
+ The value of this configuration option defines the maximum number of
+ concurrently active global objects in a multiprocessor system.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-mpci
+name: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
+notes: |
+ This value corresponds to the total number of objects which can be created
+ with the ${/rtems/attr/if/global:/name} attribute.
+
+ This configuration option is only evaluated if
+ ${mp-appl:/name} is defined.
+text: ''
+type: interface
diff --git a/spec/acfg/if/mp-max-nodes.yml b/spec/acfg/if/mp-max-nodes.yml
new file mode 100644
index 00000000..077c5b1e
--- /dev/null
+++ b/spec/acfg/if/mp-max-nodes.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 2
+description: |
+ The value of this configuration option defines the maximum number of nodes in
+ a multiprocessor system.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-mpci
+name: CONFIGURE_MP_MAXIMUM_NODES
+notes: |
+ This configuration option is only evaluated if
+ ${mp-appl:/name} is defined.
+text: ''
+type: interface
diff --git a/spec/acfg/if/mp-max-proxies.yml b/spec/acfg/if/mp-max-proxies.yml
new file mode 100644
index 00000000..71f63ba9
--- /dev/null
+++ b/spec/acfg/if/mp-max-proxies.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 32
+description: |
+ The value of this configuration option defines the maximum number of
+ concurrently active thread/task proxies on this node in a multiprocessor
+ system.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-mpci
+name: CONFIGURE_MP_MAXIMUM_PROXIES
+notes: |
+ Since a proxy is used to represent a remote task/thread which is blocking
+ on this node. This configuration parameter reflects the maximum number of
+ remote tasks/threads which can be blocked on objects on this node, see
+ ${.:/document-reference/mp-proxies}.
+
+ This configuration option is only evaluated if
+ ${mp-appl:/name} is defined.
+text: ''
+type: interface
diff --git a/spec/acfg/if/mp-mpci-table-pointer.yml b/spec/acfg/if/mp-mpci-table-pointer.yml
new file mode 100644
index 00000000..2cbfafd2
--- /dev/null
+++ b/spec/acfg/if/mp-mpci-table-pointer.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a pointer to
+ ${/rtems/type/if/mpci-table:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: '``&MPCI_table``'
+description: |
+ The value of this configuration option initializes the MPCI Configuration
+ Table.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-mpci
+name: CONFIGURE_MP_MPCI_TABLE_POINTER
+notes: |
+ RTEMS provides a Shared Memory MPCI Device Driver which can be used on any
+ Multiprocessor System assuming the BSP provides the proper set of
+ supporting methods.
+
+ This configuration option is only evaluated if
+ ${mp-appl:/name} is defined.
+text: ''
+type: interface
diff --git a/spec/acfg/if/mp-node-number.yml b/spec/acfg/if/mp-node-number.yml
new file mode 100644
index 00000000..fd68310d
--- /dev/null
+++ b/spec/acfg/if/mp-node-number.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: '``NODE_NUMBER``'
+description: |
+ The value of this configuration option defines the node number of this node
+ in a multiprocessor system.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-mpci
+name: CONFIGURE_MP_NODE_NUMBER
+notes: |
+ In the RTEMS Multiprocessing Test Suite, the node number is derived from
+ the Makefile variable ``NODE_NUMBER``. The same code is compiled with the
+ ``NODE_NUMBER`` set to different values. The test programs behave
+ differently based upon their node number.
+
+ This configuration option is only evaluated if
+ ${mp-appl:/name} is defined.
+text: ''
+type: interface
diff --git a/spec/acfg/if/posix-init-thread-entry-point.yml b/spec/acfg/if/posix-init-thread-entry-point.yml
new file mode 100644
index 00000000..fca4e899
--- /dev/null
+++ b/spec/acfg/if/posix-init-thread-entry-point.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be defined to a valid function
+ pointer of the type ``void *( *entry_point )( void * )``.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: '``POSIX_Init``'
+description: |
+ The value of this configuration option initializes the entry point of the
+ POSIX API initialization thread.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posixinit
+name: CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
+notes: |
+ The application shall provide the function referenced by this configuration
+ option.
+text: ''
+type: interface
diff --git a/spec/acfg/if/posix-init-thread-stack-size.yml b/spec/acfg/if/posix-init-thread-stack-size.yml
new file mode 100644
index 00000000..b3be22e1
--- /dev/null
+++ b/spec/acfg/if/posix-init-thread-stack-size.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ min: ${min-task-stack-size:/name}
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: ${min-posix-thread-stack-size:/name}
+description: |
+ The value of this configuration option defines the thread stack size of the
+ POSIX API initialization thread.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posixinit
+- role: constraint
+ uid: constraint-stackspace
+name: CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
+notes: null
+text: ''
+type: interface
diff --git a/spec/acfg/if/posix-init-thread-table.yml b/spec/acfg/if/posix-init-thread-table.yml
new file mode 100644
index 00000000..6ed00c00
--- /dev/null
+++ b/spec/acfg/if/posix-init-thread-table.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then exactly one POSIX
+ initialization thread is configured.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-posixinit
+name: CONFIGURE_POSIX_INIT_THREAD_TABLE
+notes: |
+ The application shall define exactly one of the following configuration
+ options
+
+ * ${rtems-init-tasks-table:/name},
+
+ * ``CONFIGURE_POSIX_INIT_THREAD_TABLE``, or
+
+ * ${idle-task-init-appl:/name}
+
+ otherwise a compile time error in the configuration file will occur.
+text: ''
+type: interface
diff --git a/spec/acfg/if/record-extensions-enabled.yml b/spec/acfg/if/record-extensions-enabled.yml
new file mode 100644
index 00000000..bf894918
--- /dev/null
+++ b/spec/acfg/if/record-extensions-enabled.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2019 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case
+
+ * this configuration option is defined
+
+ * and ${record-per-processor-items:/name} is properly defined,
+
+ then the event record extensions are enabled.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-eventrecord
+name: CONFIGURE_RECORD_EXTENSIONS_ENABLED
+notes: |
+ The record extensions capture thread create, start, restart, delete, switch,
+ begin, exitted and terminate events.
+text: ''
+type: interface
diff --git a/spec/acfg/if/record-fatal-dump-base64-zlib.yml b/spec/acfg/if/record-fatal-dump-base64-zlib.yml
new file mode 100644
index 00000000..4856f7c5
--- /dev/null
+++ b/spec/acfg/if/record-fatal-dump-base64-zlib.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case
+
+ * this configuration option is defined
+
+ * and ${record-per-processor-items:/name} is properly defined,
+
+ then the event records are compressed by zlib and dumped in Base64 encoding
+ in a fatal error extension (see ${.:/document-reference/terminate}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-eventrecord
+name: CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
+notes: |
+ The zlib compression needs about 512KiB of RAM. This extension can be used
+ to produce crash dumps.
+text: ''
+type: interface
diff --git a/spec/acfg/if/record-fatal-dump-base64.yml b/spec/acfg/if/record-fatal-dump-base64.yml
new file mode 100644
index 00000000..8a977e14
--- /dev/null
+++ b/spec/acfg/if/record-fatal-dump-base64.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case
+
+ * this configuration option is defined
+
+ * and ${record-per-processor-items:/name} is properly defined,
+
+ * and ${record-fatal-dump-base64-zlib:/name} is undefined,
+
+ then the event records are dumped in Base64 encoding in a fatal error
+ extension (see ${.:/document-reference/terminate}).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-eventrecord
+name: CONFIGURE_RECORD_FATAL_DUMP_BASE64
+notes: |
+ This extension can be used to produce crash dumps.
+text: ''
+type: interface
diff --git a/spec/acfg/if/record-per-processor-items.yml b/spec/acfg/if/record-per-processor-items.yml
new file mode 100644
index 00000000..4f655e7e
--- /dev/null
+++ b/spec/acfg/if/record-per-processor-items.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/size_max:/name}
+ min: 16
+ texts:
+ - It shall be a power of two.
+copyrights:
+- Copyright (C) 2019 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: 0
+description: |
+ The value of this configuration option defines the event record item count
+ per processor.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-eventrecord
+- role: constraint
+ uid: constraint-memsz
+name: CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
+notes: |
+ The event record buffers are statically allocated for each configured
+ processor (${max-processors:/name}). If the value of this
+ configuration option is zero, then nothing is allocated.
+text: ''
+type: interface
diff --git a/spec/acfg/if/rtems-init-tasks-table.yml b/spec/acfg/if/rtems-init-tasks-table.yml
new file mode 100644
index 00000000..655e24e9
--- /dev/null
+++ b/spec/acfg/if/rtems-init-tasks-table.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then exactly one Classic API
+ initialization task is configured.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-classicinit
+name: CONFIGURE_RTEMS_INIT_TASKS_TABLE
+notes: |
+ The application shall define exactly one of the following configuration
+ options
+
+ * ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``,
+
+ * ${posix-init-thread-table:/name}, or
+
+ * ${idle-task-init-appl:/name}
+
+ otherwise a compile time error in the configuration file will occur.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-assignments.yml b/spec/acfg/if/scheduler-assignments.yml
new file mode 100644
index 00000000..51ca9a4b
--- /dev/null
+++ b/spec/acfg/if/scheduler-assignments.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a list of the following
+ macros:
+
+ * ``RTEMS_SCHEDULER_ASSIGN( processor_index, attributes )``
+
+ * ``RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER``
+ - |
+ The value of this configuration option shall be a list of exactly
+ ${max-processors:/name} elements.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: |
+ The default value of this configuration option is computed so that the
+ default scheduler is assigned to each configured processor (up to 32).
+description: |
+ The value of this configuration option is used to initialize the initial
+ scheduler to processor assignments.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_ASSIGNMENTS
+notes: |
+ This configuration option is only evaluated in SMP configurations.
+
+ This is an advanced configuration option, see
+ ${.:/document-reference/config-scheduler-clustered}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-cbs.yml b/spec/acfg/if/scheduler-cbs.yml
new file mode 100644
index 00000000..c9692d28
--- /dev/null
+++ b/spec/acfg/if/scheduler-cbs.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then
+ ${.:/document-reference/scheduler-cbs}
+ algorithm is made available to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_CBS
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ In case no explicit ${.:/document-reference/config-scheduler-clustered}
+ is present, then it is used as the scheduler for exactly one processor.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-edf-smp.yml b/spec/acfg/if/scheduler-edf-smp.yml
new file mode 100644
index 00000000..176db96a
--- /dev/null
+++ b/spec/acfg/if/scheduler-edf-smp.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then
+ ${.:/document-reference/scheduler-smp-edf}
+ algorithm is made available to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_EDF_SMP
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ This scheduler algorithm is only available when RTEMS is built with SMP
+ support enabled.
+
+ In case no explicit ${.:/document-reference/config-scheduler-clustered}
+ is present, then it is used as the scheduler for up to 32 processors.
+
+ This scheduler algorithm is the default in SMP configurations if
+ ${max-processors:/name} is
+ greater than one.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-edf.yml b/spec/acfg/if/scheduler-edf.yml
new file mode 100644
index 00000000..0a93ad69
--- /dev/null
+++ b/spec/acfg/if/scheduler-edf.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then
+ ${.:/document-reference/scheduler-edf}
+ algorithm is made available to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_EDF
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ In case no explicit ${.:/document-reference/config-scheduler-clustered}
+ is present, then it is used as the scheduler for exactly one processor.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-name.yml b/spec/acfg/if/scheduler-name.yml
new file mode 100644
index 00000000..22493868
--- /dev/null
+++ b/spec/acfg/if/scheduler-name.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be a valid integer of type
+ ${/rtems/type/if/name:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is
+
+ * ``"MEDF"`` for the ${.:/document-reference/scheduler-smp-edf},
+
+ * ``"MPA "`` for the ${.:/document-reference/scheduler-smp-priority-affinity},
+
+ * ``"MPD "`` for the ${.:/document-reference/scheduler-smp-priority},
+
+ * ``"MPS "`` for the ${.:/document-reference/scheduler-smp-priority-simple},
+
+ * ``"UCBS"`` for the ${.:/document-reference/scheduler-cbs},
+
+ * ``"UEDF"`` for the ${.:/document-reference/scheduler-edf},
+
+ * ``"UPD "`` for the ${.:/document-reference/scheduler-priority}, and
+
+ * ``"UPS "`` for the ${.:/document-reference/scheduler-priority-simple}.
+description: |
+ The value of this configuration option defines the name of the default
+ scheduler.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_NAME
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ Schedulers can be identified via ${/rtems/scheduler/if/ident:/name}.
+
+ Use ${/rtems/object/if/build-name:/name} to define the scheduler name.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-priority-affinity-smp.yml b/spec/acfg/if/scheduler-priority-affinity-smp.yml
new file mode 100644
index 00000000..2423d994
--- /dev/null
+++ b/spec/acfg/if/scheduler-priority-affinity-smp.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then
+ ${.:/document-reference/scheduler-smp-priority-affinity}
+ algorithm is made available to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ This scheduler algorithm is only available when RTEMS is built with SMP
+ support enabled.
+
+ In case no explicit ${.:/document-reference/config-scheduler-clustered}
+ is present, then it is used as the scheduler for up to 32 processors.
+
+ The memory allocated for this scheduler depends on the
+ ${max-priority:/name} configuration option.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-priority-smp.yml b/spec/acfg/if/scheduler-priority-smp.yml
new file mode 100644
index 00000000..527a9d6d
--- /dev/null
+++ b/spec/acfg/if/scheduler-priority-smp.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then
+ ${.:/document-reference/scheduler-smp-priority}
+ algorithm is made available to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_PRIORITY_SMP
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ This scheduler algorithm is only available when RTEMS is built with SMP
+ support enabled.
+
+ In case no explicit ${.:/document-reference/config-scheduler-clustered}
+ is present, then it is used as the scheduler for up to 32 processors.
+
+ The memory allocated for this scheduler depends on the
+ ${max-priority:/name} configuration option.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-priority.yml b/spec/acfg/if/scheduler-priority.yml
new file mode 100644
index 00000000..05f291df
--- /dev/null
+++ b/spec/acfg/if/scheduler-priority.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2010 Gedare Bloom
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then
+ ${.:/document-reference/scheduler-priority}
+ algorithm is made available to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_PRIORITY
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ In case no explicit ${.:/document-reference/config-scheduler-clustered}
+ is present, then it is used as the scheduler for exactly one processor.
+
+ This scheduler algorithm is the default when
+ ${max-processors:/name} is
+ exactly one.
+
+ The memory allocated for this scheduler depends on the
+ ${max-priority:/name} configuration option.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-simple-smp.yml b/spec/acfg/if/scheduler-simple-smp.yml
new file mode 100644
index 00000000..16d6edb3
--- /dev/null
+++ b/spec/acfg/if/scheduler-simple-smp.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then
+ ${.:/document-reference/scheduler-smp-priority-simple}
+ algorithm is made available to the application.
+ application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_SIMPLE_SMP
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ This scheduler algorithm is only available when RTEMS is built with SMP
+ support enabled.
+
+ In case no explicit ${.:/document-reference/config-scheduler-clustered}
+ is present, then it is used as the scheduler for up to 32 processors.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-simple.yml b/spec/acfg/if/scheduler-simple.yml
new file mode 100644
index 00000000..234a65ff
--- /dev/null
+++ b/spec/acfg/if/scheduler-simple.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then
+ ${.:/document-reference/scheduler-priority-simple}
+ algorithm is made available to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_SIMPLE
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ In case no explicit ${.:/document-reference/config-scheduler-clustered}
+ is present, then it is used as the scheduler for exactly one processor.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-strong-apa.yml b/spec/acfg/if/scheduler-strong-apa.yml
new file mode 100644
index 00000000..d4a98198
--- /dev/null
+++ b/spec/acfg/if/scheduler-strong-apa.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then Strong APA algorithm is
+ made available to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_STRONG_APA
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ This scheduler algorithm is only available when RTEMS is built with SMP
+ support enabled.
+
+ This scheduler algorithm is not correctly implemented. Do not use it.
+text: ''
+type: interface
diff --git a/spec/acfg/if/scheduler-user.yml b/spec/acfg/if/scheduler-user.yml
new file mode 100644
index 00000000..b7967f1d
--- /dev/null
+++ b/spec/acfg/if/scheduler-user.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2010 Gedare Bloom
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the user shall provide a
+ scheduler algorithm to the application.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+name: CONFIGURE_SCHEDULER_USER
+notes: |
+ This scheduler configuration option is an advanced configuration option.
+ Think twice before you use it.
+
+ RTEMS allows the application to provide its own task/thread scheduling
+ algorithm. In order to do this, one shall define
+ ``CONFIGURE_SCHEDULER_USER`` to indicate the application provides its own
+ scheduling algorithm. If ``CONFIGURE_SCHEDULER_USER`` is defined then the
+ following additional macros shall be defined:
+
+ * ``CONFIGURE_SCHEDULER`` shall be defined to a static definition of
+ the scheduler data structures of the user scheduler.
+
+ * ``CONFIGURE_SCHEDULER_TABLE_ENTRIES`` shall be defined to a scheduler
+ table entry initializer for the user scheduler.
+
+ * ``CONFIGURE_SCHEDULER_USER_PER_THREAD`` shall be defined to the type of
+ the per-thread information of the user scheduler.
+
+ At this time, the mechanics and requirements for writing a new scheduler
+ are evolving and not fully documented. It is recommended that you look at
+ the existing Deterministic Priority Scheduler in
+ ``cpukit/score/src/schedulerpriority*.c`` for guidance. For guidance on
+ the configuration macros, please examine ``cpukit/sapi/include/confdefs.h``
+ for how these are defined for the Deterministic Priority Scheduler.
+text: ''
+type: interface
diff --git a/spec/acfg/if/stack-checker-enabled.yml b/spec/acfg/if/stack-checker-enabled.yml
new file mode 100644
index 00000000..ca0e55fc
--- /dev/null
+++ b/spec/acfg/if/stack-checker-enabled.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the stack checker is
+ enabled.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_STACK_CHECKER_ENABLED
+notes: |
+ The stack checker performs run-time stack bounds checking. This increases
+ the time required to create tasks as well as adding overhead to each context
+ switch.
+
+ In 4.9 and older, this configuration option was named ``STACK_CHECKER_ON``.
+text: ''
+type: interface
diff --git a/spec/acfg/if/task-stack-allocator-init.yml b/spec/acfg/if/task-stack-allocator-init.yml
new file mode 100644
index 00000000..27d86c09
--- /dev/null
+++ b/spec/acfg/if/task-stack-allocator-init.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be defined to a valid function
+ pointer of the type ``void ( *initialize )( size_t )`` or to
+ ${/c/if/null:/name}.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: ${/c/if/null:/name}
+description: |
+ The value of this configuration option initializes the stack allocator
+ initialization handler.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-stackalloc
+name: CONFIGURE_TASK_STACK_ALLOCATOR_INIT
+notes: |
+ A correctly configured system shall configure the following to be consistent:
+
+ * ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
+
+ * ${task-stack-allocator:/name}
+
+ * ${task-stack-deallocator:/name}
+text: ''
+type: interface
diff --git a/spec/acfg/if/task-stack-allocator.yml b/spec/acfg/if/task-stack-allocator.yml
new file mode 100644
index 00000000..fe877091
--- /dev/null
+++ b/spec/acfg/if/task-stack-allocator.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be defined to a valid function
+ pointer of the type ``void *( *allocate )( size_t )``.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is ``_Workspace_Allocate``, which indicates that task
+ stacks will be allocated from the RTEMS Workspace.
+description: |
+ The value of this configuration option initializes the stack allocator
+ allocate handler.
+enabled-by: true
+index-entries:
+- task stack allocator
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-stackalloc
+name: CONFIGURE_TASK_STACK_ALLOCATOR
+notes: |
+ A correctly configured system shall configure the following to be consistent:
+
+ * ${task-stack-allocator-init:/name}
+
+ * ``CONFIGURE_TASK_STACK_ALLOCATOR``
+
+ * ${task-stack-deallocator:/name}
+text: ''
+type: interface
diff --git a/spec/acfg/if/task-stack-deallocator.yml b/spec/acfg/if/task-stack-deallocator.yml
new file mode 100644
index 00000000..d18d158f
--- /dev/null
+++ b/spec/acfg/if/task-stack-deallocator.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be defined to a valid function
+ pointer of the type ``void ( *deallocate )( void * )``.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: |
+ The default value is ``_Workspace_Free``, which indicates that task stacks
+ will be allocated from the RTEMS Workspace.
+description: |
+ The value of this configuration option initializes the stack allocator
+ deallocate handler.
+enabled-by: true
+index-entries:
+- task stack deallocator
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-stackalloc
+name: CONFIGURE_TASK_STACK_DEALLOCATOR
+notes: |
+ A correctly configured system shall configure the following to be consistent:
+
+ * ${task-stack-allocator-init:/name}
+
+ * ${task-stack-allocator:/name}
+
+ * ``CONFIGURE_TASK_STACK_DEALLOCATOR``
+text: ''
+type: interface
diff --git a/spec/acfg/if/task-stack-from-alloc.yml b/spec/acfg/if/task-stack-from-alloc.yml
new file mode 100644
index 00000000..7b3e6c31
--- /dev/null
+++ b/spec/acfg/if/task-stack-from-alloc.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall be defined to a macro which
+ accepts exactly one parameter and returns an unsigned integer. The
+ parameter will be an allocation size and the macro shall return this size
+ plus the overhead of the allocator to manage an allocation request for this
+ size.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: |
+ The default value is a macro which supports the system heap allocator.
+description: |
+ The value of this configuration option is used to calculate the task stack
+ space size.
+enabled-by: true
+index-entries:
+- task stack allocator
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-stackalloc
+name: CONFIGURE_TASK_STACK_FROM_ALLOCATOR
+notes: |
+ This configuration option may be used if a custom task stack allocator is
+ configured, see ${task-stack-allocator:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/task-stack-no-workspace.yml b/spec/acfg/if/task-stack-no-workspace.yml
new file mode 100644
index 00000000..3cbe5502
--- /dev/null
+++ b/spec/acfg/if/task-stack-no-workspace.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: |
+ In case this configuration option is defined, then the system is informed
+ that the task stack allocator does not use the RTEMS Workspace.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-stackalloc
+name: CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
+notes: |
+ This configuration option may be used if a custom task stack allocator is
+ configured, see ${task-stack-allocator:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/ticks-per-time-slice.yml b/spec/acfg/if/ticks-per-time-slice.yml
new file mode 100644
index 00000000..81f6483e
--- /dev/null
+++ b/spec/acfg/if/ticks-per-time-slice.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ max: ${/c/if/uint32_max:/name}
+ min: 0
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 50
+description: |
+ The value of this configuration option defines the length of the timeslice
+ quantum in ticks for each task.
+enabled-by: true
+index-entries:
+- ticks per timeslice
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_TICKS_PER_TIMESLICE
+notes: |
+ This configuration option has no impact if the Clock Driver is not
+ configured, see ${appl-does-not-need-clock-driver:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/unified-work-areas.yml b/spec/acfg/if/unified-work-areas.yml
new file mode 100644
index 00000000..8d57342c
--- /dev/null
+++ b/spec/acfg/if/unified-work-areas.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default: |
+ If this configuration option is undefined, then there will be separate memory
+ pools for the RTEMS Workspace and C Program Heap.
+description: |
+ In case this configuration option is defined, then the RTEMS Workspace and
+ the C Program Heap will be one pool of memory.
+enabled-by: true
+index-entries:
+- unified work areas
+- separate work areas
+- RTEMS Workspace
+- C Program Heap
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_UNIFIED_WORK_AREAS
+notes: |
+ Having separate pools does have some advantages in the event a task blows a
+ stack or writes outside its memory area. However, in low memory systems the
+ overhead of the two pools plus the potential for unused memory in either
+ pool is very undesirable.
+
+ In high memory environments, this is desirable when you want to use the
+ ${.:/document-reference/config-unlimited-objects} option. You will be able to create objects
+ until you run out of all available memory rather then just until you run out
+ of RTEMS Workspace.
+text: ''
+type: interface
diff --git a/spec/acfg/if/unlimited-allocation-size.yml b/spec/acfg/if/unlimited-allocation-size.yml
new file mode 100644
index 00000000..f206c5b9
--- /dev/null
+++ b/spec/acfg/if/unlimited-allocation-size.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+constraints:
+ texts:
+ - |
+ The value of this configuration option shall meet the constraints of all
+ object classes to which it is applied.
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+default-value: 8
+description: |
+ If ${unlimited-objects:/name} is defined, then the value of this
+ configuration option defines the default objects maximum of all object
+ classes supporting ${.:/document-reference/config-unlimited-objects} to
+ ``rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )``.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_UNLIMITED_ALLOCATION_SIZE
+notes: |
+ By allowing users to declare all resources as being unlimited the user can
+ avoid identifying and limiting the resources used.
+
+ The object maximum of each class can be configured also individually using
+ the ${/rtems/config/if/resource-unlimited:/name} macro.
+text: ''
+type: interface
diff --git a/spec/acfg/if/unlimited-objects.yml b/spec/acfg/if/unlimited-objects.yml
new file mode 100644
index 00000000..bdfb30d8
--- /dev/null
+++ b/spec/acfg/if/unlimited-objects.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then unlimited objects are used
+ by default.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_UNLIMITED_OBJECTS
+notes: |
+ When using unlimited objects, it is common practice to also specify
+ ${unified-work-areas:/name} so the system operates with a single pool
+ of memory for both RTEMS Workspace and C Program Heap.
+
+ This option does not override an explicit configuration for a particular
+ object class by the user.
+
+ See also ${unlimited-allocation-size:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/use-devfs-as-base-filesystem.yml b/spec/acfg/if/use-devfs-as-base-filesystem.yml
new file mode 100644
index 00000000..72e46305
--- /dev/null
+++ b/spec/acfg/if/use-devfs-as-base-filesystem.yml
@@ -0,0 +1,50 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then an IMFS with a reduced
+ feature set will be the base filesystem (also known as root filesystem).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
+notes: |
+ In case this configuration option is defined, then the following
+ configuration options will be defined as well
+
+ * ${imfs-disable-chmod:/name},
+
+ * ${imfs-disable-chown:/name},
+
+ * ${imfs-disable-link:/name},
+
+ * ${imfs-disable-mknod-file:/name},
+
+ * ${imfs-disable-mount:/name},
+
+ * ${imfs-disable-readdir:/name},
+
+ * ${imfs-disable-readlink:/name},
+
+ * ${imfs-disable-rename:/name},
+
+ * ${imfs-disable-rmnod:/name},
+
+ * ${imfs-disable-symlink:/name},
+
+ * ${imfs-disable-utime:/name}, and
+
+ * ${imfs-disable-unmount:/name}.
+
+ In addition, a simplified path evaluation is enabled. It allows only a look
+ up of absolute paths.
+
+ This configuration of the IMFS is basically a device-only filesystem. It is
+ comparable in functionality to the pseudo-filesystem name space provided
+ before RTEMS release 4.5.0.
+text: ''
+type: interface
diff --git a/spec/acfg/if/use-miniimfs-as-base-filesystem.yml b/spec/acfg/if/use-miniimfs-as-base-filesystem.yml
new file mode 100644
index 00000000..13474187
--- /dev/null
+++ b/spec/acfg/if/use-miniimfs-as-base-filesystem.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then an IMFS with a reduced
+ feature set will be the base filesystem (also known as root filesystem).
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-filesystem
+name: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
+notes: |
+ In case this configuration option is defined, then the following
+ configuration options will be defined as well
+
+ * ${imfs-disable-chmod:/name},
+
+ * ${imfs-disable-chown:/name},
+
+ * ${imfs-disable-link:/name},
+
+ * ${imfs-disable-readlink:/name},
+
+ * ${imfs-disable-rename:/name},
+
+ * ${imfs-disable-symlink:/name},
+
+ * ${imfs-disable-utime:/name}, and
+
+ * ${imfs-disable-unmount:/name}.
+text: ''
+type: interface
diff --git a/spec/acfg/if/verbose-system-init.yml b/spec/acfg/if/verbose-system-init.yml
new file mode 100644
index 00000000..6b355830
--- /dev/null
+++ b/spec/acfg/if/verbose-system-init.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the system initialization
+ is verbose.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
+notes: |
+ You may use this feature to debug system initialization issues. The
+ ${/rtems/io/if/printk:/name} function is used to print the information.
+text: ''
+type: interface
diff --git a/spec/acfg/if/zero-workspace-automatically.yml b/spec/acfg/if/zero-workspace-automatically.yml
new file mode 100644
index 00000000..ccca0125
--- /dev/null
+++ b/spec/acfg/if/zero-workspace-automatically.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: feature-enable
+copyrights:
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: |
+ In case this configuration option is defined, then the memory areas used for
+ the RTEMS Workspace and the C Program Heap are zeroed with a ``0x00`` byte
+ pattern during system initialization.
+enabled-by: true
+index-entries:
+- clear C Program Heap
+- clear RTEMS Workspace
+- zero C Program Heap
+- zero RTEMS Workspace
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-general
+name: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
+notes: |
+ Zeroing memory can add significantly to the system initialization time. It is
+ not necessary for RTEMS but is often assumed by support libraries. In case
+ ${dirty-memory:/name} is also defined, then the memory is first
+ dirtied and then zeroed.
+text: ''
+type: interface