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