diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-07-06 09:23:27 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-07-07 12:58:52 +0200 |
commit | 518d8c3763f4ab0e3cac33d643b968f5e868e9c4 (patch) | |
tree | 63b8ca1334ab7c71956214ab17a81d5bef04aaac /spec/if/acfg | |
parent | 813f520674faf874a74fe8cf28423da9a564feb7 (diff) |
spec: Move application configuration items
Diffstat (limited to 'spec/if/acfg')
173 files changed, 4459 insertions, 0 deletions
diff --git a/spec/if/acfg/appl-disable-filesystem.yml b/spec/if/acfg/appl-disable-filesystem.yml new file mode 100644 index 00000000..f9ec07f3 --- /dev/null +++ b/spec/if/acfg/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:func:`printf`. + Filesystems can be disabled to reduce the memory footprint of an application. +text: '' +type: interface diff --git a/spec/if/acfg/appl-does-not-need-clock-driver.yml b/spec/if/acfg/appl-does-not-need-clock-driver.yml new file mode 100644 index 00000000..67a89324 --- /dev/null +++ b/spec/if/acfg/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 + + * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`, + + * `CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or + + * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`, + + otherwise a compile time error in the configuration file will occur. +text: '' +type: interface diff --git a/spec/if/acfg/appl-extra-drivers.yml b/spec/if/acfg/appl-extra-drivers.yml new file mode 100644 index 00000000..e2d053f7 --- /dev/null +++ b/spec/if/acfg/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 :c:type:`rtems_driver_address_table`. +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 :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS` for an alternative + placement of application device driver initializers. +text: '' +type: interface diff --git a/spec/if/acfg/appl-needs-ata-driver.yml b/spec/if/acfg/appl-needs-ata-driver.yml new file mode 100644 index 00000000..a7a3344c --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-needs-clock-driver.yml b/spec/if/acfg/appl-needs-clock-driver.yml new file mode 100644 index 00000000..c3993bcf --- /dev/null +++ b/spec/if/acfg/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`, + + * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or + + * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`, + + otherwise a compile time error in the configuration file will occur. +text: '' +type: interface diff --git a/spec/if/acfg/appl-needs-console-driver.yml b/spec/if/acfg/appl-needs-console-driver.yml new file mode 100644 index 00000000..6c0e8f06 --- /dev/null +++ b/spec/if/acfg/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 :c:func:`printk` to work + properly without the need for the Console Driver to be configured. + + The + + * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`, + + * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and + + * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` + + configuration options are mutually exclusive. +text: '' +type: interface diff --git a/spec/if/acfg/appl-needs-framebuffer-driver.yml b/spec/if/acfg/appl-needs-framebuffer-driver.yml new file mode 100644 index 00000000..654b5a2d --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-needs-ide-driver.yml b/spec/if/acfg/appl-needs-ide-driver.yml new file mode 100644 index 00000000..17969fea --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-needs-libblock.yml b/spec/if/acfg/appl-needs-libblock.yml new file mode 100644 index 00000000..dfbaa333 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-needs-null-driver.yml b/spec/if/acfg/appl-needs-null-driver.yml new file mode 100644 index 00000000..b7f5722d --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-needs-rtc-driver.yml b/spec/if/acfg/appl-needs-rtc-driver.yml new file mode 100644 index 00000000..bb0bfd3e --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-needs-simple-console-driver.yml b/spec/if/acfg/appl-needs-simple-console-driver.yml new file mode 100644 index 00000000..37af5591 --- /dev/null +++ b/spec/if/acfg/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 :c:func:`getchark`. + + This device driver writes via :c:func:`rtems_putc`. + + The Termios framework is not used. There is no support to change device + settings, e.g. baud, stop bits, parity, etc. + + The + + * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`, + + * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and + + * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` + + configuration options are mutually exclusive. +text: '' +type: interface diff --git a/spec/if/acfg/appl-needs-simple-task-console-driver.yml b/spec/if/acfg/appl-needs-simple-task-console-driver.yml new file mode 100644 index 00000000..15ad5efa --- /dev/null +++ b/spec/if/acfg/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 :c:func:`getchark`. + + 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 + :c:func:`rtems_putc`. 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 + + * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`, + + * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and + + * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` + + configuration options are mutually exclusive. +text: '' +type: interface diff --git a/spec/if/acfg/appl-needs-stub-driver.yml b/spec/if/acfg/appl-needs-stub-driver.yml new file mode 100644 index 00000000..36654cfe --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-needs-timer-driver.yml b/spec/if/acfg/appl-needs-timer-driver.yml new file mode 100644 index 00000000..93ae9923 --- /dev/null +++ b/spec/if/acfg/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 + + * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`, + + * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or + + * `CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`, + + otherwise a compile time error will occur. +text: '' +type: interface diff --git a/spec/if/acfg/appl-needs-watchdog-driver.yml b/spec/if/acfg/appl-needs-watchdog-driver.yml new file mode 100644 index 00000000..63053c98 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-needs-zero-driver.yml b/spec/if/acfg/appl-needs-zero-driver.yml new file mode 100644 index 00000000..d69f3489 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/appl-prerequisite-drivers.yml b/spec/if/acfg/appl-prerequisite-drivers.yml new file mode 100644 index 00000000..ace0d734 --- /dev/null +++ b/spec/if/acfg/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 :c:type:`rtems_driver_address_table`. +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 + :ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` and before all other device driver + configuration options. + + See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement + of application device driver initializers. +text: '' +type: interface diff --git a/spec/if/acfg/ata-driver-task-priority.yml b/spec/if/acfg/ata-driver-task-priority.yml new file mode 100644 index 00000000..30cfb6fd --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER` is defined. +text: '' +type: interface diff --git a/spec/if/acfg/bdbuf-buffer-max-size.yml b/spec/if/acfg/bdbuf-buffer-max-size.yml new file mode 100644 index 00000000..08ca7ff7 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_BDBUF_BUFFER_MIN_SIZE`. +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/if/acfg/bdbuf-buffer-min-size.yml b/spec/if/acfg/bdbuf-buffer-min-size.yml new file mode 100644 index 00000000..2839b596 --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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/if/acfg/bdbuf-cache-memory-size.yml b/spec/if/acfg/bdbuf-cache-memory-size.yml new file mode 100644 index 00000000..4e02351c --- /dev/null +++ b/spec/if/acfg/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: '``SIZE_MAX``' + 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/if/acfg/bdbuf-max-read-ahead-blocks.yml b/spec/if/acfg/bdbuf-max-read-ahead-blocks.yml new file mode 100644 index 00000000..9d9134d0 --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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/if/acfg/bdbuf-max-write-blocks.yml b/spec/if/acfg/bdbuf-max-write-blocks.yml new file mode 100644 index 00000000..2fe9018c --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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/if/acfg/bdbuf-read-ahead-task-priority.yml b/spec/if/acfg/bdbuf-read-ahead-task-priority.yml new file mode 100644 index 00000000..34ed8993 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/bdbuf-swapout-block-hold.yml b/spec/if/acfg/bdbuf-swapout-block-hold.yml new file mode 100644 index 00000000..b4a54042 --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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/if/acfg/bdbuf-swapout-swap-period.yml b/spec/if/acfg/bdbuf-swapout-swap-period.yml new file mode 100644 index 00000000..ee4c8dd5 --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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/if/acfg/bdbuf-swapout-task-priority.yml b/spec/if/acfg/bdbuf-swapout-task-priority.yml new file mode 100644 index 00000000..82a5dd09 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/bdbuf-swapout-worker-taskp-riority.yml b/spec/if/acfg/bdbuf-swapout-worker-taskp-riority.yml new file mode 100644 index 00000000..fa942af0 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/bdbuf-swapout-worker-tasks.yml b/spec/if/acfg/bdbuf-swapout-worker-tasks.yml new file mode 100644 index 00000000..6e0d7e1e --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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/if/acfg/bdbuf-task-stack-size.yml b/spec/if/acfg/bdbuf-task-stack-size.yml new file mode 100644 index 00000000..f17f1f27 --- /dev/null +++ b/spec/if/acfg/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: :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` +copyrights: +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +default-value: '``RTEMS_MINIMUM_STACK_SIZE``' +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/if/acfg/bsp-idle-task-body.yml b/spec/if/acfg/bsp-idle-task-body.yml new file mode 100644 index 00000000..3fa18bec --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined, + + then the value of this configuration option defines the default value of + :ref:`CONFIGURE_IDLE_TASK_BODY`. +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/if/acfg/bsp-idle-task-stack-size.yml b/spec/if/acfg/bsp-idle-task-stack-size.yml new file mode 100644 index 00000000..5a982222 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined, + + then the value of this configuration option defines the default value of + :ref:`CONFIGURE_IDLE_TASK_SIZE`. +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/if/acfg/bsp-initial-extension.yml b/spec/if/acfg/bsp-initial-extension.yml new file mode 100644 index 00000000..a24078b8 --- /dev/null +++ b/spec/if/acfg/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 :c:type:`rtems_extensions_table`. +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 :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` 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/if/acfg/bsp-interrupt-stack-size.yml b/spec/if/acfg/bsp-interrupt-stack-size.yml new file mode 100644 index 00000000..c28fb731 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined, + + then the value of this configuration option defines the default value of + :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`. +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/if/acfg/bsp-prerequisite-drivers.yml b/spec/if/acfg/bsp-prerequisite-drivers.yml new file mode 100644 index 00000000..4f1e5ef6 --- /dev/null +++ b/spec/if/acfg/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 :c:type:`rtems_extensions_table`. +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 :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` 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 + :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`). +text: '' +type: interface diff --git a/spec/if/acfg/cbs-max-servers.yml b/spec/if/acfg/cbs-max-servers.yml new file mode 100644 index 00000000..63c30a81 --- /dev/null +++ b/spec/if/acfg/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: '``SIZE_MAX``' + min: 0 +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +default-value: :ref:`CONFIGURE_MAXIMUM_TASKS` +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 + :ref:`CONFIGURE_SCHEDULER_CBS` is defined. +text: '' +type: interface diff --git a/spec/if/acfg/constraint-bspappmin.yml b/spec/if/acfg/constraint-bspappmin.yml new file mode 100644 index 00000000..0cebb9b6 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/constraint-idlestackarea.yml b/spec/if/acfg/constraint-idlestackarea.yml new file mode 100644 index 00000000..aaf1f8b3 --- /dev/null +++ b/spec/if/acfg/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 ``size_t``. +type: constraint diff --git a/spec/if/acfg/constraint-isrstackalign.yml b/spec/if/acfg/constraint-isrstackalign.yml new file mode 100644 index 00000000..14189aa7 --- /dev/null +++ b/spec/if/acfg/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 + ``CPU_INTERRUPT_STACK_ALIGNMENT``. +type: constraint diff --git a/spec/if/acfg/constraint-isrstackarea.yml b/spec/if/acfg/constraint-isrstackarea.yml new file mode 100644 index 00000000..e096f008 --- /dev/null +++ b/spec/if/acfg/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 ``size_t``. +type: constraint diff --git a/spec/if/acfg/constraint-memsz.yml b/spec/if/acfg/constraint-memsz.yml new file mode 100644 index 00000000..b3a2204e --- /dev/null +++ b/spec/if/acfg/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/if/acfg/constraint-posix.yml b/spec/if/acfg/constraint-posix.yml new file mode 100644 index 00000000..fa76c0a3 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/constraint-prioclassic.yml b/spec/if/acfg/constraint-prioclassic.yml new file mode 100644 index 00000000..dead5852 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/constraint-stackspace.yml b/spec/if/acfg/constraint-stackspace.yml new file mode 100644 index 00000000..4eec247d --- /dev/null +++ b/spec/if/acfg/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 ``uintptr_t``. +type: constraint diff --git a/spec/if/acfg/constraint-unlimited.yml b/spec/if/acfg/constraint-unlimited.yml new file mode 100644 index 00000000..786fd53d --- /dev/null +++ b/spec/if/acfg/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 + :c:func:`rtems_resource_unlimited` the enable unlimited objects for this + object class, if the value passed to :c:func:`rtems_resource_unlimited` + satisfies all other constraints of this configuration option. +type: constraint diff --git a/spec/if/acfg/constraint-wkspace.yml b/spec/if/acfg/constraint-wkspace.yml new file mode 100644 index 00000000..0c87371a --- /dev/null +++ b/spec/if/acfg/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 ``uintptr_t``. +type: constraint diff --git a/spec/if/acfg/dirty-memory.yml b/spec/if/acfg/dirty-memory.yml new file mode 100644 index 00000000..59af9ec3 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY` is also defined, then the + memory is first dirtied and then zeroed. + + See also :ref:`CONFIGURE_MALLOC_DIRTY`. +text: '' +type: interface diff --git a/spec/if/acfg/disable-bsp-settings.yml b/spec/if/acfg/disable-bsp-settings.yml new file mode 100644 index 00000000..9ca726de --- /dev/null +++ b/spec/if/acfg/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: + + * :ref:`BSP_IDLE_TASK_BODY` + + * :ref:`BSP_IDLE_TASK_STACK_SIZE` + + * :ref:`BSP_INITIAL_EXTENSION` + + * :ref:`BSP_INTERRUPT_STACK_SIZE` + + * :ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` + + * :ref:`CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK` +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/if/acfg/disable-newlib-reentrancy.yml b/spec/if/acfg/disable-newlib-reentrancy.yml new file mode 100644 index 00000000..b3390e7c --- /dev/null +++ b/spec/if/acfg/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:data:`errno` is no longer a thread-local variable + if this option is enabled. +text: '' +type: interface diff --git a/spec/if/acfg/executive-ram-size.yml b/spec/if/acfg/executive-ram-size.yml new file mode 100644 index 00000000..fb7b3038 --- /dev/null +++ b/spec/if/acfg/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: '``UINTPTR_MAX``' + 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/if/acfg/extra-task-stacks.yml b/spec/if/acfg/extra-task-stacks.yml new file mode 100644 index 00000000..c9d16774 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/filesystem-all.yml b/spec/if/acfg/filesystem-all.yml new file mode 100644 index 00000000..9e03e126 --- /dev/null +++ b/spec/if/acfg/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 + + * :ref:`CONFIGURE_FILESYSTEM_DOSFS`, + + * :ref:`CONFIGURE_FILESYSTEM_FTPFS`, + + * :ref:`CONFIGURE_FILESYSTEM_IMFS`, + + * :ref:`CONFIGURE_FILESYSTEM_JFFS2`, + + * :ref:`CONFIGURE_FILESYSTEM_NFS`, + + * :ref:`CONFIGURE_FILESYSTEM_RFS`, and + + * :ref:`CONFIGURE_FILESYSTEM_TFTPFS`. +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/if/acfg/filesystem-dosfs.yml b/spec/if/acfg/filesystem-dosfs.yml new file mode 100644 index 00000000..d67b49f6 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`. +text: '' +type: interface diff --git a/spec/if/acfg/filesystem-ftpfs.yml b/spec/if/acfg/filesystem-ftpfs.yml new file mode 100644 index 00000000..aca6c3f5 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/filesystem-imfs.yml b/spec/if/acfg/filesystem-imfs.yml new file mode 100644 index 00000000..dfeb3469 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/filesystem-jffs2.yml b/spec/if/acfg/filesystem-jffs2.yml new file mode 100644 index 00000000..ca9c5b01 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/filesystem-nfs.yml b/spec/if/acfg/filesystem-nfs.yml new file mode 100644 index 00000000..a846229b --- /dev/null +++ b/spec/if/acfg/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/if/acfg/filesystem-rfs.yml b/spec/if/acfg/filesystem-rfs.yml new file mode 100644 index 00000000..f2d5ba58 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`. +text: '' +type: interface diff --git a/spec/if/acfg/filesystem-tftpfs.yml b/spec/if/acfg/filesystem-tftpfs.yml new file mode 100644 index 00000000..9ab6d4d2 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/group-bdbuf.yml b/spec/if/acfg/group-bdbuf.yml new file mode 100644 index 00000000..502e05e3 --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: Block Device Cache Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-bsp.yml b/spec/if/acfg/group-bsp.yml new file mode 100644 index 00000000..623b2d04 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option. +enabled-by: true +interface-type: appl-config-group +links: +- role: requirement-refinement + uid: ../../applconfig +name: BSP Related Configuration Options +text: '' +type: interface diff --git a/spec/if/acfg/group-classic.yml b/spec/if/acfg/group-classic.yml new file mode 100644 index 00000000..cb718de0 --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: Classic API Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-classicinit.yml b/spec/if/acfg/group-classicinit.yml new file mode 100644 index 00000000..dc46849f --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: Classic API Initialization Task Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-devdrv.yml b/spec/if/acfg/group-devdrv.yml new file mode 100644 index 00000000..db54eb73 --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: Device Driver Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-eventrecord.yml b/spec/if/acfg/group-eventrecord.yml new file mode 100644 index 00000000..29e4319d --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: Event Recording Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-filesystem.yml b/spec/if/acfg/group-filesystem.yml new file mode 100644 index 00000000..977641fa --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_APPLICATION_DISABLE_FILESYSTEM` configuration option. + Alternatively, you can strip down the features of the base filesystem with the + :ref:`CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM` and + :ref:`CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM` 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: + + * :ref:`CONFIGURE_IMFS_DISABLE_CHMOD` + + * :ref:`CONFIGURE_IMFS_DISABLE_CHOWN` + + * :ref:`CONFIGURE_IMFS_DISABLE_LINK` + + * :ref:`CONFIGURE_IMFS_DISABLE_MKNOD` + + * :ref:`CONFIGURE_IMFS_DISABLE_MKNOD_FILE` + + * :ref:`CONFIGURE_IMFS_DISABLE_MOUNT` + + * :ref:`CONFIGURE_IMFS_DISABLE_READDIR` + + * :ref:`CONFIGURE_IMFS_DISABLE_READLINK` + + * :ref:`CONFIGURE_IMFS_DISABLE_RENAME` + + * :ref:`CONFIGURE_IMFS_DISABLE_RMNOD` + + * :ref:`CONFIGURE_IMFS_DISABLE_SYMLINK` + + * :ref:`CONFIGURE_IMFS_DISABLE_UNMOUNT` + + * :ref:`CONFIGURE_IMFS_DISABLE_UTIME` + + * :ref:`CONFIGURE_IMFS_ENABLE_MKFIFO` +enabled-by: true +interface-type: appl-config-group +links: +- role: requirement-refinement + uid: ../../applconfig +name: Filesystem Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-general.yml b/spec/if/acfg/group-general.yml new file mode 100644 index 00000000..86b37237 --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: General System Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-idle.yml b/spec/if/acfg/group-idle.yml new file mode 100644 index 00000000..4e9dc5f4 --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: Idle Task Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-mpci.yml b/spec/if/acfg/group-mpci.yml new file mode 100644 index 00000000..238b898a --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_MP_APPLICATION` + 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: ../../applconfig +name: Multiprocessing Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-posix.yml b/spec/if/acfg/group-posix.yml new file mode 100644 index 00000000..ff24c8de --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: POSIX API Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-posixinit.yml b/spec/if/acfg/group-posixinit.yml new file mode 100644 index 00000000..ff093c07 --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: POSIX Initialization Thread Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-schedgeneral.yml b/spec/if/acfg/group-schedgeneral.yml new file mode 100644 index 00000000..93429ed0 --- /dev/null +++ b/spec/if/acfg/group-schedgeneral.yml @@ -0,0 +1,33 @@ +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 :ref:`Deterministic Priority Scheduler <SchedulerPriority>` + algorithm is used in uniprocessor configurations. In case SMP is enabled and + the configured maximum processors + (:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`) is greater + than one, then the :ref:`Earliest Deadline First (EDF) SMP Scheduler + <SchedulerSMPEDF>` is selected as the default scheduler algorithm. + + For the :ref:`schedulers built into + RTEMS <SchedulingConcepts>`, 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: ../../applconfig +name: General Scheduler Configuration +text: '' +type: interface diff --git a/spec/if/acfg/group-stackalloc.yml b/spec/if/acfg/group-stackalloc.yml new file mode 100644 index 00000000..e847fbbf --- /dev/null +++ b/spec/if/acfg/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: ../../applconfig +name: Task Stack Allocator Configuration +text: '' +type: interface diff --git a/spec/if/acfg/idle-task-body.yml b/spec/if/acfg/idle-task-body.yml new file mode 100644 index 00000000..a4221954 --- /dev/null +++ b/spec/if/acfg/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 :ref:`BSP_IDLE_TASK_BODY` 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 :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`. +text: '' +type: interface diff --git a/spec/if/acfg/idle-task-init-appl.yml b/spec/if/acfg/idle-task-init-appl.yml new file mode 100644 index 00000000..378fb73e --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_IDLE_TASK_BODY` configuration option, + otherwise a compile time error in the configuration file will occur. + + The application shall define exactly one of the following configuration + options + + * :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`, + + * :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or + + * `CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION` + + otherwise a compile time error in the configuration file will occur. +text: '' +type: interface diff --git a/spec/if/acfg/idle-task-stack-size.yml b/spec/if/acfg/idle-task-stack-size.yml new file mode 100644 index 00000000..a4137f5d --- /dev/null +++ b/spec/if/acfg/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: :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` +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 + :ref:`CONFIGURE_MAXIMUM_PROCESSORS`. +text: '' +type: interface diff --git a/spec/if/acfg/imfs-disable-chmod.yml b/spec/if/acfg/imfs-disable-chmod.yml new file mode 100644 index 00000000..88c80592 --- /dev/null +++ b/spec/if/acfg/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:func:`chmod`). +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/if/acfg/imfs-disable-chown.yml b/spec/if/acfg/imfs-disable-chown.yml new file mode 100644 index 00000000..ae33bcf6 --- /dev/null +++ b/spec/if/acfg/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:func:`chown`). +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/if/acfg/imfs-disable-link.yml b/spec/if/acfg/imfs-disable-link.yml new file mode 100644 index 00000000..130958e6 --- /dev/null +++ b/spec/if/acfg/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:func:`link`). +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/if/acfg/imfs-disable-mknod-device.yml b/spec/if/acfg/imfs-disable-mknod-device.yml new file mode 100644 index 00000000..332c16ab --- /dev/null +++ b/spec/if/acfg/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/if/acfg/imfs-disable-mknod-file.yml b/spec/if/acfg/imfs-disable-mknod-file.yml new file mode 100644 index 00000000..952d7b77 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/imfs-disable-mknod.yml b/spec/if/acfg/imfs-disable-mknod.yml new file mode 100644 index 00000000..1bd389f3 --- /dev/null +++ b/spec/if/acfg/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:func:`mknod`). +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/if/acfg/imfs-disable-mount.yml b/spec/if/acfg/imfs-disable-mount.yml new file mode 100644 index 00000000..e434ff51 --- /dev/null +++ b/spec/if/acfg/imfs-disable-mount.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 + mounting other filesystems. +description: | + In case this configuration option is defined, then the root IMFS does not + support mounting other filesystems (no support for :c:func:`mount`). +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/if/acfg/imfs-disable-readdir.yml b/spec/if/acfg/imfs-disable-readdir.yml new file mode 100644 index 00000000..d3f8cc68 --- /dev/null +++ b/spec/if/acfg/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:func:`readdir`). 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/if/acfg/imfs-disable-readlink.yml b/spec/if/acfg/imfs-disable-readlink.yml new file mode 100644 index 00000000..5bfc00c4 --- /dev/null +++ b/spec/if/acfg/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:func:`readlink`). +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/if/acfg/imfs-disable-rename.yml b/spec/if/acfg/imfs-disable-rename.yml new file mode 100644 index 00000000..60a33fff --- /dev/null +++ b/spec/if/acfg/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:func:`rename`). +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/if/acfg/imfs-disable-rmnod.yml b/spec/if/acfg/imfs-disable-rmnod.yml new file mode 100644 index 00000000..3686ab03 --- /dev/null +++ b/spec/if/acfg/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:func:`rmnod`). +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/if/acfg/imfs-disable-symlink.yml b/spec/if/acfg/imfs-disable-symlink.yml new file mode 100644 index 00000000..d4b507db --- /dev/null +++ b/spec/if/acfg/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:func:`symlink`). +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/if/acfg/imfs-disable-unmount.yml b/spec/if/acfg/imfs-disable-unmount.yml new file mode 100644 index 00000000..20cf5e15 --- /dev/null +++ b/spec/if/acfg/imfs-disable-unmount.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 + unmounting other filesystems. +description: | + In case this configuration option is defined, then the root IMFS does not + support unmounting other filesystems (no support for :c:func:`unmount`). +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/if/acfg/imfs-disable-utime.yml b/spec/if/acfg/imfs-disable-utime.yml new file mode 100644 index 00000000..49a13c28 --- /dev/null +++ b/spec/if/acfg/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:func:`utime`). +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/if/acfg/imfs-enable-mkfifo.yml b/spec/if/acfg/imfs-enable-mkfifo.yml new file mode 100644 index 00000000..22aed1da --- /dev/null +++ b/spec/if/acfg/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:func:`mkfifo`). +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/if/acfg/imfs-memfile-bytes-per-block.yml b/spec/if/acfg/imfs-memfile-bytes-per-block.yml new file mode 100644 index 00000000..7f7ed899 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/init-task-arguments.yml b/spec/if/acfg/init-task-arguments.yml new file mode 100644 index 00000000..f20f3187 --- /dev/null +++ b/spec/if/acfg/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_argument``. +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/if/acfg/init-task-attributes.yml b/spec/if/acfg/init-task-attributes.yml new file mode 100644 index 00000000..5bfa6aa2 --- /dev/null +++ b/spec/if/acfg/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_DEFAULT_ATTRIBUTES``' +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/if/acfg/init-task-entrypoint.yml b/spec/if/acfg/init-task-entrypoint.yml new file mode 100644 index 00000000..2b5813dc --- /dev/null +++ b/spec/if/acfg/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/if/acfg/init-task-initial-modes.yml b/spec/if/acfg/init-task-initial-modes.yml new file mode 100644 index 00000000..3c1f99f3 --- /dev/null +++ b/spec/if/acfg/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_DEFAULT_MODES``, + otherwise the default value is ``RTEMS_NO_PREEMPT``. +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/if/acfg/init-task-name.yml b/spec/if/acfg/init-task-name.yml new file mode 100644 index 00000000..9ce6f52e --- /dev/null +++ b/spec/if/acfg/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_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 :c:func:`rtems_build_name` to define the task name. +text: '' +type: interface diff --git a/spec/if/acfg/init-task-priority.yml b/spec/if/acfg/init-task-priority.yml new file mode 100644 index 00000000..f5da6b4f --- /dev/null +++ b/spec/if/acfg/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/if/acfg/init-task-stack-size.yml b/spec/if/acfg/init-task-stack-size.yml new file mode 100644 index 00000000..fb3daa0a --- /dev/null +++ b/spec/if/acfg/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: :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` +copyrights: +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +default-value: :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` +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/if/acfg/initial-extensions.yml b/spec/if/acfg/initial-extensions.yml new file mode 100644 index 00000000..9d742c05 --- /dev/null +++ b/spec/if/acfg/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 :c:type:`rtems_extensions_table`. +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 + :ref:`BSP_INITIAL_EXTENSION` and after the entries of all other initial + user extensions. +text: '' +type: interface diff --git a/spec/if/acfg/interrupt-stack-size.yml b/spec/if/acfg/interrupt-stack-size.yml new file mode 100644 index 00000000..b2986237 --- /dev/null +++ b/spec/if/acfg/interrupt-stack-size.yml @@ -0,0 +1,43 @@ +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 :ref:`BSP_INTERRUPT_STACK_SIZE` in case it is defined, + otherwise the default value is ``CPU_STACK_MINIMUM_SIZE``. +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 + (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`). 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 :ref:`stack checker + <CONFIGURE_STACK_CHECKER_ENABLED>`. However, using a too small interrupt + stack size may still result in undefined behaviour. + + In releases before RTEMS 5.1 the default value was + :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` instead of ``CPU_STACK_MINIMUM_SIZE``. +text: '' +type: interface diff --git a/spec/if/acfg/malloc-bsp-supports-sbrk.yml b/spec/if/acfg/malloc-bsp-supports-sbrk.yml new file mode 100644 index 00000000..8ffd6a31 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined, + + then not all memory is made available to the C Program Heap immediately at + system initialization time. When :c:func:`malloc()` or other standard memory + allocation functions are unable to allocate memory, they will call the BSP + supplied :c:func:`sbrk()` 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/if/acfg/malloc-dirty.yml b/spec/if/acfg/malloc-dirty.yml new file mode 100644 index 00000000..8840eff6 --- /dev/null +++ b/spec/if/acfg/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:func:`malloc` 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 + :ref:`CONFIGURE_DIRTY_MEMORY` which dirties the memory only once during the + system initialization. +text: '' +type: interface diff --git a/spec/if/acfg/max-barriers.yml b/spec/if/acfg/max-barriers.yml new file mode 100644 index 00000000..77bc28e2 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. +text: '' +type: interface diff --git a/spec/if/acfg/max-drivers.yml b/spec/if/acfg/max-drivers.yml new file mode 100644 index 00000000..fb2220ee --- /dev/null +++ b/spec/if/acfg/max-drivers.yml @@ -0,0 +1,33 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +appl-config-option-type: integer +constraints: + max: '``SIZE_MAX``' + 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 device drivers + configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` + configuration options. +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 this + configuration parameter shall be larger than the number of statically + configured device drivers. Drivers configured using the + ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration options are + statically installed. +text: '' +type: interface diff --git a/spec/if/acfg/max-file-descriptors.yml b/spec/if/acfg/max-file-descriptors.yml new file mode 100644 index 00000000..dd6baed7 --- /dev/null +++ b/spec/if/acfg/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: '``SIZE_MAX``' + 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 ``/dev/console``. +text: '' +type: interface diff --git a/spec/if/acfg/max-message-queues.yml b/spec/if/acfg/max-message-queues.yml new file mode 100644 index 00000000..e8963de9 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. You have to account for the memory used to + store the messages of each message queue, see + :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`. +text: '' +type: interface diff --git a/spec/if/acfg/max-partitions.yml b/spec/if/acfg/max-partitions.yml new file mode 100644 index 00000000..b6c088a6 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. +text: '' +type: interface diff --git a/spec/if/acfg/max-periods.yml b/spec/if/acfg/max-periods.yml new file mode 100644 index 00000000..694ab3c0 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. +text: '' +type: interface diff --git a/spec/if/acfg/max-ports.yml b/spec/if/acfg/max-ports.yml new file mode 100644 index 00000000..a1752318 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. +text: '' +type: interface diff --git a/spec/if/acfg/max-posix-key-value-pairs.yml b/spec/if/acfg/max-posix-key-value-pairs.yml new file mode 100644 index 00000000..694fbee0 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_MAXIMUM_POSIX_KEYS` * + :ref:`CONFIGURE_MAXIMUM_TASKS` + + :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`. +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 + :ref:`ConfigUnlimitedObjects`. + + A key value pair is created by :c:func:`pthread_setspecific` if the value + is not :c:macro:`NULL`, otherwise it is deleted. +text: '' +type: interface diff --git a/spec/if/acfg/max-posix-keys.yml b/spec/if/acfg/max-posix-keys.yml new file mode 100644 index 00000000..5239647c --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. +text: '' +type: interface diff --git a/spec/if/acfg/max-posix-message-queues.yml b/spec/if/acfg/max-posix-message-queues.yml new file mode 100644 index 00000000..097871f8 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. You have to account for the memory used to + store the messages of each message queue, see + :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`. +text: '' +type: interface diff --git a/spec/if/acfg/max-posix-queued-signals.yml b/spec/if/acfg/max-posix-queued-signals.yml new file mode 100644 index 00000000..541c8ffd --- /dev/null +++ b/spec/if/acfg/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/if/acfg/max-posix-semaphores.yml b/spec/if/acfg/max-posix-semaphores.yml new file mode 100644 index 00000000..5c313fee --- /dev/null +++ b/spec/if/acfg/max-posix-semaphores.yml @@ -0,0 +1,33 @@ +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 + :ref:`ConfigUnlimitedObjects`. + + Named semaphores are created with :c:func:`sem_open()`. Semaphores + initialized with :c:func:`sem_init()` are not affected by this configuration + option since the storage space for these semaphores is user-provided. +text: '' +type: interface diff --git a/spec/if/acfg/max-posix-shms.yml b/spec/if/acfg/max-posix-shms.yml new file mode 100644 index 00000000..d3f544a6 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. +text: '' +type: interface diff --git a/spec/if/acfg/max-posix-threads.yml b/spec/if/acfg/max-posix-threads.yml new file mode 100644 index 00000000..0b314d5c --- /dev/null +++ b/spec/if/acfg/max-posix-threads.yml @@ -0,0 +1,40 @@ +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 + :ref:`ConfigUnlimitedObjects`. + + 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 + :ref:`CONFIGURE_EXTRA_TASK_STACKS` is used to specify thread stack + requirements **above** the minimum size required. See :ref:`Reserve + Task/Thread Stack Memory Above Minimum` for more information about + ``CONFIGURE_EXTRA_TASK_STACKS``. + + The maximum number of Classic API Tasks is specified by + :ref:`CONFIGURE_MAXIMUM_TASKS`. + + All POSIX threads have floating point enabled. +text: '' +type: interface diff --git a/spec/if/acfg/max-posix-timers.yml b/spec/if/acfg/max-posix-timers.yml new file mode 100644 index 00000000..67b1056e --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. + + Timers are only available if RTEMS was built with the + ``--enable-posix`` build configuration option. +text: '' +type: interface diff --git a/spec/if/acfg/max-priority.yml b/spec/if/acfg/max-priority.yml new file mode 100644 index 00000000..9cd3f58a --- /dev/null +++ b/spec/if/acfg/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 + + * :ref:`SchedulerPriority`, which is the default in uniprocessor + configurations and can be configured through the + :ref:`CONFIGURE_SCHEDULER_PRIORITY` configuration option, + + * :ref:`SchedulerSMPPriority` which can be configured through the + :ref:`CONFIGURE_SCHEDULER_PRIORITY_SMP` configuration option, and + + * :ref:`SchedulerSMPPriorityAffinity` which can be configured through the + :ref:`CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP` 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/if/acfg/max-processors.yml b/spec/if/acfg/max-processors.yml new file mode 100644 index 00000000..9341c97c --- /dev/null +++ b/spec/if/acfg/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: '``CPU_MAXIMUM_PROCESSORS``' + 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/if/acfg/max-regions.yml b/spec/if/acfg/max-regions.yml new file mode 100644 index 00000000..fe06f81f --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. +text: '' +type: interface diff --git a/spec/if/acfg/max-semaphores.yml b/spec/if/acfg/max-semaphores.yml new file mode 100644 index 00000000..76798f34 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. + + In SMP configurations, the size of a Semaphore Control Block depends on the + scheduler count (see :ref:`ConfigurationSchedulerTable`). The semaphores + using the :ref:`MrsP` need a ceiling priority per scheduler. +text: '' +type: interface diff --git a/spec/if/acfg/max-tasks.yml b/spec/if/acfg/max-tasks.yml new file mode 100644 index 00000000..45b00175 --- /dev/null +++ b/spec/if/acfg/max-tasks.yml @@ -0,0 +1,45 @@ +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 + :ref:`ConfigUnlimitedObjects`. + + 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 parameter + ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify task stack requirements + *ABOVE* the minimum size required. See :ref:`Reserve Task/Thread Stack + Memory Above Minimum` for more information about + ``CONFIGURE_EXTRA_TASK_STACKS``. + + The maximum number of POSIX threads is specified by + :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`. + + 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/if/acfg/max-thread-name-size.yml b/spec/if/acfg/max-thread-name-size.yml new file mode 100644 index 00000000..e8f3c552 --- /dev/null +++ b/spec/if/acfg/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: '``SIZE_MAX``' + 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 + `PTHREAD_SETNAME_NP(3) <http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>`_. + + 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/if/acfg/max-timers.yml b/spec/if/acfg/max-timers.yml new file mode 100644 index 00000000..0ecfe00f --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects`. +text: '' +type: interface diff --git a/spec/if/acfg/max-user-extensions.yml b/spec/if/acfg/max-user-extensions.yml new file mode 100644 index 00000000..c3b46807 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/memory-overhead.yml b/spec/if/acfg/memory-overhead.yml new file mode 100644 index 00000000..a7a07757 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`. +text: '' +type: interface diff --git a/spec/if/acfg/message-buffer-memory.yml b/spec/if/acfg/message-buffer-memory.yml new file mode 100644 index 00000000..0f98d9d4 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_MAXIMUM_MESSAGE_QUEUES` and + :ref:`CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES` 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 dependes 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/if/acfg/microseconds-per-tick.yml b/spec/if/acfg/microseconds-per-tick.yml new file mode 100644 index 00000000..ee1480f1 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`. + + 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/if/acfg/min-posix-thread-stack-size.yml b/spec/if/acfg/min-posix-thread-stack-size.yml new file mode 100644 index 00000000..6a2e819f --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`. +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/if/acfg/min-task-stack-size.yml b/spec/if/acfg/min-task-stack-size.yml new file mode 100644 index 00000000..b64b1ab4 --- /dev/null +++ b/spec/if/acfg/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: '``CPU_STACK_MINIMUM_SIZE``' +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 :ref:`CONFIGURE_STACK_CHECKER_ENABLED`). + + 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 + :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE` + configuration option. + + In releases before RTEMS 5.1 the ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` was + used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`. +text: '' +type: interface diff --git a/spec/if/acfg/mp-appl.yml b/spec/if/acfg/mp-appl.yml new file mode 100644 index 00000000..2474a79b --- /dev/null +++ b/spec/if/acfg/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/if/acfg/mp-extra-server-stack.yml b/spec/if/acfg/mp-extra-server-stack.yml new file mode 100644 index 00000000..25f11bd8 --- /dev/null +++ b/spec/if/acfg/mp-extra-server-stack.yml @@ -0,0 +1,29 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +appl-config-option-type: integer +constraints: + max: '``UINT32_MAX``' + 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 ``size_t``. +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 + :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`. +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 + :ref:`CONFIGURE_MP_APPLICATION` is defined. +text: '' +type: interface diff --git a/spec/if/acfg/mp-max-global-objects.yml b/spec/if/acfg/mp-max-global-objects.yml new file mode 100644 index 00000000..f795d53a --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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_GLOBAL`` attribute. + + This configuration option is only evaluated if + :ref:`CONFIGURE_MP_APPLICATION` is defined. +text: '' +type: interface diff --git a/spec/if/acfg/mp-max-nodes.yml b/spec/if/acfg/mp-max-nodes.yml new file mode 100644 index 00000000..5342ea01 --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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 + :ref:`CONFIGURE_MP_APPLICATION` is defined. +text: '' +type: interface diff --git a/spec/if/acfg/mp-max-proxies.yml b/spec/if/acfg/mp-max-proxies.yml new file mode 100644 index 00000000..f20b5333 --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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 + :ref:`MPCIProxies`. + + This configuration option is only evaluated if + :ref:`CONFIGURE_MP_APPLICATION` is defined. +text: '' +type: interface diff --git a/spec/if/acfg/mp-mpci-table-pointer.yml b/spec/if/acfg/mp-mpci-table-pointer.yml new file mode 100644 index 00000000..8d0f00cb --- /dev/null +++ b/spec/if/acfg/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 + :c:type:`rtems_mpci_table`. +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 + :ref:`CONFIGURE_MP_APPLICATION` is defined. +text: '' +type: interface diff --git a/spec/if/acfg/mp-node-number.yml b/spec/if/acfg/mp-node-number.yml new file mode 100644 index 00000000..1a51de4a --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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 + :ref:`CONFIGURE_MP_APPLICATION` is defined. +text: '' +type: interface diff --git a/spec/if/acfg/posix-init-thread-entry-point.yml b/spec/if/acfg/posix-init-thread-entry-point.yml new file mode 100644 index 00000000..fca4e899 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/posix-init-thread-stack-size.yml b/spec/if/acfg/posix-init-thread-stack-size.yml new file mode 100644 index 00000000..59a3ead4 --- /dev/null +++ b/spec/if/acfg/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: :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` +copyrights: +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +default-value: :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE` +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/if/acfg/posix-init-thread-table.yml b/spec/if/acfg/posix-init-thread-table.yml new file mode 100644 index 00000000..6a7d9250 --- /dev/null +++ b/spec/if/acfg/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 + + * :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`, + + * `CONFIGURE_POSIX_INIT_THREAD_TABLE`, or + + * :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION` + + otherwise a compile time error in the configuration file will occur. +text: '' +type: interface diff --git a/spec/if/acfg/record-extensions-enabled.yml b/spec/if/acfg/record-extensions-enabled.yml new file mode 100644 index 00000000..3486238b --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS` 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/if/acfg/record-fatal-dump-base64-zlib.yml b/spec/if/acfg/record-fatal-dump-base64-zlib.yml new file mode 100644 index 00000000..731a6a72 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS` is properly defined, + + then the event records are compressed by zlib and dumped in Base64 encoding + in a fatal error extension (see :ref:`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/if/acfg/record-fatal-dump-base64.yml b/spec/if/acfg/record-fatal-dump-base64.yml new file mode 100644 index 00000000..14ab9517 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS` is properly defined, + + * and :ref:`CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB` is undefined, + + then the event records are dumped in Base64 encoding in a fatal error + extension (see :ref:`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/if/acfg/record-per-processor-items.yml b/spec/if/acfg/record-per-processor-items.yml new file mode 100644 index 00000000..335c4fca --- /dev/null +++ b/spec/if/acfg/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: '``SIZE_MAX``' + 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 (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`). If the value of this + configuration option is zero, then nothing is allocated. +text: '' +type: interface diff --git a/spec/if/acfg/rtems-init-tasks-table.yml b/spec/if/acfg/rtems-init-tasks-table.yml new file mode 100644 index 00000000..24a35697 --- /dev/null +++ b/spec/if/acfg/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`, + + * :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or + + * :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION` + + otherwise a compile time error in the configuration file will occur. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-assignments.yml b/spec/if/acfg/scheduler-assignments.yml new file mode 100644 index 00000000..e678d6c3 --- /dev/null +++ b/spec/if/acfg/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 )`` + + * :c:macro:`RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER` + - | + The value of this configuration option shall be a list of exactly + :ref:`CONFIGURE_MAXIMUM_PROCESSORS` 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 + :ref:`ConfigurationSchedulersClustered`. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-cbs.yml b/spec/if/acfg/scheduler-cbs.yml new file mode 100644 index 00000000..7431d659 --- /dev/null +++ b/spec/if/acfg/scheduler-cbs.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) 1988, 2008 On-Line Applications Research Corporation (OAR) +description: | + In case this configuration option is defined, then + :ref:`Constant Bandwidth Server (CBS) Scheduler <SchedulerCBS>` + 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 :ref:`clustered scheduler configuration + <ConfigurationSchedulersClustered>` is present, then it is used as the + scheduler for exactly one processor. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-edf-smp.yml b/spec/if/acfg/scheduler-edf-smp.yml new file mode 100644 index 00000000..526b051c --- /dev/null +++ b/spec/if/acfg/scheduler-edf-smp.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) 1988, 2008 On-Line Applications Research Corporation (OAR) +description: | + In case this configuration option is defined, then + :ref:`Earliest Deadline First (EDF) SMP Scheduler <SchedulerSMPEDF>` + 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 :ref:`clustered scheduler configuration + <ConfigurationSchedulersClustered>` is present, then it is used as the + scheduler for up to 32 processors. + + This scheduler algorithm is the default in SMP configurations if + :ref:`CONFIGURE_MAXIMUM_PROCESSORS` is + greater than one. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-edf.yml b/spec/if/acfg/scheduler-edf.yml new file mode 100644 index 00000000..36f89170 --- /dev/null +++ b/spec/if/acfg/scheduler-edf.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) 1988, 2008 On-Line Applications Research Corporation (OAR) +description: | + In case this configuration option is defined, then + :ref:`Earliest Deadline First (EDF) Scheduler <SchedulerEDF>` + 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 :ref:`clustered scheduler configuration + <ConfigurationSchedulersClustered>` is present, then it is used as the + scheduler for exactly one processor. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-name.yml b/spec/if/acfg/scheduler-name.yml new file mode 100644 index 00000000..652fabe3 --- /dev/null +++ b/spec/if/acfg/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_name``. +copyrights: +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +default-value: | + The default value is + + * ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`, + + * ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler <SchedulerSMPPriorityAffinity>`, + + * ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`, + + * ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>`, + + * ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`, + + * ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`, + + * ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler <SchedulerPriority>`, and + + * ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler <SchedulerPrioritySimple>`. +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 c:func:`rtems_scheduler_ident`. + + Use :c:func:`rtems_build_name` to define the scheduler name. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-priority-affinity-smp.yml b/spec/if/acfg/scheduler-priority-affinity-smp.yml new file mode 100644 index 00000000..5fce590c --- /dev/null +++ b/spec/if/acfg/scheduler-priority-affinity-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 + :ref:`Arbitrary Processor Affinity SMP Scheduler <SchedulerSMPPriorityAffinity>` + 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 :ref:`clustered scheduler configuration + <ConfigurationSchedulersClustered>` is present, then it is used as the + scheduler for up to 32 processors. + + The memory allocated for this scheduler depends on the + :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-priority-smp.yml b/spec/if/acfg/scheduler-priority-smp.yml new file mode 100644 index 00000000..f23010bf --- /dev/null +++ b/spec/if/acfg/scheduler-priority-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 + :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>` + 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 :ref:`clustered scheduler configuration + <ConfigurationSchedulersClustered>` is present, then it is used as the + scheduler for up to 32 processors. + + The memory allocated for this scheduler depends on the + :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-priority.yml b/spec/if/acfg/scheduler-priority.yml new file mode 100644 index 00000000..4f991320 --- /dev/null +++ b/spec/if/acfg/scheduler-priority.yml @@ -0,0 +1,32 @@ +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 + :ref:`Deterministic Priority Scheduler <SchedulerPriority>` + 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 :ref:`clustered scheduler configuration + <ConfigurationSchedulersClustered>` is present, then it is used as the + scheduler for exactly one processor. + + This scheduler algorithm is the default when + :ref:`CONFIGURE_MAXIMUM_PROCESSORS` is + exactly one. + + The memory allocated for this scheduler depends on the + :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-simple-smp.yml b/spec/if/acfg/scheduler-simple-smp.yml new file mode 100644 index 00000000..d3e0ac65 --- /dev/null +++ b/spec/if/acfg/scheduler-simple-smp.yml @@ -0,0 +1,28 @@ +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 + :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>` + 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 :ref:`clustered scheduler configuration + <ConfigurationSchedulersClustered>` is present, then it is used as the + scheduler for up to 32 processors. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-simple.yml b/spec/if/acfg/scheduler-simple.yml new file mode 100644 index 00000000..61e69517 --- /dev/null +++ b/spec/if/acfg/scheduler-simple.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) 1988, 2008 On-Line Applications Research Corporation (OAR) +description: | + In case this configuration option is defined, then + :ref:`Simple Priority Scheduler <SchedulerPrioritySimple>` + 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 :ref:`clustered scheduler configuration + <ConfigurationSchedulersClustered>` is present, then it is used as the + scheduler for exactly one processor. +text: '' +type: interface diff --git a/spec/if/acfg/scheduler-strong-apa.yml b/spec/if/acfg/scheduler-strong-apa.yml new file mode 100644 index 00000000..d4a98198 --- /dev/null +++ b/spec/if/acfg/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/if/acfg/scheduler-user.yml b/spec/if/acfg/scheduler-user.yml new file mode 100644 index 00000000..b7967f1d --- /dev/null +++ b/spec/if/acfg/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/if/acfg/stack-checker-enabled.yml b/spec/if/acfg/stack-checker-enabled.yml new file mode 100644 index 00000000..ca0e55fc --- /dev/null +++ b/spec/if/acfg/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/if/acfg/task-stack-allocator-init.yml b/spec/if/acfg/task-stack-allocator-init.yml new file mode 100644 index 00000000..139ecf27 --- /dev/null +++ b/spec/if/acfg/task-stack-allocator-init.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 ( *initialize )( size_t )`` or to ``NULL``. +copyrights: +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +default-value: '``NULL``' +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` + + * :ref:`CONFIGURE_TASK_STACK_ALLOCATOR` + + * :ref:`CONFIGURE_TASK_STACK_DEALLOCATOR` +text: '' +type: interface diff --git a/spec/if/acfg/task-stack-allocator.yml b/spec/if/acfg/task-stack-allocator.yml new file mode 100644 index 00000000..acedb118 --- /dev/null +++ b/spec/if/acfg/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: + + * :ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT` + + * `CONFIGURE_TASK_STACK_ALLOCATOR` + + * :ref:`CONFIGURE_TASK_STACK_DEALLOCATOR` +text: '' +type: interface diff --git a/spec/if/acfg/task-stack-deallocator.yml b/spec/if/acfg/task-stack-deallocator.yml new file mode 100644 index 00000000..50c21616 --- /dev/null +++ b/spec/if/acfg/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: + + * :ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT` + + * :ref:`CONFIGURE_TASK_STACK_ALLOCATOR` + + * `CONFIGURE_TASK_STACK_DEALLOCATOR` +text: '' +type: interface diff --git a/spec/if/acfg/task-stack-from-alloc.yml b/spec/if/acfg/task-stack-from-alloc.yml new file mode 100644 index 00000000..b9dc7390 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`. +text: '' +type: interface diff --git a/spec/if/acfg/task-stack-no-workspace.yml b/spec/if/acfg/task-stack-no-workspace.yml new file mode 100644 index 00000000..ab1c7693 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`. +text: '' +type: interface diff --git a/spec/if/acfg/ticks-per-time-slice.yml b/spec/if/acfg/ticks-per-time-slice.yml new file mode 100644 index 00000000..24e5f0f8 --- /dev/null +++ b/spec/if/acfg/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: '``UINT32_MAX``' + 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 :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`. +text: '' +type: interface diff --git a/spec/if/acfg/unified-work-areas.yml b/spec/if/acfg/unified-work-areas.yml new file mode 100644 index 00000000..1a99d8f1 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`ConfigUnlimitedObjects` 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/if/acfg/unlimited-allocation-size.yml b/spec/if/acfg/unlimited-allocation-size.yml new file mode 100644 index 00000000..d77027c1 --- /dev/null +++ b/spec/if/acfg/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 :ref:`CONFIGURE_UNLIMITED_OBJECTS` is defined, then the value of this + configuration option defines the default objects maximum of all object + classes supporting :ref:`ConfigUnlimitedObjects` 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 :c:func:`rtems_resource_unlimited` macro. +text: '' +type: interface diff --git a/spec/if/acfg/unlimited-objects.yml b/spec/if/acfg/unlimited-objects.yml new file mode 100644 index 00000000..74b0a1c5 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_UNIFIED_WORK_AREAS` 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 :ref:`CONFIGURE_UNLIMITED_ALLOCATION_SIZE`. +text: '' +type: interface diff --git a/spec/if/acfg/use-devfs-as-base-filesystem.yml b/spec/if/acfg/use-devfs-as-base-filesystem.yml new file mode 100644 index 00000000..c6f25693 --- /dev/null +++ b/spec/if/acfg/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 + + * :ref:`CONFIGURE_IMFS_DISABLE_CHMOD`, + + * :ref:`CONFIGURE_IMFS_DISABLE_CHOWN`, + + * :ref:`CONFIGURE_IMFS_DISABLE_LINK`, + + * :ref:`CONFIGURE_IMFS_DISABLE_MKNOD_FILE`, + + * :ref:`CONFIGURE_IMFS_DISABLE_MOUNT`, + + * :ref:`CONFIGURE_IMFS_DISABLE_READDIR`, + + * :ref:`CONFIGURE_IMFS_DISABLE_READLINK`, + + * :ref:`CONFIGURE_IMFS_DISABLE_RENAME`, + + * :ref:`CONFIGURE_IMFS_DISABLE_RMNOD`, + + * :ref:`CONFIGURE_IMFS_DISABLE_SYMLINK`, + + * :ref:`CONFIGURE_IMFS_DISABLE_UTIME`, and + + * :ref:`CONFIGURE_IMFS_DISABLE_UNMOUNT`. + + 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/if/acfg/use-miniimfs-as-base-filesystem.yml b/spec/if/acfg/use-miniimfs-as-base-filesystem.yml new file mode 100644 index 00000000..1d14e1b3 --- /dev/null +++ b/spec/if/acfg/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 + + * :ref:`CONFIGURE_IMFS_DISABLE_CHMOD`, + + * :ref:`CONFIGURE_IMFS_DISABLE_CHOWN`, + + * :ref:`CONFIGURE_IMFS_DISABLE_LINK`, + + * :ref:`CONFIGURE_IMFS_DISABLE_READLINK`, + + * :ref:`CONFIGURE_IMFS_DISABLE_RENAME`, + + * :ref:`CONFIGURE_IMFS_DISABLE_SYMLINK`, + + * :ref:`CONFIGURE_IMFS_DISABLE_UTIME`, and + + * :ref:`CONFIGURE_IMFS_DISABLE_UNMOUNT`. +text: '' +type: interface diff --git a/spec/if/acfg/verbose-system-init.yml b/spec/if/acfg/verbose-system-init.yml new file mode 100644 index 00000000..f39cf1dd --- /dev/null +++ b/spec/if/acfg/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 + :c:func:`printk` function is used to print the information. +text: '' +type: interface diff --git a/spec/if/acfg/zero-workspace-automatically.yml b/spec/if/acfg/zero-workspace-automatically.yml new file mode 100644 index 00000000..64acbcb7 --- /dev/null +++ b/spec/if/acfg/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 + :ref:`CONFIGURE_DIRTY_MEMORY` is also defined, then the memory is first + dirtied and then zeroed. +text: '' +type: interface |