[rtems-central commit] spec: Group items by component

Sebastian Huber sebh at rtems.org
Wed Sep 16 14:33:19 UTC 2020


Module:    rtems-central
Branch:    master
Commit:    3bdf817950eadd75a2785b62220eb0b04533b9fd
Changeset: http://git.rtems.org/rtems-central/commit/?id=3bdf817950eadd75a2785b62220eb0b04533b9fd

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Sep 16 11:48:29 2020 +0200

spec: Group items by component

---

 config.yml                                         |  40 +-
 spec/acfg/if/appl-disable-filesystem.yml           |  24 +
 .../if}/appl-does-not-need-clock-driver.yml        |   0
 spec/acfg/if/appl-extra-drivers.yml                |  29 ++
 .../{if/acfg => acfg/if}/appl-needs-ata-driver.yml |   0
 .../acfg => acfg/if}/appl-needs-clock-driver.yml   |   0
 spec/acfg/if/appl-needs-console-driver.yml         |  33 ++
 .../if}/appl-needs-framebuffer-driver.yml          |   0
 .../{if/acfg => acfg/if}/appl-needs-ide-driver.yml |   0
 spec/{if/acfg => acfg/if}/appl-needs-libblock.yml  |   0
 .../acfg => acfg/if}/appl-needs-null-driver.yml    |   0
 .../{if/acfg => acfg/if}/appl-needs-rtc-driver.yml |   0
 spec/acfg/if/appl-needs-simple-console-driver.yml  |  37 ++
 .../if/appl-needs-simple-task-console-driver.yml   |  46 ++
 .../acfg => acfg/if}/appl-needs-stub-driver.yml    |   0
 .../acfg => acfg/if}/appl-needs-timer-driver.yml   |   0
 .../if}/appl-needs-watchdog-driver.yml             |   0
 .../acfg => acfg/if}/appl-needs-zero-driver.yml    |   0
 spec/acfg/if/appl-prerequisite-drivers.yml         |  30 ++
 .../acfg => acfg/if}/ata-driver-task-priority.yml  |   0
 .../{if/acfg => acfg/if}/bdbuf-buffer-max-size.yml |   0
 spec/acfg/if/bdbuf-buffer-min-size.yml             |  21 +
 spec/acfg/if/bdbuf-cache-memory-size.yml           |  21 +
 spec/acfg/if/bdbuf-max-read-ahead-blocks.yml       |  24 +
 spec/acfg/if/bdbuf-max-write-blocks.yml            |  21 +
 .../if}/bdbuf-read-ahead-task-priority.yml         |   0
 spec/acfg/if/bdbuf-swapout-block-hold.yml          |  21 +
 spec/acfg/if/bdbuf-swapout-swap-period.yml         |  21 +
 .../if}/bdbuf-swapout-task-priority.yml            |   0
 .../if}/bdbuf-swapout-worker-taskp-riority.yml     |   0
 spec/acfg/if/bdbuf-swapout-worker-tasks.yml        |  20 +
 spec/acfg/if/bdbuf-task-stack-size.yml             |  24 +
 spec/{if/acfg => acfg/if}/bsp-idle-task-body.yml   |   0
 .../acfg => acfg/if}/bsp-idle-task-stack-size.yml  |   0
 spec/acfg/if/bsp-initial-extension.yml             |  32 ++
 .../acfg => acfg/if}/bsp-interrupt-stack-size.yml  |   0
 spec/acfg/if/bsp-prerequisite-drivers.yml          |  33 ++
 spec/acfg/if/cbs-max-servers.yml                   |  25 ++
 spec/{if/acfg => acfg/if}/constraint-bspappmin.yml |   0
 spec/acfg/if/constraint-idlestackarea.yml          |  12 +
 spec/acfg/if/constraint-isrstackalign.yml          |  11 +
 spec/acfg/if/constraint-isrstackarea.yml           |  12 +
 spec/{if/acfg => acfg/if}/constraint-memsz.yml     |   0
 spec/{if/acfg => acfg/if}/constraint-posix.yml     |   0
 .../acfg => acfg/if}/constraint-prioclassic.yml    |   0
 spec/acfg/if/constraint-stackspace.yml             |  12 +
 spec/acfg/if/constraint-unlimited.yml              |  13 +
 spec/acfg/if/constraint-wkspace.yml                |  12 +
 spec/{if/acfg => acfg/if}/dirty-memory.yml         |   0
 spec/{if/acfg => acfg/if}/disable-bsp-settings.yml |   0
 spec/acfg/if/disable-newlib-reentrancy.yml         |  21 +
 spec/acfg/if/executive-ram-size.yml                |  28 ++
 spec/{if/acfg => acfg/if}/extra-task-stacks.yml    |   0
 spec/{if/acfg => acfg/if}/filesystem-all.yml       |   0
 spec/{if/acfg => acfg/if}/filesystem-dosfs.yml     |   0
 spec/{if/acfg => acfg/if}/filesystem-ftpfs.yml     |   0
 spec/{if/acfg => acfg/if}/filesystem-imfs.yml      |   0
 spec/{if/acfg => acfg/if}/filesystem-jffs2.yml     |   0
 spec/{if/acfg => acfg/if}/filesystem-nfs.yml       |   0
 spec/{if/acfg => acfg/if}/filesystem-rfs.yml       |   0
 spec/{if/acfg => acfg/if}/filesystem-tftpfs.yml    |   0
 spec/acfg/if/group-bdbuf.yml                       |  14 +
 spec/acfg/if/group-bsp.yml                         |  16 +
 spec/acfg/if/group-classic.yml                     |  13 +
 spec/acfg/if/group-classicinit.yml                 |  14 +
 spec/acfg/if/group-devdrv.yml                      |  14 +
 spec/acfg/if/group-eventrecord.yml                 |  13 +
 spec/acfg/if/group-filesystem.yml                  |  53 +++
 spec/acfg/if/group-general.yml                     |  13 +
 spec/acfg/if/group-idle.yml                        |  13 +
 spec/acfg/if/group-mpci.yml                        |  18 +
 spec/acfg/if/group-posix.yml                       |  16 +
 spec/acfg/if/group-posixinit.yml                   |  14 +
 spec/acfg/if/group-schedgeneral.yml                |  34 ++
 spec/acfg/if/group-stackalloc.yml                  |  17 +
 spec/{if/acfg => acfg/if}/idle-task-body.yml       |   0
 spec/{if/acfg => acfg/if}/idle-task-init-appl.yml  |   0
 spec/{if/acfg => acfg/if}/idle-task-stack-size.yml |   0
 spec/acfg/if/imfs-disable-chmod.yml                |  20 +
 spec/acfg/if/imfs-disable-chown.yml                |  20 +
 spec/acfg/if/imfs-disable-link.yml                 |  20 +
 .../acfg => acfg/if}/imfs-disable-mknod-device.yml |   0
 .../acfg => acfg/if}/imfs-disable-mknod-file.yml   |   0
 spec/acfg/if/imfs-disable-mknod.yml                |  20 +
 spec/acfg/if/imfs-disable-mount.yml                |  21 +
 spec/acfg/if/imfs-disable-readdir.yml              |  21 +
 spec/acfg/if/imfs-disable-readlink.yml             |  20 +
 spec/acfg/if/imfs-disable-rename.yml               |  20 +
 spec/acfg/if/imfs-disable-rmnod.yml                |  20 +
 spec/acfg/if/imfs-disable-symlink.yml              |  20 +
 spec/acfg/if/imfs-disable-unmount.yml              |  21 +
 spec/acfg/if/imfs-disable-utime.yml                |  20 +
 spec/acfg/if/imfs-enable-mkfifo.yml                |  20 +
 .../if}/imfs-memfile-bytes-per-block.yml           |   0
 spec/acfg/if/init-task-arguments.yml               |  23 +
 spec/acfg/if/init-task-attributes.yml              |  22 +
 spec/{if/acfg => acfg/if}/init-task-entrypoint.yml |   0
 spec/acfg/if/init-task-initial-modes.yml           |  24 +
 spec/acfg/if/init-task-name.yml                    |  25 ++
 spec/{if/acfg => acfg/if}/init-task-priority.yml   |   0
 spec/{if/acfg => acfg/if}/init-task-stack-size.yml |   0
 spec/acfg/if/initial-extensions.yml                |  27 ++
 spec/acfg/if/interrupt-stack-size.yml              |  44 ++
 spec/acfg/if/malloc-bsp-supports-sbrk.yml          |  27 ++
 spec/acfg/if/malloc-dirty.yml                      |  22 +
 spec/{if/acfg => acfg/if}/max-barriers.yml         |   0
 spec/acfg/if/max-drivers.yml                       |  65 +++
 spec/acfg/if/max-file-descriptors.yml              |  26 ++
 spec/{if/acfg => acfg/if}/max-message-queues.yml   |   0
 spec/{if/acfg => acfg/if}/max-partitions.yml       |   0
 spec/{if/acfg => acfg/if}/max-periods.yml          |   0
 spec/{if/acfg => acfg/if}/max-ports.yml            |   0
 spec/acfg/if/max-posix-key-value-pairs.yml         |  34 ++
 spec/{if/acfg => acfg/if}/max-posix-keys.yml       |   0
 .../acfg => acfg/if}/max-posix-message-queues.yml  |   0
 .../acfg => acfg/if}/max-posix-queued-signals.yml  |   0
 spec/acfg/if/max-posix-semaphores.yml              |  34 ++
 spec/{if/acfg => acfg/if}/max-posix-shms.yml       |   0
 spec/{if/acfg => acfg/if}/max-posix-threads.yml    |   0
 spec/{if/acfg => acfg/if}/max-posix-timers.yml     |   0
 spec/{if/acfg => acfg/if}/max-priority.yml         |   0
 spec/acfg/if/max-processors.yml                    |  30 ++
 spec/{if/acfg => acfg/if}/max-regions.yml          |   0
 spec/{if/acfg => acfg/if}/max-semaphores.yml       |   0
 spec/{if/acfg => acfg/if}/max-tasks.yml            |   0
 spec/acfg/if/max-thread-local-storage-size.yml     |  34 ++
 spec/acfg/if/max-thread-name-size.yml              |  31 ++
 spec/{if/acfg => acfg/if}/max-timers.yml           |   0
 spec/{if/acfg => acfg/if}/max-user-extensions.yml  |   0
 spec/{if/acfg => acfg/if}/memory-overhead.yml      |   0
 .../{if/acfg => acfg/if}/message-buffer-memory.yml |   0
 .../{if/acfg => acfg/if}/microseconds-per-tick.yml |   0
 .../if}/min-posix-thread-stack-size.yml            |   0
 spec/acfg/if/min-task-stack-size.yml               |  44 ++
 .../if/min-tasks-with-user-provided-storage.yml    |  27 ++
 spec/{if/acfg => acfg/if}/mp-appl.yml              |   0
 spec/acfg/if/mp-extra-server-stack.yml             |  30 ++
 spec/acfg/if/mp-max-global-objects.yml             |  26 ++
 spec/acfg/if/mp-max-nodes.yml                      |  23 +
 spec/acfg/if/mp-max-proxies.yml                    |  29 ++
 spec/acfg/if/mp-mpci-table-pointer.yml             |  29 ++
 spec/acfg/if/mp-node-number.yml                    |  28 ++
 .../if}/posix-init-thread-entry-point.yml          |   0
 .../if}/posix-init-thread-stack-size.yml           |   0
 .../acfg => acfg/if}/posix-init-thread-table.yml   |   0
 .../acfg => acfg/if}/record-extensions-enabled.yml |   0
 .../if}/record-fatal-dump-base64-zlib.yml          |   0
 .../acfg => acfg/if}/record-fatal-dump-base64.yml  |   0
 spec/acfg/if/record-per-processor-items.yml        |  28 ++
 .../acfg => acfg/if}/rtems-init-tasks-table.yml    |   0
 .../{if/acfg => acfg/if}/scheduler-assignments.yml |   0
 spec/{if/acfg => acfg/if}/scheduler-cbs.yml        |   0
 spec/{if/acfg => acfg/if}/scheduler-edf-smp.yml    |   0
 spec/{if/acfg => acfg/if}/scheduler-edf.yml        |   0
 spec/acfg/if/scheduler-name.yml                    |  46 ++
 .../if}/scheduler-priority-affinity-smp.yml        |   0
 .../acfg => acfg/if}/scheduler-priority-smp.yml    |   0
 spec/{if/acfg => acfg/if}/scheduler-priority.yml   |   0
 spec/{if/acfg => acfg/if}/scheduler-simple-smp.yml |   0
 spec/{if/acfg => acfg/if}/scheduler-simple.yml     |   0
 spec/{if/acfg => acfg/if}/scheduler-strong-apa.yml |   0
 spec/{if/acfg => acfg/if}/scheduler-user.yml       |   0
 .../{if/acfg => acfg/if}/stack-checker-enabled.yml |   0
 spec/acfg/if/task-stack-allocator-init.yml         |  31 ++
 spec/{if/acfg => acfg/if}/task-stack-allocator.yml |   0
 .../acfg => acfg/if}/task-stack-deallocator.yml    |   0
 .../{if/acfg => acfg/if}/task-stack-from-alloc.yml |   0
 .../acfg => acfg/if}/task-stack-no-workspace.yml   |   0
 spec/acfg/if/ticks-per-time-slice.yml              |  24 +
 spec/{if/acfg => acfg/if}/unified-work-areas.yml   |   0
 spec/acfg/if/unlimited-allocation-size.yml         |  30 ++
 spec/{if/acfg => acfg/if}/unlimited-objects.yml    |   0
 .../if}/use-devfs-as-base-filesystem.yml           |   0
 .../if}/use-miniimfs-as-base-filesystem.yml        |   0
 spec/acfg/if/verbose-system-init.yml               |  19 +
 .../if}/zero-workspace-automatically.yml           |   0
 .../{if/build-options => build-options/if}/ada.yml |   0
 spec/build-options/if/container.yml                |   9 +
 spec/build-options/if/cpuopts.yml                  |  12 +
 .../build-options => build-options/if}/debug.yml   |   0
 .../if/domain.yml}                                 |   0
 .../build-options => build-options/if}/drvmgr.yml  |   0
 .../if}/multiprocessing.yml                        |   0
 .../if}/networking.yml                             |   0
 .../if}/paravirt.yml                               |   0
 .../build-options => build-options/if}/posix.yml   |   0
 .../if}/profiling.yml                              |   0
 .../{if/build-options => build-options/if}/smp.yml |   0
 spec/{if/c => c/if}/bool.yml                       |   0
 spec/{if/c => c/if}/chmod.yml                      |   0
 spec/{if/c => c/if}/chown.yml                      |   0
 spec/{if/c => c/if}/cpu_set_t.yml                  |   0
 spec/{if/domains/c.yml => c/if/domain.yml}         |   0
 spec/c/if/errno-header.yml                         |  12 +
 spec/{if/c => c/if}/errno.yml                      |   0
 spec/{if/c => c/if}/false.yml                      |   0
 spec/{if/c => c/if}/free.yml                       |   0
 spec/{if/c => c/if}/int16_t.yml                    |   0
 spec/{if/c => c/if}/int32_t.yml                    |   0
 spec/{if/c => c/if}/int64_t.yml                    |   0
 spec/{if/c => c/if}/int8_t.yml                     |   0
 spec/{if/c => c/if}/intmax_t.yml                   |   0
 spec/{if/c => c/if}/intptr_t.yml                   |   0
 spec/{if/c => c/if}/link.yml                       |   0
 spec/{if/c => c/if}/malloc.yml                     |   0
 spec/{if/c => c/if}/mkfifo.yml                     |   0
 spec/{if/c => c/if}/mknod.yml                      |   0
 spec/{if/c => c/if}/null.yml                       |   0
 spec/{if/c => c/if}/offsetof.yml                   |   0
 spec/{if/c => c/if}/printf.yml                     |   0
 spec/c/if/pthread.yml                              |  12 +
 spec/{if/c => c/if}/pthread_setspecific.yml        |   0
 spec/{if/c => c/if}/readdir.yml                    |   0
 spec/{if/c => c/if}/readlink.yml                   |   0
 spec/{if/c => c/if}/rename.yml                     |   0
 spec/{if/c => c/if}/rmnod.yml                      |   0
 spec/{if/c => c/if}/sbrk.yml                       |   0
 spec/{if/c => c/if}/sem_init.yml                   |   0
 spec/{if/c => c/if}/sem_open.yml                   |   0
 spec/c/if/semaphore.yml                            |  12 +
 spec/{if/c => c/if}/size_max.yml                   |   0
 spec/{if/c => c/if}/size_t.yml                     |   0
 spec/c/if/stdatomic.yml                            |  12 +
 spec/c/if/stdbool.yml                              |  12 +
 spec/c/if/stddef.yml                               |  12 +
 spec/c/if/stdint.yml                               |  12 +
 spec/c/if/stdio.yml                                |  12 +
 spec/c/if/stdlib.yml                               |  12 +
 spec/c/if/string.yml                               |  12 +
 spec/{if/c => c/if}/symlink.yml                    |   0
 spec/c/if/sys-cpuset.yml                           |  12 +
 spec/c/if/sys-impl-timespec.yml                    |  12 +
 spec/c/if/sys-impl-timeval.yml                     |  12 +
 spec/c/if/sys-stat.yml                             |  12 +
 spec/c/if/sys-types.yml                            |  12 +
 spec/c/if/time.yml                                 |  12 +
 spec/{if/c => c/if}/time_t.yml                     |   0
 spec/{if/c => c/if}/timespec.yml                   |   0
 spec/{if/c => c/if}/timeval.yml                    |   0
 spec/{if/c => c/if}/true.yml                       |   0
 spec/{if/c => c/if}/uint16_t.yml                   |   0
 spec/{if/c => c/if}/uint32_max.yml                 |   0
 spec/{if/c => c/if}/uint32_t.yml                   |   0
 spec/{if/c => c/if}/uint64_t.yml                   |   0
 spec/{if/c => c/if}/uint8_t.yml                    |   0
 spec/{if/c => c/if}/uintmax_t.yml                  |   0
 spec/{if/c => c/if}/uintptr_max.yml                |   0
 spec/{if/c => c/if}/uintptr_t.yml                  |   0
 spec/c/if/unistd.yml                               |  12 +
 spec/{if/c => c/if}/utime.yml                      |   0
 spec/{if/compiler => compiler/if}/asm.yml          |   0
 .../if}/builtin-choose-expr.yml                    |   0
 .../compiler => compiler/if}/builtin-expect.yml    |   0
 .../if}/builtin-return-address.yml                 |   0
 .../if}/builtin-types-compatible-p.yml             |   0
 .../if}/builtin-unreachable.yml                    |   0
 spec/compiler/if/container.yml                     |   9 +
 spec/{if/compiler => compiler/if}/cplusplus.yml    |   0
 .../compiler.yml => compiler/if/domain.yml}        |   0
 spec/{if/compiler => compiler/if}/gnuc.yml         |   0
 spec/{if/compiler => compiler/if}/stdc-version.yml |   0
 spec/{if/compiler => compiler/if}/typeof.yml       |   0
 .../compiler => compiler/if}/user-label-prefix.yml |   0
 spec/if/acfg/appl-disable-filesystem.yml           |  24 -
 spec/if/acfg/appl-extra-drivers.yml                |  29 --
 spec/if/acfg/appl-needs-console-driver.yml         |  33 --
 spec/if/acfg/appl-needs-simple-console-driver.yml  |  37 --
 .../acfg/appl-needs-simple-task-console-driver.yml |  46 --
 spec/if/acfg/appl-prerequisite-drivers.yml         |  30 --
 spec/if/acfg/bdbuf-buffer-min-size.yml             |  21 -
 spec/if/acfg/bdbuf-cache-memory-size.yml           |  21 -
 spec/if/acfg/bdbuf-max-read-ahead-blocks.yml       |  24 -
 spec/if/acfg/bdbuf-max-write-blocks.yml            |  21 -
 spec/if/acfg/bdbuf-swapout-block-hold.yml          |  21 -
 spec/if/acfg/bdbuf-swapout-swap-period.yml         |  21 -
 spec/if/acfg/bdbuf-swapout-worker-tasks.yml        |  20 -
 spec/if/acfg/bdbuf-task-stack-size.yml             |  24 -
 spec/if/acfg/bsp-initial-extension.yml             |  32 --
 spec/if/acfg/bsp-prerequisite-drivers.yml          |  33 --
 spec/if/acfg/cbs-max-servers.yml                   |  25 --
 spec/if/acfg/constraint-idlestackarea.yml          |  12 -
 spec/if/acfg/constraint-isrstackalign.yml          |  11 -
 spec/if/acfg/constraint-isrstackarea.yml           |  12 -
 spec/if/acfg/constraint-stackspace.yml             |  12 -
 spec/if/acfg/constraint-unlimited.yml              |  13 -
 spec/if/acfg/constraint-wkspace.yml                |  12 -
 spec/if/acfg/disable-newlib-reentrancy.yml         |  21 -
 spec/if/acfg/executive-ram-size.yml                |  28 --
 spec/if/acfg/group-bdbuf.yml                       |  14 -
 spec/if/acfg/group-bsp.yml                         |  16 -
 spec/if/acfg/group-classic.yml                     |  13 -
 spec/if/acfg/group-classicinit.yml                 |  14 -
 spec/if/acfg/group-devdrv.yml                      |  14 -
 spec/if/acfg/group-eventrecord.yml                 |  13 -
 spec/if/acfg/group-filesystem.yml                  |  53 ---
 spec/if/acfg/group-general.yml                     |  13 -
 spec/if/acfg/group-idle.yml                        |  13 -
 spec/if/acfg/group-mpci.yml                        |  18 -
 spec/if/acfg/group-posix.yml                       |  16 -
 spec/if/acfg/group-posixinit.yml                   |  14 -
 spec/if/acfg/group-schedgeneral.yml                |  34 --
 spec/if/acfg/group-stackalloc.yml                  |  17 -
 spec/if/acfg/imfs-disable-chmod.yml                |  20 -
 spec/if/acfg/imfs-disable-chown.yml                |  20 -
 spec/if/acfg/imfs-disable-link.yml                 |  20 -
 spec/if/acfg/imfs-disable-mknod.yml                |  20 -
 spec/if/acfg/imfs-disable-mount.yml                |  21 -
 spec/if/acfg/imfs-disable-readdir.yml              |  21 -
 spec/if/acfg/imfs-disable-readlink.yml             |  20 -
 spec/if/acfg/imfs-disable-rename.yml               |  20 -
 spec/if/acfg/imfs-disable-rmnod.yml                |  20 -
 spec/if/acfg/imfs-disable-symlink.yml              |  20 -
 spec/if/acfg/imfs-disable-unmount.yml              |  21 -
 spec/if/acfg/imfs-disable-utime.yml                |  20 -
 spec/if/acfg/imfs-enable-mkfifo.yml                |  20 -
 spec/if/acfg/init-task-arguments.yml               |  23 -
 spec/if/acfg/init-task-attributes.yml              |  22 -
 spec/if/acfg/init-task-initial-modes.yml           |  24 -
 spec/if/acfg/init-task-name.yml                    |  25 --
 spec/if/acfg/initial-extensions.yml                |  27 --
 spec/if/acfg/interrupt-stack-size.yml              |  44 --
 spec/if/acfg/malloc-bsp-supports-sbrk.yml          |  27 --
 spec/if/acfg/malloc-dirty.yml                      |  22 -
 spec/if/acfg/max-drivers.yml                       |  65 ---
 spec/if/acfg/max-file-descriptors.yml              |  26 --
 spec/if/acfg/max-posix-key-value-pairs.yml         |  34 --
 spec/if/acfg/max-posix-semaphores.yml              |  34 --
 spec/if/acfg/max-processors.yml                    |  30 --
 spec/if/acfg/max-thread-local-storage-size.yml     |  34 --
 spec/if/acfg/max-thread-name-size.yml              |  31 --
 spec/if/acfg/min-task-stack-size.yml               |  44 --
 .../acfg/min-tasks-with-user-provided-storage.yml  |  27 --
 spec/if/acfg/mp-extra-server-stack.yml             |  30 --
 spec/if/acfg/mp-max-global-objects.yml             |  26 --
 spec/if/acfg/mp-max-nodes.yml                      |  23 -
 spec/if/acfg/mp-max-proxies.yml                    |  29 --
 spec/if/acfg/mp-mpci-table-pointer.yml             |  29 --
 spec/if/acfg/mp-node-number.yml                    |  28 --
 spec/if/acfg/record-per-processor-items.yml        |  28 --
 spec/if/acfg/scheduler-name.yml                    |  46 --
 spec/if/acfg/task-stack-allocator-init.yml         |  31 --
 spec/if/acfg/ticks-per-time-slice.yml              |  24 -
 spec/if/acfg/unlimited-allocation-size.yml         |  30 --
 spec/if/acfg/verbose-system-init.yml               |  19 -
 spec/if/api.yml                                    |   4 +-
 spec/if/applconfig.yml                             |  15 -
 spec/if/build-options/container.yml                |   9 -
 spec/if/build-options/cpuopts.yml                  |  12 -
 spec/if/c/errno-header.yml                         |  12 -
 spec/if/c/pthread.yml                              |  12 -
 spec/if/c/semaphore.yml                            |  12 -
 spec/if/c/stdatomic.yml                            |  12 -
 spec/if/c/stdbool.yml                              |  12 -
 spec/if/c/stddef.yml                               |  12 -
 spec/if/c/stdint.yml                               |  12 -
 spec/if/c/stdio.yml                                |  12 -
 spec/if/c/stdlib.yml                               |  12 -
 spec/if/c/string.yml                               |  12 -
 spec/if/c/sys-cpuset.yml                           |  12 -
 spec/if/c/sys-impl-timespec.yml                    |  12 -
 spec/if/c/sys-impl-timeval.yml                     |  12 -
 spec/if/c/sys-stat.yml                             |  12 -
 spec/if/c/sys-types.yml                            |  12 -
 spec/if/c/time.yml                                 |  12 -
 spec/if/c/unistd.yml                               |  12 -
 spec/if/compiler/container.yml                     |   9 -
 spec/if/{domains/api.yml => domain.yml}            |   0
 spec/if/impl/assert-unreachable.yml                |  26 --
 spec/if/impl/context/header.yml                    |  12 -
 spec/if/impl/cpu/header.yml                        |  12 -
 spec/if/impl/dequalify-types-not-compatible.yml    |  34 --
 spec/if/impl/heap/header.yml                       |  14 -
 spec/if/impl/interr/header.yml                     |  12 -
 spec/if/impl/isr/header-2.yml                      |  12 -
 spec/if/impl/isr/header-3.yml                      |  12 -
 spec/if/impl/isr/header.yml                        |  12 -
 spec/if/impl/maximum-priority.yml                  |  24 -
 spec/if/impl/memory/header.yml                     |  12 -
 spec/if/impl/mpci/header-2.yml                     |  12 -
 spec/if/impl/mpci/header.yml                       |  12 -
 spec/if/impl/object/header.yml                     |  12 -
 spec/if/impl/smp/header-2.yml                      |  12 -
 spec/if/impl/smp/header.yml                        |  12 -
 spec/if/impl/stack/header.yml                      |  12 -
 spec/if/impl/thread/header.yml                     |  15 -
 spec/if/impl/tod-to-seconds.yml                    |  28 --
 spec/if/impl/tod-validate.yml                      |  28 --
 spec/if/impl/userext/header.yml                    |  14 -
 spec/if/impl/watchdog/header.yml                   |  15 -
 spec/if/impl/wkspace/header.yml                    |  14 -
 spec/if/rtems/attr/attribute.yml                   |  21 -
 spec/if/rtems/attr/group.yml                       |  18 -
 spec/if/rtems/attr/header.yml                      |  12 -
 spec/if/rtems/barrier/create.yml                   |  42 --
 spec/if/rtems/barrier/delete.yml                   |  30 --
 spec/if/rtems/barrier/group.yml                    |  20 -
 spec/if/rtems/barrier/header.yml                   |  12 -
 spec/if/rtems/barrier/ident.yml                    |  60 ---
 spec/if/rtems/barrier/release.yml                  |  34 --
 spec/if/rtems/barrier/wait.yml                     |  34 --
 spec/if/rtems/basedefs/alias.yml                   |  31 --
 spec/if/rtems/basedefs/aligned.yml                 |  32 --
 spec/if/rtems/basedefs/alloc-align.yml             |  32 --
 spec/if/rtems/basedefs/alloc-size-2.yml            |  36 --
 spec/if/rtems/basedefs/alloc-size.yml              |  32 --
 spec/if/rtems/basedefs/compiler-memory-barrier.yml |  28 --
 spec/if/rtems/basedefs/const.yml                   |  25 --
 spec/if/rtems/basedefs/container-of.yml            |  37 --
 spec/if/rtems/basedefs/define-global-symbol.yml    |  44 --
 spec/if/rtems/basedefs/deprecated.yml              |  24 -
 spec/if/rtems/basedefs/dequalify-depthx.yml        |  50 ---
 spec/if/rtems/basedefs/group.yml                   |  19 -
 spec/if/rtems/basedefs/have-member-same-type.yml   |  48 --
 spec/if/rtems/basedefs/header.yml                  |  29 --
 spec/if/rtems/basedefs/inline-routine.yml          |  23 -
 spec/if/rtems/basedefs/malloclike.yml              |  24 -
 spec/if/rtems/basedefs/no-inline.yml               |  23 -
 spec/if/rtems/basedefs/no-return.yml               |  24 -
 spec/if/rtems/basedefs/obfuscate-variable.yml      |  34 --
 spec/if/rtems/basedefs/packed.yml                  |  24 -
 spec/if/rtems/basedefs/predict-false.yml           |  33 --
 spec/if/rtems/basedefs/predict-true.yml            |  33 --
 spec/if/rtems/basedefs/printflike.yml              |  37 --
 spec/if/rtems/basedefs/pure.yml                    |  25 --
 spec/if/rtems/basedefs/return-address.yml          |  27 --
 spec/if/rtems/basedefs/section.yml                 |  32 --
 spec/if/rtems/basedefs/static-assert.yml           |  41 --
 spec/if/rtems/basedefs/symbol-name.yml             |  33 --
 spec/if/rtems/basedefs/typeof-refx.yml             |  37 --
 spec/if/rtems/basedefs/unreachable.yml             |  29 --
 spec/if/rtems/basedefs/unused.yml                  |  24 -
 spec/if/rtems/basedefs/used.yml                    |  23 -
 spec/if/rtems/basedefs/warn-unused-result.yml      |  24 -
 spec/if/rtems/basedefs/weak-alias.yml              |  32 --
 spec/if/rtems/basedefs/weak.yml                    |  26 --
 spec/if/rtems/basedefs/zero-length-array.yml       |  25 --
 spec/if/rtems/cache/aligned-malloc.yml             |  30 --
 spec/if/rtems/cache/coherent-add-area.yml          |  34 --
 spec/if/rtems/cache/coherent-allocate.yml          |  38 --
 spec/if/rtems/cache/flush-multiple-data-lines.yml  |  34 --
 spec/if/rtems/cache/get-data-line-size.yml         |  26 --
 spec/if/rtems/cache/get-data-size.yml              |  30 --
 spec/if/rtems/cache/get-instruction-line-size.yml  |  26 --
 spec/if/rtems/cache/get-instruction-size.yml       |  30 --
 spec/if/rtems/cache/get-maximal-line-size.yml      |  26 --
 spec/if/rtems/cache/group.yml                      |  19 -
 spec/if/rtems/cache/header.yml                     |  12 -
 .../cache/instruction-sync-after-code-change.yml   |  34 --
 .../rtems/cache/invalidate-multiple-data-lines.yml |  34 --
 .../invalidate-multiple-instruction-lines.yml      |  34 --
 spec/if/rtems/clock/get-seconds-since-epoch.yml    |  30 --
 spec/if/rtems/clock/get-ticks-per-second.yml       |  23 -
 spec/if/rtems/clock/get-ticks-since-boot.yml       |  23 -
 spec/if/rtems/clock/get-tod-timeval.yml            |  30 --
 spec/if/rtems/clock/get-tod.yml                    |  30 --
 spec/if/rtems/clock/get-uptime-nanoseconds.yml     |  26 --
 spec/if/rtems/clock/get-uptime-seconds.yml         |  26 --
 spec/if/rtems/clock/get-uptime-timeval.yml         |  30 --
 spec/if/rtems/clock/get-uptime.yml                 |  30 --
 spec/if/rtems/clock/group.yml                      |  20 -
 spec/if/rtems/clock/header.yml                     |  12 -
 spec/if/rtems/clock/set.yml                        |  30 --
 spec/if/rtems/clock/tick-before.yml                |  40 --
 spec/if/rtems/clock/tick-later-usec.yml            |  41 --
 spec/if/rtems/clock/tick-later.yml                 |  32 --
 spec/if/rtems/clock/tick.yml                       |  26 --
 spec/if/rtems/config/api-table.yml                 | 128 ------
 spec/if/rtems/config/get-do-zero-of-workspace.yml  |  24 -
 spec/if/rtems/config/get-idle-task-stack-size.yml  |  23 -
 spec/if/rtems/config/get-idle-task.yml             |  23 -
 spec/if/rtems/config/get-interrupt-stack-size.yml  |  23 -
 spec/if/rtems/config/get-maximum-barriers.yml      |  27 --
 spec/if/rtems/config/get-maximum-extensions.yml    |  27 --
 .../if/rtems/config/get-maximum-message-queues.yml |  27 --
 spec/if/rtems/config/get-maximum-partitions.yml    |  27 --
 spec/if/rtems/config/get-maximum-periods.yml       |  27 --
 spec/if/rtems/config/get-maximum-ports.yml         |  27 --
 spec/if/rtems/config/get-maximum-processors.yml    |  29 --
 spec/if/rtems/config/get-maximum-regions.yml       |  27 --
 spec/if/rtems/config/get-maximum-semaphores.yml    |  27 --
 spec/if/rtems/config/get-maximum-tasks.yml         |  27 --
 spec/if/rtems/config/get-maximum-timers.yml        |  27 --
 spec/if/rtems/config/get-microseconds-per-tick.yml |  23 -
 spec/if/rtems/config/get-milliseconds-per-tick.yml |  23 -
 spec/if/rtems/config/get-nanoseconds-per-tick.yml  |  23 -
 .../config/get-number-of-initial-extensions.yml    |  23 -
 spec/if/rtems/config/get-stack-allocate-hook.yml   |  23 -
 .../rtems/config/get-stack-allocate-init-hook.yml  |  23 -
 .../get-stack-allocator-avoids-work-space.yml      |  24 -
 spec/if/rtems/config/get-stack-free-hook.yml       |  23 -
 spec/if/rtems/config/get-stack-space-size.yml      |  27 --
 spec/if/rtems/config/get-ticks-per-timeslice.yml   |  23 -
 spec/if/rtems/config/get-unified-work-area.yml     |  24 -
 spec/if/rtems/config/get-user-extension-table.yml  |  24 -
 .../config/get-user-multiprocessing-table.yml      |  26 --
 spec/if/rtems/config/get-work-space-size.yml       |  26 --
 spec/if/rtems/config/group.yml                     |  19 -
 spec/if/rtems/config/has-hardware-fp.yml           |  19 -
 spec/if/rtems/config/header-2.yml                  |  14 -
 spec/if/rtems/config/header.yml                    |  23 -
 spec/if/rtems/config/resource-is-unlimited.yml     |  26 --
 .../config/resource-maximum-per-allocation.yml     |  26 --
 spec/if/rtems/config/stack-allocate-hook.yml       |  19 -
 spec/if/rtems/config/stack-allocate-init-hook.yml  |  19 -
 spec/if/rtems/config/stack-free-hook.yml           |  19 -
 spec/if/rtems/config/unlimited-objects.yml         |  19 -
 spec/if/rtems/dpmem/create.yml                     |  46 --
 spec/if/rtems/dpmem/delete.yml                     |  30 --
 spec/if/rtems/dpmem/external-to-internal.yml       |  38 --
 spec/if/rtems/dpmem/group.yml                      |  21 -
 spec/if/rtems/dpmem/header.yml                     |  12 -
 spec/if/rtems/dpmem/ident.yml                      |  59 ---
 spec/if/rtems/dpmem/internal-to-external.yml       |  38 --
 spec/if/rtems/event/group.yml                      |  20 -
 spec/if/rtems/event/header.yml                     |  12 -
 spec/if/rtems/event/receive.yml                    | 122 -----
 spec/if/rtems/event/send.yml                       |  74 ---
 spec/if/rtems/event/set.yml                        |  21 -
 spec/if/rtems/event/system-receive.yml             |  49 --
 spec/if/rtems/event/system-send.yml                |  33 --
 spec/if/rtems/event/transient-clear.yml            |  32 --
 spec/if/rtems/event/transient-receive.yml          |  40 --
 spec/if/rtems/event/transient-send.yml             |  29 --
 spec/if/rtems/fatal/error-occurred.yml             |  30 --
 spec/if/rtems/fatal/exception-frame-print.yml      |  31 --
 spec/if/rtems/fatal/exception-frame.yml            |  19 -
 spec/if/rtems/fatal/fatal.yml                      |  35 --
 spec/if/rtems/fatal/group.yml                      |  21 -
 spec/if/rtems/fatal/header.yml                     |  12 -
 spec/if/rtems/fatal/internal-error-text.yml        |  30 --
 spec/if/rtems/fatal/panic.yml                      |  35 --
 spec/if/rtems/fatal/source-text.yml                |  30 --
 spec/if/rtems/group.yml                            |  18 -
 spec/if/rtems/header.yml                           |  87 ----
 spec/if/rtems/init/group.yml                       |  20 -
 spec/if/rtems/init/header.yml                      |  12 -
 spec/if/rtems/init/initialize-executive.yml        |  32 --
 spec/if/rtems/init/shutdown-executive.yml          |  35 --
 spec/if/rtems/intr/catch.yml                       |  38 --
 spec/if/rtems/intr/disable.yml                     |  27 --
 spec/if/rtems/intr/enable.yml                      |  27 --
 spec/if/rtems/intr/flash.yml                       |  27 --
 spec/if/rtems/intr/group.yml                       |  24 -
 spec/if/rtems/intr/header.yml                      |  12 -
 spec/if/rtems/intr/is-in-progress.yml              |  23 -
 spec/if/rtems/intr/isr-entry.yml                   |  23 -
 spec/if/rtems/intr/isr.yml                         |  19 -
 spec/if/rtems/intr/level.yml                       |  19 -
 spec/if/rtems/intr/local-disable.yml               |  26 --
 spec/if/rtems/intr/local-enable.yml                |  26 --
 spec/if/rtems/intr/lock-acquire-isr.yml            |  35 --
 spec/if/rtems/intr/lock-acquire.yml                |  30 --
 spec/if/rtems/intr/lock-context.yml                |  19 -
 spec/if/rtems/intr/lock-declare.yml                |  30 --
 spec/if/rtems/intr/lock-define.yml                 |  33 --
 spec/if/rtems/intr/lock-destroy.yml                |  26 --
 spec/if/rtems/intr/lock-initialize.yml             |  30 --
 spec/if/rtems/intr/lock-initializer.yml            |  26 --
 spec/if/rtems/intr/lock-isr-disable.yml            |  26 --
 spec/if/rtems/intr/lock-member.yml                 |  26 --
 spec/if/rtems/intr/lock-reference.yml              |  30 --
 spec/if/rtems/intr/lock-release-isr.yml            |  35 --
 spec/if/rtems/intr/lock-release.yml                |  30 --
 spec/if/rtems/intr/lock.yml                        |  19 -
 spec/if/rtems/intr/vector-number.yml               |  19 -
 spec/if/rtems/io/close.yml                         |  38 --
 spec/if/rtems/io/control.yml                       |  38 --
 spec/if/rtems/io/device-driver.yml                 |  19 -
 spec/if/rtems/io/device-major-number.yml           |  19 -
 spec/if/rtems/io/device-minor-number.yml           |  19 -
 spec/if/rtems/io/driver-error.yml                  |  38 --
 spec/if/rtems/io/group.yml                         |  21 -
 spec/if/rtems/io/header.yml                        |  12 -
 spec/if/rtems/io/initialize.yml                    |  38 --
 spec/if/rtems/io/open.yml                          |  38 --
 spec/if/rtems/io/read.yml                          |  38 --
 spec/if/rtems/io/register-driver.yml               |  38 --
 spec/if/rtems/io/register-name.yml                 |  38 --
 spec/if/rtems/io/unregister-driver.yml             |  30 --
 spec/if/rtems/io/write.yml                         |  38 --
 spec/if/rtems/message/broadcast.yml                |  42 --
 spec/if/rtems/message/create.yml                   |  46 --
 spec/if/rtems/message/delete.yml                   |  30 --
 spec/if/rtems/message/flush.yml                    |  34 --
 spec/if/rtems/message/get-number-pending.yml       |  34 --
 spec/if/rtems/message/group.yml                    |  20 -
 spec/if/rtems/message/header.yml                   |  12 -
 spec/if/rtems/message/ident.yml                    |  86 ----
 spec/if/rtems/message/receive.yml                  |  46 --
 spec/if/rtems/message/send.yml                     |  38 --
 spec/if/rtems/message/urgent.yml                   |  38 --
 spec/if/rtems/modes/group.yml                      |  18 -
 spec/if/rtems/modes/header.yml                     |  12 -
 spec/if/rtems/modes/interrupt-level-body.yml       |  35 --
 spec/if/rtems/modes/interrupt-mask-variable.yml    |  19 -
 spec/if/rtems/modes/interrupt-mask.yml             |  20 -
 spec/if/rtems/modes/mode.yml                       |  20 -
 spec/if/rtems/mp/group.yml                         |  20 -
 spec/if/rtems/mp/header.yml                        |  12 -
 spec/if/rtems/object/api-class-information.yml     |  58 ---
 spec/if/rtems/object/build-id.yml                  |  36 --
 spec/if/rtems/object/build-name.yml                |  36 --
 spec/if/rtems/object/get-class-information.yml     |  38 --
 spec/if/rtems/object/get-classic-name.yml          |  34 --
 spec/if/rtems/object/get-local-node.yml            |  27 --
 spec/if/rtems/object/get-name.yml                  |  38 --
 spec/if/rtems/object/group.yml                     |  22 -
 spec/if/rtems/object/header.yml                    |  12 -
 spec/if/rtems/object/id-api-maximum.yml            |  23 -
 spec/if/rtems/object/id-api-minimum.yml            |  23 -
 spec/if/rtems/object/id-final-index.yml            |  19 -
 spec/if/rtems/object/id-final.yml                  |  19 -
 spec/if/rtems/object/id-get-api.yml                |  26 --
 spec/if/rtems/object/id-get-class.yml              |  26 --
 spec/if/rtems/object/id-get-index.yml              |  26 --
 spec/if/rtems/object/id-get-node.yml               |  26 --
 spec/if/rtems/object/id-initial-index.yml          |  19 -
 spec/if/rtems/object/id-initial.yml                |  33 --
 spec/if/rtems/object/search-all-nodes.yml          |  19 -
 spec/if/rtems/object/search-local-node.yml         |  19 -
 spec/if/rtems/object/search-other-nodes.yml        |  19 -
 spec/if/rtems/object/set-name.yml                  |  34 --
 spec/if/rtems/object/who-am-i.yml                  |  19 -
 spec/if/rtems/options/group.yml                    |  18 -
 spec/if/rtems/options/header.yml                   |  12 -
 spec/if/rtems/options/option.yml                   |  20 -
 spec/if/rtems/part/create.yml                      |  50 ---
 spec/if/rtems/part/delete.yml                      |  30 --
 spec/if/rtems/part/get-buffer.yml                  |  34 --
 spec/if/rtems/part/group.yml                       |  20 -
 spec/if/rtems/part/header.yml                      |  12 -
 spec/if/rtems/part/ident.yml                       |  86 ----
 spec/if/rtems/part/return-buffer.yml               |  34 --
 spec/if/rtems/ratemon/cancel.yml                   |  30 --
 spec/if/rtems/ratemon/create.yml                   |  34 --
 spec/if/rtems/ratemon/delete.yml                   |  30 --
 spec/if/rtems/ratemon/get-statistics.yml           |  34 --
 spec/if/rtems/ratemon/get-status.yml               |  34 --
 spec/if/rtems/ratemon/group.yml                    |  22 -
 spec/if/rtems/ratemon/header.yml                   |  12 -
 spec/if/rtems/ratemon/ident.yml                    |  60 ---
 spec/if/rtems/ratemon/period-statistics.yml        |  82 ----
 spec/if/rtems/ratemon/period-status-define.yml     |  21 -
 spec/if/rtems/ratemon/period-status.yml            |  58 ---
 spec/if/rtems/ratemon/period.yml                   |  34 --
 spec/if/rtems/ratemon/printer.yml                  |  11 -
 spec/if/rtems/ratemon/reset-statistics.yml         |  30 --
 spec/if/rtems/region/create.yml                    |  50 ---
 spec/if/rtems/region/delete.yml                    |  30 --
 spec/if/rtems/region/extend.yml                    |  38 --
 spec/if/rtems/region/get-free-information.yml      |  34 --
 spec/if/rtems/region/get-information.yml           |  34 --
 spec/if/rtems/region/get-segment-size.yml          |  38 --
 spec/if/rtems/region/get-segment.yml               |  46 --
 spec/if/rtems/region/group.yml                     |  20 -
 spec/if/rtems/region/header.yml                    |  12 -
 spec/if/rtems/region/ident.yml                     |  59 ---
 spec/if/rtems/region/resize-segment.yml            |  42 --
 spec/if/rtems/region/return-segment.yml            |  34 --
 spec/if/rtems/scheduler/add-processor.yml          |  52 ---
 spec/if/rtems/scheduler/get-maximum-priority.yml   |  46 --
 spec/if/rtems/scheduler/get-processor-maximum.yml  |  33 --
 spec/if/rtems/scheduler/get-processor-set.yml      |  58 ---
 spec/if/rtems/scheduler/get-processor.yml          |  35 --
 spec/if/rtems/scheduler/ident-by-processor-set.yml |  63 ---
 spec/if/rtems/scheduler/ident-by-processor.yml     |  51 ---
 spec/if/rtems/scheduler/ident.yml                  |  47 --
 .../if/rtems/scheduler/map-priority-from-posix.yml |  53 ---
 spec/if/rtems/scheduler/map-priority-to-posix.yml  |  53 ---
 spec/if/rtems/scheduler/remove-processor.yml       |  52 ---
 spec/if/rtems/sem/create.yml                       | 182 --------
 spec/if/rtems/sem/delete.yml                       |  30 --
 spec/if/rtems/sem/flush.yml                        |  30 --
 spec/if/rtems/sem/group.yml                        |  19 -
 spec/if/rtems/sem/header.yml                       |  12 -
 spec/if/rtems/sem/ident.yml                        |  86 ----
 spec/if/rtems/sem/obtain.yml                       |  38 --
 spec/if/rtems/sem/release.yml                      |  30 --
 spec/if/rtems/sem/set-priority.yml                 |  42 --
 spec/if/rtems/signal/catch.yml                     |  34 --
 spec/if/rtems/signal/group.yml                     |  20 -
 spec/if/rtems/signal/header-2.yml                  |  12 -
 spec/if/rtems/signal/header.yml                    |  12 -
 spec/if/rtems/signal/send.yml                      |  34 --
 spec/if/rtems/signal/set.yml                       |  19 -
 spec/if/rtems/status/group.yml                     |  18 -
 spec/if/rtems/status/header.yml                    |  12 -
 spec/if/rtems/status/is-equal.yml                  |  37 --
 spec/if/rtems/status/is-successful.yml             |  33 --
 spec/if/rtems/support/group.yml                    |  19 -
 spec/if/rtems/support/header.yml                   |  12 -
 spec/if/rtems/support/is-name-valid.yml            |  36 --
 spec/if/rtems/support/microseconds-to-ticks.yml    |  31 --
 spec/if/rtems/support/milliseconds-to-ticks.yml    |  31 --
 spec/if/rtems/support/name-to-characters.yml       |  51 ---
 spec/if/rtems/support/workspace-allocate.yml       |  34 --
 spec/if/rtems/support/workspace-free.yml           |  30 --
 .../if/rtems/support/workspace-get-information.yml |  30 --
 ...orkspace-greedy-allocate-all-except-largest.yml |  30 --
 .../if/rtems/support/workspace-greedy-allocate.yml |  34 --
 spec/if/rtems/tasks/argument.yml                   |  21 -
 spec/if/rtems/tasks/config.yml                     | 109 -----
 spec/if/rtems/tasks/construct.yml                  |  91 ----
 spec/if/rtems/tasks/create.yml                     | 101 -----
 spec/if/rtems/tasks/delete.yml                     |  30 --
 spec/if/rtems/tasks/exit.yml                       |  26 --
 spec/if/rtems/tasks/get-affinity.yml               |  38 --
 spec/if/rtems/tasks/get-priority.yml               |  38 --
 spec/if/rtems/tasks/get-scheduler.yml              |  34 --
 spec/if/rtems/tasks/group.yml                      |  20 -
 spec/if/rtems/tasks/header.yml                     |  12 -
 spec/if/rtems/tasks/ident.yml                      |  85 ----
 spec/if/rtems/tasks/initialization-table.yml       |  67 ---
 spec/if/rtems/tasks/is-suspended.yml               |  30 --
 spec/if/rtems/tasks/maximum-priority.yml           |  19 -
 spec/if/rtems/tasks/minimum-stack-size.yml         |  19 -
 spec/if/rtems/tasks/mode.yml                       |  38 --
 spec/if/rtems/tasks/priority.yml                   |  19 -
 spec/if/rtems/tasks/restart.yml                    |  34 --
 spec/if/rtems/tasks/resume.yml                     |  30 --
 spec/if/rtems/tasks/self-define.yml                |  19 -
 spec/if/rtems/tasks/self.yml                       |  26 --
 spec/if/rtems/tasks/set-affinity.yml               |  38 --
 spec/if/rtems/tasks/set-priority.yml               |  38 --
 spec/if/rtems/tasks/set-scheduler.yml              |  38 --
 spec/if/rtems/tasks/start.yml                      |  38 --
 spec/if/rtems/tasks/storage-alignment.yml          |  22 -
 spec/if/rtems/tasks/storage-size.yml               |  41 --
 spec/if/rtems/tasks/suspend.yml                    |  30 --
 spec/if/rtems/tasks/visitor.yml                    |  19 -
 spec/if/rtems/tasks/wake-after.yml                 |  30 --
 spec/if/rtems/tasks/wake-when.yml                  |  30 --
 spec/if/rtems/tasks/yield-processor.yml            |  19 -
 spec/if/rtems/timer/cancel.yml                     |  30 --
 spec/if/rtems/timer/create.yml                     |  34 --
 spec/if/rtems/timer/delete.yml                     |  30 --
 spec/if/rtems/timer/fire-after.yml                 |  42 --
 spec/if/rtems/timer/fire-when.yml                  |  42 --
 spec/if/rtems/timer/get-information.yml            |  34 --
 spec/if/rtems/timer/group.yml                      |  19 -
 spec/if/rtems/timer/header.yml                     |  12 -
 spec/if/rtems/timer/ident.yml                      |  59 ---
 spec/if/rtems/timer/information.yml                |  50 ---
 spec/if/rtems/timer/initiate-server.yml            |  38 --
 spec/if/rtems/timer/reset.yml                      |  30 --
 spec/if/rtems/timer/server-default-priority.yml    |  19 -
 spec/if/rtems/timer/server-fire-after.yml          |  42 --
 spec/if/rtems/timer/server-fire-when.yml           |  42 --
 spec/if/rtems/timer/service-routine-entry.yml      |  20 -
 spec/if/rtems/types/group.yml                      |  18 -
 spec/if/rtems/types/header.yml                     |  27 --
 spec/if/rtems/types/id-none.yml                    |  20 -
 spec/if/rtems/types/id.yml                         |  19 -
 spec/if/rtems/types/interval.yml                   |  19 -
 spec/if/rtems/types/minimum-packet-size.yml        |  19 -
 spec/if/rtems/types/minimun-hetero-conversion.yml  |  19 -
 spec/if/rtems/types/mp-packet-classes.yml          |  20 -
 spec/if/rtems/types/mpci-get-packet-entry.yml      |  20 -
 spec/if/rtems/types/mpci-initialization-entry.yml  |  21 -
 spec/if/rtems/types/mpci-receive-packet-entry.yml  |  21 -
 spec/if/rtems/types/mpci-return-packet-entry.yml   |  20 -
 spec/if/rtems/types/mpci-send-packet-entry.yml     |  19 -
 spec/if/rtems/types/mpci-table.yml                 |  19 -
 spec/if/rtems/types/multiprocessing-table.yml      |  19 -
 spec/if/rtems/types/name.yml                       |  22 -
 spec/if/rtems/types/no-timeout.yml                 |  20 -
 spec/if/rtems/types/packet-prefix.yml              |  20 -
 spec/if/rtems/types/time-of-day.yml                |  75 ----
 spec/if/rtems/userext/create.yml                   |  38 --
 spec/if/rtems/userext/delete.yml                   |  30 --
 spec/if/rtems/userext/fatal-code.yml               |  19 -
 spec/if/rtems/userext/fatal-source.yml             |  19 -
 spec/if/rtems/userext/fatal.yml                    |  19 -
 spec/if/rtems/userext/group.yml                    |  21 -
 spec/if/rtems/userext/header.yml                   |  12 -
 spec/if/rtems/userext/ident.yml                    |  60 ---
 spec/if/rtems/userext/table.yml                    |  19 -
 spec/if/rtems/userext/task-begin.yml               |  19 -
 spec/if/rtems/userext/task-create.yml              |  19 -
 spec/if/rtems/userext/task-delete.yml              |  19 -
 spec/if/rtems/userext/task-exitted.yml             |  19 -
 spec/if/rtems/userext/task-restart.yml             |  19 -
 spec/if/rtems/userext/task-start.yml               |  19 -
 spec/if/rtems/userext/task-switch.yml              |  19 -
 spec/if/rtems/userext/task-terminate.yml           |  19 -
 spec/if/use/container.yml                          |   9 -
 spec/req/applconfig.yml                            |  15 +
 spec/req/rtems/attr/bit-set.yml                    |  15 -
 spec/req/rtems/attr/default.yml                    |  14 -
 spec/req/rtems/attr/semaphore-class.yml            |  17 -
 spec/req/rtems/attr/unique.yml                     |  14 -
 spec/req/rtems/attr/val/attr.yml                   | 278 ------------
 spec/req/rtems/barrier/ident.yml                   |  15 -
 spec/req/rtems/barrier/val/ident.yml               |  47 --
 spec/req/rtems/event/receive.yml                   |  15 -
 spec/req/rtems/event/send.yml                      |  15 -
 spec/req/rtems/event/system-receive.yml            |  15 -
 spec/req/rtems/event/system-send.yml               |  15 -
 spec/req/rtems/event/val/send-receive.yml          |  66 ---
 spec/req/rtems/event/val/system-send-receive.yml   |  71 ---
 spec/req/rtems/message/ident.yml                   |  15 -
 spec/req/rtems/message/val/ident.yml               |  49 --
 spec/req/rtems/modes/bit-set.yml                   |  15 -
 spec/req/rtems/modes/default.yml                   |  14 -
 spec/req/rtems/modes/masks-all.yml                 |  16 -
 spec/req/rtems/modes/masks-unique.yml              |  14 -
 spec/req/rtems/modes/masks.yml                     |  16 -
 spec/req/rtems/modes/unique.yml                    |  14 -
 spec/req/rtems/modes/val/modes.yml                 | 242 ----------
 spec/req/rtems/options/bit-set.yml                 |  15 -
 spec/req/rtems/options/default.yml                 |  14 -
 spec/req/rtems/options/unique.yml                  |  14 -
 spec/req/rtems/options/val/options.yml             | 117 -----
 spec/req/rtems/part/ident.yml                      |  15 -
 spec/req/rtems/part/val/ident.yml                  |  51 ---
 spec/req/rtems/ratemon/ident.yml                   |  15 -
 spec/req/rtems/ratemon/val/ident.yml               |  45 --
 spec/req/rtems/sem/ident.yml                       |  15 -
 spec/req/rtems/sem/val/ident.yml                   |  49 --
 spec/req/rtems/tasks/construct-errors.yml          | 499 ---------------------
 spec/req/rtems/tasks/ident.yml                     | 123 -----
 spec/req/rtems/timer/ident.yml                     |  15 -
 spec/req/rtems/timer/val/ident.yml                 |  45 --
 spec/req/rtems/userext/ident.yml                   |  15 -
 spec/req/rtems/userext/val/ident.yml               |  47 --
 spec/{ => req}/system.yml                          |   0
 .../attr => rtems/attr/if}/application-task.yml    |   0
 spec/rtems/attr/if/attribute.yml                   |  21 +
 .../attr/if}/barrier-automatic-release.yml         |   0
 .../attr/if}/barrier-manual-release.yml            |   0
 .../attr => rtems/attr/if}/binary-semaphore.yml    |   0
 .../attr => rtems/attr/if}/counting-semaphore.yml  |   0
 spec/{if/rtems/attr => rtems/attr/if}/default.yml  |   0
 spec/{if/rtems/attr => rtems/attr/if}/fifo.yml     |   0
 .../attr => rtems/attr/if}/floating-point.yml      |   0
 spec/{if/rtems/attr => rtems/attr/if}/global.yml   |   0
 spec/rtems/attr/if/group.yml                       |  18 +
 spec/rtems/attr/if/header.yml                      |  12 +
 .../attr => rtems/attr/if}/inherit-priority.yml    |   0
 spec/{if/rtems/attr => rtems/attr/if}/local.yml    |   0
 .../attr/if}/multiprocessor-resource-sharing.yml   |   0
 .../attr => rtems/attr/if}/no-floating-point.yml   |   0
 .../attr => rtems/attr/if}/no-inherit-priority.yml |   0
 .../if}/no-multiprocessor-resource-sharing.yml     |   0
 .../attr => rtems/attr/if}/no-priority-ceiling.yml |   0
 .../attr => rtems/attr/if}/priority-ceiling.yml    |   0
 spec/{if/rtems/attr => rtems/attr/if}/priority.yml |   0
 .../attr => rtems/attr/if}/semaphore-class.yml     |   0
 .../attr/if}/simple-binary-semaphore.yml           |   0
 .../rtems/attr => rtems/attr/if}/system-task.yml   |   0
 spec/rtems/attr/req/bit-set.yml                    |  15 +
 spec/rtems/attr/req/default.yml                    |  14 +
 spec/rtems/attr/req/semaphore-class.yml            |  16 +
 spec/rtems/attr/req/unique.yml                     |  14 +
 spec/rtems/attr/val/attr.yml                       | 278 ++++++++++++
 spec/rtems/barrier/if/create.yml                   |  42 ++
 spec/rtems/barrier/if/delete.yml                   |  30 ++
 spec/rtems/barrier/if/group.yml                    |  20 +
 spec/rtems/barrier/if/header.yml                   |  12 +
 spec/rtems/barrier/if/ident.yml                    |  60 +++
 spec/rtems/barrier/if/release.yml                  |  34 ++
 spec/rtems/barrier/if/wait.yml                     |  34 ++
 spec/rtems/barrier/req/ident.yml                   |  15 +
 spec/rtems/barrier/val/ident.yml                   |  47 ++
 spec/rtems/basedefs/if/alias.yml                   |  31 ++
 .../basedefs => rtems/basedefs/if}/align-down.yml  |   0
 .../basedefs => rtems/basedefs/if}/align-up.yml    |   0
 spec/rtems/basedefs/if/aligned.yml                 |  32 ++
 spec/rtems/basedefs/if/alloc-align.yml             |  32 ++
 spec/rtems/basedefs/if/alloc-size-2.yml            |  36 ++
 spec/rtems/basedefs/if/alloc-size.yml              |  32 ++
 .../basedefs => rtems/basedefs/if}/array-size.yml  |   0
 .../basedefs/if}/compiler-deprecated-attribute.yml |   0
 spec/rtems/basedefs/if/compiler-memory-barrier.yml |  28 ++
 .../basedefs/if}/compiler-no-return-attribute.yml  |   0
 .../basedefs/if}/compiler-packed-attribute.yml     |   0
 .../basedefs/if}/compiler-pure-attribute.yml       |   0
 .../basedefs/if}/compiler-used-attribute.yml       |   0
 .../basedefs => rtems/basedefs/if}/concat.yml      |   0
 spec/rtems/basedefs/if/const.yml                   |  25 ++
 spec/rtems/basedefs/if/container-of.yml            |  37 ++
 .../basedefs/if}/declare-global-symbol.yml         |   0
 .../basedefs => rtems/basedefs/if}/deconst.yml     |   0
 spec/rtems/basedefs/if/define-global-symbol.yml    |  44 ++
 spec/rtems/basedefs/if/deprecated.yml              |  24 +
 spec/rtems/basedefs/if/dequalify-depthx.yml        |  50 +++
 .../basedefs => rtems/basedefs/if}/dequalify.yml   |   0
 .../basedefs => rtems/basedefs/if}/devolatile.yml  |   0
 .../basedefs => rtems/basedefs/if}/expand.yml      |   0
 .../rtems/basedefs => rtems/basedefs/if}/false.yml |   0
 spec/rtems/basedefs/if/group.yml                   |  19 +
 spec/rtems/basedefs/if/have-member-same-type.yml   |  48 ++
 spec/rtems/basedefs/if/header.yml                  |  29 ++
 spec/rtems/basedefs/if/inline-routine.yml          |  23 +
 spec/rtems/basedefs/if/malloclike.yml              |  24 +
 spec/rtems/basedefs/if/no-inline.yml               |  23 +
 spec/rtems/basedefs/if/no-return.yml               |  24 +
 spec/rtems/basedefs/if/obfuscate-variable.yml      |  34 ++
 spec/rtems/basedefs/if/packed.yml                  |  24 +
 spec/rtems/basedefs/if/predict-false.yml           |  33 ++
 spec/rtems/basedefs/if/predict-true.yml            |  33 ++
 spec/rtems/basedefs/if/printflike.yml              |  37 ++
 spec/rtems/basedefs/if/pure.yml                    |  25 ++
 spec/rtems/basedefs/if/return-address.yml          |  27 ++
 spec/rtems/basedefs/if/section.yml                 |  32 ++
 spec/rtems/basedefs/if/static-assert.yml           |  41 ++
 .../basedefs => rtems/basedefs/if}/string.yml      |   0
 spec/rtems/basedefs/if/symbol-name.yml             |  33 ++
 .../rtems/basedefs => rtems/basedefs/if}/true.yml  |   0
 spec/rtems/basedefs/if/typeof-refx.yml             |  37 ++
 spec/rtems/basedefs/if/unreachable.yml             |  29 ++
 spec/rtems/basedefs/if/unused.yml                  |  24 +
 spec/rtems/basedefs/if/used.yml                    |  23 +
 spec/rtems/basedefs/if/warn-unused-result.yml      |  24 +
 spec/rtems/basedefs/if/weak-alias.yml              |  32 ++
 spec/rtems/basedefs/if/weak.yml                    |  26 ++
 .../basedefs => rtems/basedefs/if}/xconcat.yml     |   0
 .../basedefs => rtems/basedefs/if}/xstring.yml     |   0
 spec/rtems/basedefs/if/zero-length-array.yml       |  25 ++
 spec/rtems/cache/if/aligned-malloc.yml             |  30 ++
 spec/rtems/cache/if/coherent-add-area.yml          |  34 ++
 spec/rtems/cache/if/coherent-allocate.yml          |  38 ++
 .../cache => rtems/cache/if}/coherent-free.yml     |   0
 .../cache => rtems/cache/if}/disable-data.yml      |   0
 .../cache/if}/disable-instruction.yml              |   0
 .../rtems/cache => rtems/cache/if}/enable-data.yml |   0
 .../cache/if}/enable-instruction.yml               |   0
 .../cache => rtems/cache/if}/flush-entire-data.yml |   0
 spec/rtems/cache/if/flush-multiple-data-lines.yml  |  34 ++
 .../rtems/cache => rtems/cache/if}/freeze-data.yml |   0
 .../cache/if}/freeze-instruction.yml               |   0
 spec/rtems/cache/if/get-data-line-size.yml         |  26 ++
 spec/rtems/cache/if/get-data-size.yml              |  30 ++
 spec/rtems/cache/if/get-instruction-line-size.yml  |  26 ++
 spec/rtems/cache/if/get-instruction-size.yml       |  30 ++
 spec/rtems/cache/if/get-maximal-line-size.yml      |  26 ++
 spec/rtems/cache/if/group.yml                      |  19 +
 spec/rtems/cache/if/header.yml                     |  12 +
 .../if/instruction-sync-after-code-change.yml      |  34 ++
 .../cache/if}/invalidate-entire-data.yml           |   0
 .../cache/if}/invalidate-entire-instruction.yml    |   0
 .../cache/if/invalidate-multiple-data-lines.yml    |  34 ++
 .../if/invalidate-multiple-instruction-lines.yml   |  34 ++
 .../cache => rtems/cache/if}/unfreeze-data.yml     |   0
 .../cache/if}/unfreeze-instruction.yml             |   0
 spec/rtems/clock/if/get-seconds-since-epoch.yml    |  30 ++
 spec/rtems/clock/if/get-ticks-per-second.yml       |  23 +
 spec/rtems/clock/if/get-ticks-since-boot.yml       |  23 +
 spec/rtems/clock/if/get-tod-timeval.yml            |  30 ++
 spec/rtems/clock/if/get-tod.yml                    |  30 ++
 spec/rtems/clock/if/get-uptime-nanoseconds.yml     |  26 ++
 spec/rtems/clock/if/get-uptime-seconds.yml         |  26 ++
 spec/rtems/clock/if/get-uptime-timeval.yml         |  30 ++
 spec/rtems/clock/if/get-uptime.yml                 |  30 ++
 spec/rtems/clock/if/group.yml                      |  20 +
 spec/rtems/clock/if/header.yml                     |  12 +
 spec/rtems/clock/if/set.yml                        |  30 ++
 spec/rtems/clock/if/tick-before.yml                |  40 ++
 spec/rtems/clock/if/tick-later-usec.yml            |  41 ++
 spec/rtems/clock/if/tick-later.yml                 |  32 ++
 spec/rtems/clock/if/tick.yml                       |  26 ++
 spec/rtems/config/if/api-table.yml                 | 128 ++++++
 .../config/if}/get-api-configuration.yml           |   0
 .../config/if}/get-copyright-notice.yml            |   0
 spec/rtems/config/if/get-do-zero-of-workspace.yml  |  24 +
 spec/rtems/config/if/get-idle-task-stack-size.yml  |  23 +
 spec/rtems/config/if/get-idle-task.yml             |  23 +
 spec/rtems/config/if/get-interrupt-stack-size.yml  |  23 +
 spec/rtems/config/if/get-maximum-barriers.yml      |  27 ++
 spec/rtems/config/if/get-maximum-extensions.yml    |  27 ++
 .../rtems/config/if/get-maximum-message-queues.yml |  27 ++
 spec/rtems/config/if/get-maximum-partitions.yml    |  27 ++
 spec/rtems/config/if/get-maximum-periods.yml       |  27 ++
 spec/rtems/config/if/get-maximum-ports.yml         |  27 ++
 spec/rtems/config/if/get-maximum-processors.yml    |  29 ++
 spec/rtems/config/if/get-maximum-regions.yml       |  27 ++
 spec/rtems/config/if/get-maximum-semaphores.yml    |  27 ++
 spec/rtems/config/if/get-maximum-tasks.yml         |  27 ++
 spec/rtems/config/if/get-maximum-timers.yml        |  27 ++
 spec/rtems/config/if/get-microseconds-per-tick.yml |  23 +
 spec/rtems/config/if/get-milliseconds-per-tick.yml |  23 +
 spec/rtems/config/if/get-nanoseconds-per-tick.yml  |  23 +
 .../config/if/get-number-of-initial-extensions.yml |  23 +
 spec/rtems/config/if/get-stack-allocate-hook.yml   |  23 +
 .../config/if/get-stack-allocate-init-hook.yml     |  23 +
 .../if/get-stack-allocator-avoids-work-space.yml   |  24 +
 spec/rtems/config/if/get-stack-free-hook.yml       |  23 +
 spec/rtems/config/if/get-stack-space-size.yml      |  27 ++
 spec/rtems/config/if/get-ticks-per-timeslice.yml   |  23 +
 spec/rtems/config/if/get-unified-work-area.yml     |  24 +
 spec/rtems/config/if/get-user-extension-table.yml  |  24 +
 .../config/if/get-user-multiprocessing-table.yml   |  26 ++
 .../config/if}/get-version-string.yml              |   0
 spec/rtems/config/if/get-work-space-size.yml       |  26 ++
 spec/rtems/config/if/group.yml                     |  19 +
 spec/rtems/config/if/has-hardware-fp.yml           |  19 +
 spec/rtems/config/if/header-2.yml                  |  14 +
 spec/rtems/config/if/header.yml                    |  23 +
 spec/rtems/config/if/resource-is-unlimited.yml     |  26 ++
 .../config/if/resource-maximum-per-allocation.yml  |  26 ++
 .../config/if}/resource-unlimited.yml              |   0
 spec/rtems/config/if/stack-allocate-hook.yml       |  19 +
 spec/rtems/config/if/stack-allocate-init-hook.yml  |  19 +
 spec/rtems/config/if/stack-free-hook.yml           |  19 +
 spec/rtems/config/if/unlimited-objects.yml         |  19 +
 spec/rtems/dpmem/if/create.yml                     |  46 ++
 spec/rtems/dpmem/if/delete.yml                     |  30 ++
 spec/rtems/dpmem/if/external-to-internal.yml       |  38 ++
 spec/rtems/dpmem/if/group.yml                      |  21 +
 spec/rtems/dpmem/if/header.yml                     |  12 +
 spec/rtems/dpmem/if/ident.yml                      |  59 +++
 spec/rtems/dpmem/if/internal-to-external.yml       |  38 ++
 .../rtems/event => rtems/event/if}/all-events.yml  |   0
 .../{if/rtems/event => rtems/event/if}/event-0.yml |   0
 .../{if/rtems/event => rtems/event/if}/event-1.yml |   0
 .../rtems/event => rtems/event/if}/event-10.yml    |   0
 .../rtems/event => rtems/event/if}/event-11.yml    |   0
 .../rtems/event => rtems/event/if}/event-12.yml    |   0
 .../rtems/event => rtems/event/if}/event-13.yml    |   0
 .../rtems/event => rtems/event/if}/event-14.yml    |   0
 .../rtems/event => rtems/event/if}/event-15.yml    |   0
 .../rtems/event => rtems/event/if}/event-16.yml    |   0
 .../rtems/event => rtems/event/if}/event-17.yml    |   0
 .../rtems/event => rtems/event/if}/event-18.yml    |   0
 .../rtems/event => rtems/event/if}/event-19.yml    |   0
 .../{if/rtems/event => rtems/event/if}/event-2.yml |   0
 .../rtems/event => rtems/event/if}/event-20.yml    |   0
 .../rtems/event => rtems/event/if}/event-21.yml    |   0
 .../rtems/event => rtems/event/if}/event-22.yml    |   0
 .../rtems/event => rtems/event/if}/event-23.yml    |   0
 .../rtems/event => rtems/event/if}/event-24.yml    |   0
 .../rtems/event => rtems/event/if}/event-25.yml    |   0
 .../rtems/event => rtems/event/if}/event-26.yml    |   0
 .../rtems/event => rtems/event/if}/event-27.yml    |   0
 .../rtems/event => rtems/event/if}/event-28.yml    |   0
 .../rtems/event => rtems/event/if}/event-29.yml    |   0
 .../{if/rtems/event => rtems/event/if}/event-3.yml |   0
 .../rtems/event => rtems/event/if}/event-30.yml    |   0
 .../rtems/event => rtems/event/if}/event-31.yml    |   0
 .../{if/rtems/event => rtems/event/if}/event-4.yml |   0
 .../{if/rtems/event => rtems/event/if}/event-5.yml |   0
 .../{if/rtems/event => rtems/event/if}/event-6.yml |   0
 .../{if/rtems/event => rtems/event/if}/event-7.yml |   0
 .../{if/rtems/event => rtems/event/if}/event-8.yml |   0
 .../{if/rtems/event => rtems/event/if}/event-9.yml |   0
 spec/rtems/event/if/group.yml                      |  20 +
 spec/rtems/event/if/header.yml                     |  12 +
 .../event => rtems/event/if}/pending-events.yml    |   0
 spec/rtems/event/if/receive.yml                    | 122 +++++
 spec/rtems/event/if/send.yml                       |  74 +++
 spec/rtems/event/if/set.yml                        |  21 +
 .../event/if}/system-network-close.yml             |   0
 .../event/if}/system-network-sbwait.yml            |   0
 .../event/if}/system-network-sosleep.yml           |   0
 spec/rtems/event/if/system-receive.yml             |  49 ++
 spec/rtems/event/if/system-send.yml                |  33 ++
 .../event/if}/system-server-resume.yml             |   0
 .../event => rtems/event/if}/system-server.yml     |   0
 .../event => rtems/event/if}/system-transient.yml  |   0
 spec/rtems/event/if/transient-clear.yml            |  32 ++
 spec/rtems/event/if/transient-receive.yml          |  40 ++
 spec/rtems/event/if/transient-send.yml             |  29 ++
 .../val => rtems/event/req}/event-constant.yml     |   0
 .../rtems/event/val => rtems/event/req}/events.yml |   0
 spec/rtems/event/req/receive.yml                   |  15 +
 .../event => rtems/event/req}/send-receive.yml     |   0
 spec/rtems/event/req/send.yml                      |  15 +
 spec/rtems/event/req/system-receive.yml            |  15 +
 spec/rtems/event/req/system-send.yml               |  15 +
 spec/rtems/event/val/send-receive.yml              |  65 +++
 spec/rtems/event/val/system-send-receive.yml       |  71 +++
 .../fatal => rtems/fatal/if}/assert-context.yml    |   0
 spec/rtems/fatal/if/error-occurred.yml             |  30 ++
 spec/rtems/fatal/if/exception-frame-print.yml      |  31 ++
 spec/rtems/fatal/if/exception-frame.yml            |  19 +
 spec/rtems/fatal/if/fatal.yml                      |  35 ++
 spec/rtems/fatal/if/group.yml                      |  21 +
 spec/rtems/fatal/if/header.yml                     |  12 +
 spec/rtems/fatal/if/internal-error-text.yml        |  30 ++
 spec/rtems/fatal/if/panic.yml                      |  35 ++
 spec/rtems/fatal/if/source-text.yml                |  30 ++
 spec/rtems/if/group.yml                            |  18 +
 spec/rtems/if/header.yml                           |  87 ++++
 spec/rtems/init/if/group.yml                       |  20 +
 spec/rtems/init/if/header.yml                      |  12 +
 spec/rtems/init/if/initialize-executive.yml        |  32 ++
 spec/rtems/init/if/shutdown-executive.yml          |  35 ++
 spec/rtems/intr/if/catch.yml                       |  38 ++
 spec/{if/rtems/intr => rtems/intr/if}/cause.yml    |   0
 spec/{if/rtems/intr => rtems/intr/if}/clear.yml    |   0
 spec/rtems/intr/if/disable.yml                     |  27 ++
 spec/rtems/intr/if/enable.yml                      |  27 ++
 spec/rtems/intr/if/flash.yml                       |  27 ++
 spec/rtems/intr/if/group.yml                       |  24 +
 spec/rtems/intr/if/header.yml                      |  12 +
 spec/rtems/intr/if/is-in-progress.yml              |  23 +
 spec/rtems/intr/if/isr-entry.yml                   |  23 +
 spec/rtems/intr/if/isr.yml                         |  19 +
 spec/rtems/intr/if/level.yml                       |  19 +
 spec/rtems/intr/if/local-disable.yml               |  26 ++
 spec/rtems/intr/if/local-enable.yml                |  26 ++
 spec/rtems/intr/if/lock-acquire-isr.yml            |  35 ++
 spec/rtems/intr/if/lock-acquire.yml                |  30 ++
 spec/rtems/intr/if/lock-context.yml                |  19 +
 spec/rtems/intr/if/lock-declare.yml                |  30 ++
 spec/rtems/intr/if/lock-define.yml                 |  33 ++
 spec/rtems/intr/if/lock-destroy.yml                |  26 ++
 spec/rtems/intr/if/lock-initialize.yml             |  30 ++
 spec/rtems/intr/if/lock-initializer.yml            |  26 ++
 spec/rtems/intr/if/lock-isr-disable.yml            |  26 ++
 spec/rtems/intr/if/lock-member.yml                 |  26 ++
 spec/rtems/intr/if/lock-reference.yml              |  30 ++
 spec/rtems/intr/if/lock-release-isr.yml            |  35 ++
 spec/rtems/intr/if/lock-release.yml                |  30 ++
 spec/rtems/intr/if/lock.yml                        |  19 +
 spec/rtems/intr/if/vector-number.yml               |  19 +
 spec/rtems/io/if/close.yml                         |  38 ++
 spec/rtems/io/if/control.yml                       |  38 ++
 .../io => rtems/io/if}/device-driver-entry.yml     |   0
 spec/rtems/io/if/device-driver.yml                 |  19 +
 spec/rtems/io/if/device-major-number.yml           |  19 +
 spec/rtems/io/if/device-minor-number.yml           |  19 +
 .../io => rtems/io/if}/driver-address-table.yml    |   0
 spec/rtems/io/if/driver-error.yml                  |  38 ++
 spec/{if/rtems/io => rtems/io/if}/getchark.yml     |   0
 spec/rtems/io/if/group.yml                         |  21 +
 spec/rtems/io/if/header.yml                        |  12 +
 spec/rtems/io/if/initialize.yml                    |  38 ++
 spec/{if/rtems/io => rtems/io/if}/mount.yml        |   0
 spec/rtems/io/if/open.yml                          |  38 ++
 spec/{if/rtems/io => rtems/io/if}/printer.yml      |   0
 spec/{if/rtems/io => rtems/io/if}/printk.yml       |   0
 spec/{if/rtems/io => rtems/io/if}/putc.yml         |   0
 spec/rtems/io/if/read.yml                          |  38 ++
 spec/rtems/io/if/register-driver.yml               |  38 ++
 spec/rtems/io/if/register-name.yml                 |  38 ++
 spec/{if/rtems/io => rtems/io/if}/unmount.yml      |   0
 spec/rtems/io/if/unregister-driver.yml             |  30 ++
 spec/rtems/io/if/write.yml                         |  38 ++
 spec/rtems/message/if/broadcast.yml                |  42 ++
 spec/rtems/message/if/create.yml                   |  46 ++
 spec/rtems/message/if/delete.yml                   |  30 ++
 spec/rtems/message/if/flush.yml                    |  34 ++
 spec/rtems/message/if/get-number-pending.yml       |  34 ++
 spec/rtems/message/if/group.yml                    |  20 +
 spec/rtems/message/if/header.yml                   |  12 +
 spec/rtems/message/if/ident.yml                    |  86 ++++
 spec/rtems/message/if/receive.yml                  |  46 ++
 spec/rtems/message/if/send.yml                     |  38 ++
 spec/rtems/message/if/urgent.yml                   |  38 ++
 spec/rtems/message/req/ident.yml                   |  15 +
 spec/rtems/message/val/ident.yml                   |  49 ++
 .../modes => rtems/mode/if}/all-mode-masks.yml     |   0
 .../{if/rtems/modes => rtems/mode/if}/asr-mask.yml |   0
 spec/{if/rtems/modes => rtems/mode/if}/asr.yml     |   0
 .../rtems/modes => rtems/mode/if}/current-mode.yml |   0
 spec/{if/rtems/modes => rtems/mode/if}/default.yml |   0
 spec/rtems/mode/if/group.yml                       |  18 +
 spec/rtems/mode/if/header.yml                      |  12 +
 spec/rtems/mode/if/interrupt-level-body.yml        |  35 ++
 .../modes => rtems/mode/if}/interrupt-level.yml    |   0
 spec/rtems/mode/if/interrupt-mask-variable.yml     |  19 +
 spec/rtems/mode/if/interrupt-mask.yml              |  20 +
 spec/rtems/mode/if/mode.yml                        |  20 +
 spec/{if/rtems/modes => rtems/mode/if}/no-asr.yml  |   0
 .../rtems/modes => rtems/mode/if}/no-preempt.yml   |   0
 .../rtems/modes => rtems/mode/if}/no-timeslice.yml |   0
 .../rtems/modes => rtems/mode/if}/preempt-mask.yml |   0
 spec/{if/rtems/modes => rtems/mode/if}/preempt.yml |   0
 .../modes => rtems/mode/if}/timeslice-mask.yml     |   0
 .../rtems/modes => rtems/mode/if}/timeslice.yml    |   0
 spec/rtems/mode/req/bit-set.yml                    |  15 +
 spec/rtems/mode/req/default.yml                    |  14 +
 spec/rtems/mode/req/masks-all.yml                  |  15 +
 spec/rtems/mode/req/masks-unique.yml               |  14 +
 spec/rtems/mode/req/masks.yml                      |  15 +
 spec/rtems/mode/req/unique.yml                     |  14 +
 spec/rtems/mode/val/modes.yml                      | 242 ++++++++++
 spec/{if/rtems/mp => rtems/mp/if}/announce.yml     |   0
 spec/rtems/mp/if/group.yml                         |  20 +
 spec/rtems/mp/if/header.yml                        |  12 +
 spec/rtems/object/if/api-class-information.yml     |  58 +++
 .../object/if}/api-maximum-class.yml               |   0
 .../object/if}/api-minimum-class.yml               |   0
 spec/rtems/object/if/build-id.yml                  |  36 ++
 spec/rtems/object/if/build-name.yml                |  36 ++
 .../object/if}/get-api-class-name.yml              |   0
 .../object => rtems/object/if}/get-api-name.yml    |   0
 spec/rtems/object/if/get-class-information.yml     |  38 ++
 spec/rtems/object/if/get-classic-name.yml          |  34 ++
 spec/rtems/object/if/get-local-node.yml            |  27 ++
 spec/rtems/object/if/get-name.yml                  |  38 ++
 spec/rtems/object/if/group.yml                     |  22 +
 spec/rtems/object/if/header.yml                    |  12 +
 .../object/if}/id-api-maximum-class.yml            |   0
 spec/rtems/object/if/id-api-maximum.yml            |  23 +
 spec/rtems/object/if/id-api-minimum.yml            |  23 +
 spec/rtems/object/if/id-final-index.yml            |  19 +
 spec/rtems/object/if/id-final.yml                  |  19 +
 spec/rtems/object/if/id-get-api.yml                |  26 ++
 spec/rtems/object/if/id-get-class.yml              |  26 ++
 spec/rtems/object/if/id-get-index.yml              |  26 ++
 spec/rtems/object/if/id-get-node.yml               |  26 ++
 spec/rtems/object/if/id-initial-index.yml          |  19 +
 spec/rtems/object/if/id-initial.yml                |  33 ++
 spec/rtems/object/if/search-all-nodes.yml          |  19 +
 spec/rtems/object/if/search-local-node.yml         |  19 +
 spec/rtems/object/if/search-other-nodes.yml        |  19 +
 spec/rtems/object/if/set-name.yml                  |  34 ++
 spec/rtems/object/if/who-am-i.yml                  |  19 +
 .../rtems/options => rtems/option/if}/default.yml  |   0
 .../options => rtems/option/if}/event-all.yml      |   0
 .../options => rtems/option/if}/event-any.yml      |   0
 spec/rtems/option/if/group.yml                     |  18 +
 spec/rtems/option/if/header.yml                    |  12 +
 .../rtems/options => rtems/option/if}/no-wait.yml  |   0
 spec/rtems/option/if/option.yml                    |  20 +
 .../{if/rtems/options => rtems/option/if}/wait.yml |   0
 spec/rtems/option/req/bit-set.yml                  |  15 +
 spec/rtems/option/req/default.yml                  |  14 +
 spec/rtems/option/req/unique.yml                   |  14 +
 spec/rtems/option/val/options.yml                  | 117 +++++
 spec/rtems/part/if/create.yml                      |  50 +++
 spec/rtems/part/if/delete.yml                      |  30 ++
 spec/rtems/part/if/get-buffer.yml                  |  34 ++
 spec/rtems/part/if/group.yml                       |  20 +
 spec/rtems/part/if/header.yml                      |  12 +
 spec/rtems/part/if/ident.yml                       |  86 ++++
 spec/rtems/part/if/return-buffer.yml               |  34 ++
 spec/rtems/part/req/ident.yml                      |  15 +
 spec/rtems/part/val/ident.yml                      |  51 +++
 .../rtems/ratemon => rtems/ratemon/if}/active.yml  |   0
 spec/rtems/ratemon/if/cancel.yml                   |  30 ++
 spec/rtems/ratemon/if/create.yml                   |  34 ++
 spec/rtems/ratemon/if/delete.yml                   |  30 ++
 .../rtems/ratemon => rtems/ratemon/if}/expired.yml |   0
 spec/rtems/ratemon/if/get-statistics.yml           |  34 ++
 spec/rtems/ratemon/if/get-status.yml               |  34 ++
 spec/rtems/ratemon/if/group.yml                    |  22 +
 spec/rtems/ratemon/if/header.yml                   |  12 +
 spec/rtems/ratemon/if/ident.yml                    |  60 +++
 .../ratemon => rtems/ratemon/if}/inactive.yml      |   0
 .../ratemon => rtems/ratemon/if}/period-states.yml |   0
 spec/rtems/ratemon/if/period-statistics.yml        |  82 ++++
 spec/rtems/ratemon/if/period-status-define.yml     |  21 +
 spec/rtems/ratemon/if/period-status.yml            |  58 +++
 spec/rtems/ratemon/if/period.yml                   |  34 ++
 spec/rtems/ratemon/if/printer.yml                  |  11 +
 .../ratemon/if}/report-statistics-with-plugin.yml  |   0
 .../ratemon/if}/report-statistics.yml              |   0
 .../ratemon/if}/reset-all-statistics.yml           |   0
 spec/rtems/ratemon/if/reset-statistics.yml         |  30 ++
 spec/rtems/ratemon/req/ident.yml                   |  15 +
 spec/rtems/ratemon/val/ident.yml                   |  45 ++
 spec/rtems/region/if/create.yml                    |  50 +++
 spec/rtems/region/if/delete.yml                    |  30 ++
 spec/rtems/region/if/extend.yml                    |  38 ++
 spec/rtems/region/if/get-free-information.yml      |  34 ++
 spec/rtems/region/if/get-information.yml           |  34 ++
 spec/rtems/region/if/get-segment-size.yml          |  38 ++
 spec/rtems/region/if/get-segment.yml               |  46 ++
 spec/rtems/region/if/group.yml                     |  20 +
 spec/rtems/region/if/header.yml                    |  12 +
 spec/rtems/region/if/ident.yml                     |  59 +++
 spec/rtems/region/if/resize-segment.yml            |  42 ++
 spec/rtems/region/if/return-segment.yml            |  34 ++
 spec/{req/rtems => rtems/req}/ident-local.yml      |   0
 spec/{req/rtems => rtems/req}/ident.yml            |   0
 spec/rtems/scheduler/if/add-processor.yml          |  52 +++
 spec/rtems/scheduler/if/get-maximum-priority.yml   |  46 ++
 spec/rtems/scheduler/if/get-processor-maximum.yml  |  33 ++
 spec/rtems/scheduler/if/get-processor-set.yml      |  58 +++
 spec/rtems/scheduler/if/get-processor.yml          |  35 ++
 spec/rtems/scheduler/if/ident-by-processor-set.yml |  63 +++
 spec/rtems/scheduler/if/ident-by-processor.yml     |  51 +++
 spec/rtems/scheduler/if/ident.yml                  |  47 ++
 .../rtems/scheduler/if/map-priority-from-posix.yml |  53 +++
 spec/rtems/scheduler/if/map-priority-to-posix.yml  |  53 +++
 spec/rtems/scheduler/if/remove-processor.yml       |  52 +++
 spec/rtems/sem/if/create.yml                       | 183 ++++++++
 spec/rtems/sem/if/delete.yml                       |  30 ++
 spec/rtems/sem/if/flush.yml                        |  30 ++
 spec/rtems/sem/if/group.yml                        |  19 +
 spec/rtems/sem/if/header.yml                       |  12 +
 spec/rtems/sem/if/ident.yml                        |  86 ++++
 spec/rtems/sem/if/obtain.yml                       |  38 ++
 spec/rtems/sem/if/release.yml                      |  30 ++
 spec/rtems/sem/if/set-priority.yml                 |  42 ++
 spec/rtems/sem/req/ident.yml                       |  15 +
 spec/rtems/sem/val/ident.yml                       |  49 ++
 .../rtems/signal => rtems/signal/if}/asr-entry.yml |   0
 spec/{if/rtems/signal => rtems/signal/if}/asr.yml  |   0
 spec/rtems/signal/if/catch.yml                     |  34 ++
 spec/rtems/signal/if/group.yml                     |  20 +
 spec/rtems/signal/if/header-2.yml                  |  12 +
 spec/rtems/signal/if/header.yml                    |  12 +
 spec/rtems/signal/if/send.yml                      |  34 ++
 spec/rtems/signal/if/set.yml                       |  19 +
 .../rtems/signal => rtems/signal/if}/signal-0.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-1.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-10.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-11.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-12.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-13.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-14.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-15.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-16.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-17.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-18.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-19.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-2.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-20.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-21.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-22.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-23.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-24.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-25.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-26.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-27.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-28.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-29.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-3.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-30.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-31.yml |   0
 .../rtems/signal => rtems/signal/if}/signal-4.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-5.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-6.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-7.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-8.yml  |   0
 .../rtems/signal => rtems/signal/if}/signal-9.yml  |   0
 .../status/if}/already-suspended.yml               |   0
 .../status => rtems/status/if}/called-from-isr.yml |   0
 .../status => rtems/status/if}/code-to-errno.yml   |   0
 spec/{if/rtems/status => rtems/status/if}/code.yml |   0
 .../{if/rtems/status => rtems/status/if}/first.yml |   0
 spec/rtems/status/if/group.yml                     |  18 +
 spec/rtems/status/if/header.yml                    |  12 +
 .../status/if}/illegal-on-remote-object.yml        |   0
 .../status => rtems/status/if}/illegal-on-self.yml |   0
 .../status => rtems/status/if}/incorrect-state.yml |   0
 .../status => rtems/status/if}/internal-error.yml  |   0
 .../status => rtems/status/if}/interrupted.yml     |   0
 .../status => rtems/status/if}/invalid-address.yml |   0
 .../status => rtems/status/if}/invalid-clock.yml   |   0
 .../status => rtems/status/if}/invalid-id.yml      |   0
 .../status => rtems/status/if}/invalid-name.yml    |   0
 .../status => rtems/status/if}/invalid-node.yml    |   0
 .../status => rtems/status/if}/invalid-number.yml  |   0
 .../status/if}/invalid-priority.yml                |   0
 .../status => rtems/status/if}/invalid-size.yml    |   0
 .../rtems/status => rtems/status/if}/io-error.yml  |   0
 spec/rtems/status/if/is-equal.yml                  |  37 ++
 spec/rtems/status/if/is-successful.yml             |  33 ++
 spec/{if/rtems/status => rtems/status/if}/last.yml |   0
 .../status/if}/mp-not-configured.yml               |   0
 .../rtems/status => rtems/status/if}/no-memory.yml |   0
 .../status => rtems/status/if}/not-configured.yml  |   0
 .../status => rtems/status/if}/not-defined.yml     |   0
 .../status => rtems/status/if}/not-implemented.yml |   0
 .../status/if}/not-owner-of-resource.yml           |   0
 .../status/if}/object-was-deleted.yml              |   0
 .../status => rtems/status/if}/proxy-blocking.yml  |   0
 .../status => rtems/status/if}/resource-in-use.yml |   0
 .../status => rtems/status/if}/successful.yml      |   0
 .../status => rtems/status/if}/task-exitted.yml    |   0
 spec/{if/rtems/status => rtems/status/if}/text.yml |   0
 .../rtems/status => rtems/status/if}/timeout.yml   |   0
 .../rtems/status => rtems/status/if}/too-many.yml  |   0
 .../status => rtems/status/if}/unsatisfied.yml     |   0
 spec/rtems/support/if/group.yml                    |  19 +
 spec/rtems/support/if/header.yml                   |  12 +
 spec/rtems/support/if/is-name-valid.yml            |  36 ++
 spec/rtems/support/if/microseconds-to-ticks.yml    |  31 ++
 .../support/if}/milliseconds-to-microseconds.yml   |   0
 spec/rtems/support/if/milliseconds-to-ticks.yml    |  31 ++
 spec/rtems/support/if/name-to-characters.yml       |  51 +++
 spec/rtems/support/if/workspace-allocate.yml       |  34 ++
 spec/rtems/support/if/workspace-free.yml           |  30 ++
 .../rtems/support/if/workspace-get-information.yml |  30 ++
 ...orkspace-greedy-allocate-all-except-largest.yml |  30 ++
 .../rtems/support/if/workspace-greedy-allocate.yml |  34 ++
 .../support/if}/workspace-greedy-free.yml          |   0
 spec/rtems/task/if/argument.yml                    |  21 +
 spec/rtems/task/if/config.yml                      | 109 +++++
 .../task/if}/configured-minimum-stack-size.yml     |   0
 spec/rtems/task/if/construct.yml                   |  91 ++++
 spec/rtems/task/if/create.yml                      | 101 +++++
 .../tasks => rtems/task/if}/current-priority.yml   |   0
 spec/rtems/task/if/delete.yml                      |  30 ++
 spec/{if/rtems/tasks => rtems/task/if}/entry.yml   |   0
 spec/rtems/task/if/exit.yml                        |  26 ++
 spec/rtems/task/if/get-affinity.yml                |  38 ++
 spec/rtems/task/if/get-priority.yml                |  38 ++
 spec/rtems/task/if/get-scheduler.yml               |  34 ++
 spec/rtems/task/if/group.yml                       |  20 +
 spec/rtems/task/if/header.yml                      |  12 +
 spec/rtems/task/if/ident.yml                       |  85 ++++
 spec/rtems/task/if/initialization-table.yml        |  67 +++
 spec/rtems/task/if/is-suspended.yml                |  30 ++
 spec/{if/rtems/tasks => rtems/task/if}/iterate.yml |   0
 spec/rtems/task/if/maximum-priority.yml            |  19 +
 .../tasks => rtems/task/if}/minimum-priority.yml   |   0
 spec/rtems/task/if/minimum-stack-size.yml          |  19 +
 spec/rtems/task/if/mode.yml                        |  38 ++
 .../rtems/tasks => rtems/task/if}/no-priority.yml  |   0
 spec/rtems/task/if/priority.yml                    |  19 +
 spec/rtems/task/if/restart.yml                     |  34 ++
 spec/rtems/task/if/resume.yml                      |  30 ++
 spec/rtems/task/if/self-define.yml                 |  19 +
 spec/rtems/task/if/self.yml                        |  26 ++
 spec/rtems/task/if/set-affinity.yml                |  38 ++
 spec/rtems/task/if/set-priority.yml                |  38 ++
 spec/rtems/task/if/set-scheduler.yml               |  38 ++
 spec/rtems/task/if/start.yml                       |  38 ++
 spec/rtems/task/if/storage-alignment.yml           |  22 +
 spec/rtems/task/if/storage-size.yml                |  41 ++
 spec/rtems/task/if/suspend.yml                     |  30 ++
 spec/{if/rtems/tasks => rtems/task/if}/task.yml    |   0
 spec/{if/rtems/tasks => rtems/task/if}/tcb.yml     |   0
 spec/rtems/task/if/visitor.yml                     |  19 +
 spec/rtems/task/if/wake-after.yml                  |  30 ++
 spec/rtems/task/if/wake-when.yml                   |  30 ++
 spec/rtems/task/if/yield-processor.yml             |  19 +
 spec/rtems/task/req/construct-errors.yml           | 499 +++++++++++++++++++++
 spec/rtems/task/req/ident.yml                      | 123 +++++
 spec/rtems/timer/if/cancel.yml                     |  30 ++
 .../timer/if}/class-bit-not-dormant.yml            |   0
 .../timer => rtems/timer/if}/class-bit-on-task.yml |   0
 .../timer/if}/class-bit-time-of-day.yml            |   0
 .../{if/rtems/timer => rtems/timer/if}/classes.yml |   0
 spec/rtems/timer/if/create.yml                     |  34 ++
 spec/rtems/timer/if/delete.yml                     |  30 ++
 .../{if/rtems/timer => rtems/timer/if}/dormant.yml |   0
 spec/rtems/timer/if/fire-after.yml                 |  42 ++
 spec/rtems/timer/if/fire-when.yml                  |  42 ++
 spec/rtems/timer/if/get-information.yml            |  34 ++
 spec/rtems/timer/if/group.yml                      |  19 +
 spec/rtems/timer/if/header.yml                     |  12 +
 spec/rtems/timer/if/ident.yml                      |  59 +++
 spec/rtems/timer/if/information.yml                |  50 +++
 spec/rtems/timer/if/initiate-server.yml            |  38 ++
 .../timer => rtems/timer/if}/interval-on-task.yml  |   0
 .../rtems/timer => rtems/timer/if}/interval.yml    |   0
 spec/rtems/timer/if/reset.yml                      |  30 ++
 spec/rtems/timer/if/server-default-priority.yml    |  19 +
 spec/rtems/timer/if/server-fire-after.yml          |  42 ++
 spec/rtems/timer/if/server-fire-when.yml           |  42 ++
 spec/rtems/timer/if/service-routine-entry.yml      |  20 +
 .../timer => rtems/timer/if}/service-routine.yml   |   0
 .../timer/if}/time-of-day-on-task.yml              |   0
 .../rtems/timer => rtems/timer/if}/time-of-day.yml |   0
 spec/rtems/timer/req/ident.yml                     |  15 +
 spec/rtems/timer/val/ident.yml                     |  45 ++
 spec/rtems/type/if/group.yml                       |  18 +
 spec/rtems/type/if/header.yml                      |  27 ++
 spec/rtems/type/if/id-none.yml                     |  20 +
 spec/rtems/type/if/id.yml                          |  19 +
 spec/rtems/type/if/interval.yml                    |  19 +
 spec/rtems/type/if/minimum-packet-size.yml         |  19 +
 spec/rtems/type/if/minimun-hetero-conversion.yml   |  19 +
 spec/rtems/type/if/mp-packet-classes.yml           |  20 +
 .../rtems/types => rtems/type/if}/mpci-entry.yml   |   0
 spec/rtems/type/if/mpci-get-packet-entry.yml       |  20 +
 spec/rtems/type/if/mpci-initialization-entry.yml   |  21 +
 spec/rtems/type/if/mpci-receive-packet-entry.yml   |  21 +
 spec/rtems/type/if/mpci-return-packet-entry.yml    |  20 +
 spec/rtems/type/if/mpci-send-packet-entry.yml      |  19 +
 spec/rtems/type/if/mpci-table.yml                  |  19 +
 spec/rtems/type/if/multiprocessing-table.yml       |  19 +
 spec/rtems/type/if/name.yml                        |  22 +
 spec/rtems/type/if/no-timeout.yml                  |  20 +
 spec/rtems/type/if/packet-prefix.yml               |  20 +
 spec/rtems/type/if/time-of-day.yml                 |  75 ++++
 spec/rtems/userext/if/create.yml                   |  38 ++
 spec/rtems/userext/if/delete.yml                   |  30 ++
 spec/rtems/userext/if/fatal-code.yml               |  19 +
 spec/rtems/userext/if/fatal-source.yml             |  19 +
 spec/rtems/userext/if/fatal.yml                    |  19 +
 spec/rtems/userext/if/group.yml                    |  21 +
 spec/rtems/userext/if/header.yml                   |  12 +
 spec/rtems/userext/if/ident.yml                    |  60 +++
 spec/rtems/userext/if/table.yml                    |  19 +
 spec/rtems/userext/if/task-begin.yml               |  19 +
 spec/rtems/userext/if/task-create.yml              |  19 +
 spec/rtems/userext/if/task-delete.yml              |  19 +
 spec/rtems/userext/if/task-exitted.yml             |  19 +
 spec/rtems/userext/if/task-restart.yml             |  19 +
 spec/rtems/userext/if/task-start.yml               |  19 +
 spec/rtems/userext/if/task-switch.yml              |  19 +
 spec/rtems/userext/if/task-terminate.yml           |  19 +
 spec/rtems/userext/req/ident.yml                   |  15 +
 spec/rtems/userext/val/ident.yml                   |  47 ++
 .../impl/context => score/context/if}/fp-size.yml  |   0
 spec/score/context/if/header.yml                   |  12 +
 .../impl/cpu => score/cpu/if}/all-tasks-are-fp.yml |   0
 .../cpu => score/cpu/if}/exception-frame-print.yml |   0
 .../impl/cpu => score/cpu/if}/exception-frame.yml  |   0
 spec/{if/impl/cpu => score/cpu/if}/hardware-fp.yml |   0
 spec/score/cpu/if/header.yml                       |  12 +
 .../impl/cpu => score/cpu/if}/heap-alignment.yml   |   0
 .../impl/cpu => score/cpu/if}/interrupt-frame.yml  |   0
 .../cpu/if}/interrupt-stack-alignment.yml          |   0
 .../cpu/if}/isr-passes-frame-pointer.yml           |   0
 .../cpu => score/cpu/if}/maximum-processors.yml    |   0
 .../cpu => score/cpu/if}/modes-interrupt-mask.yml  |   0
 .../cpu/if}/simple-vectored-interrupts.yml         |   0
 .../cpu => score/cpu/if}/stack-minimum-size.yml    |   0
 spec/{if/impl/cpu => score/cpu/if}/uint32ptr.yml   |   0
 spec/score/heap/if/header.yml                      |  14 +
 .../heap => score/heap/if}/information-block.yml   |   0
 spec/score/if/assert-unreachable.yml               |  26 ++
 spec/score/if/dequalify-types-not-compatible.yml   |  34 ++
 .../implementation.yml => score/if/domain.yml}     |   0
 spec/score/if/maximum-priority.yml                 |  24 +
 spec/score/if/tod-to-seconds.yml                   |  28 ++
 spec/score/if/tod-validate.yml                     |  28 ++
 spec/{if/impl/interr => score/interr/if}/code.yml  |   0
 spec/score/interr/if/header.yml                    |  12 +
 .../{if/impl/interr => score/interr/if}/source.yml |   0
 .../impl/interr => score/interr/if}/terminate.yml  |   0
 .../impl/isr => score/isr/if}/handler-entry.yml    |   0
 spec/{if/impl/isr => score/isr/if}/handler.yml     |   0
 spec/score/isr/if/header-2.yml                     |  12 +
 spec/score/isr/if/header-3.yml                     |  12 +
 spec/score/isr/if/header.yml                       |  12 +
 .../impl/isr => score/isr/if}/is-in-progress.yml   |   0
 spec/{if/impl/isr => score/isr/if}/level.yml       |   0
 .../impl/isr => score/isr/if}/local-disable.yml    |   0
 .../{if/impl/isr => score/isr/if}/local-enable.yml |   0
 spec/{if/impl/isr => score/isr/if}/local-flash.yml |   0
 .../{if/impl/isr => score/isr/if}/lock-context.yml |   0
 .../{if/impl/isr => score/isr/if}/lock-control.yml |   0
 .../{if/impl/isr => score/isr/if}/lock-declare.yml |   0
 spec/{if/impl/isr => score/isr/if}/lock-define.yml |   0
 .../{if/impl/isr => score/isr/if}/lock-destroy.yml |   0
 .../impl/isr => score/isr/if}/lock-initialize.yml  |   0
 .../impl/isr => score/isr/if}/lock-initializer.yml |   0
 .../isr/if}/lock-isr-disable-acquire.yml           |   0
 .../impl/isr => score/isr/if}/lock-isr-disable.yml |   0
 spec/{if/impl/isr => score/isr/if}/lock-member.yml |   0
 .../impl/isr => score/isr/if}/lock-reference.yml   |   0
 .../isr/if}/lock-release-isr-enable.yml            |   0
 spec/{if/impl/isr => score/isr/if}/stack-size.yml  |   0
 .../impl/isr => score/isr/if}/vector-number.yml    |   0
 spec/score/memory/if/header.yml                    |  12 +
 .../memory => score/memory/if}/zero-before-use.yml |   0
 .../mpci => score/mpci/if}/configuration-type.yml  |   0
 .../impl/mpci => score/mpci/if}/configuration.yml  |   0
 spec/{if/impl/mpci => score/mpci/if}/control.yml   |   0
 spec/{if/impl/mpci => score/mpci/if}/entry.yml     |   0
 .../mpci => score/mpci/if}/get-packet-entry.yml    |   0
 spec/score/mpci/if/header-2.yml                    |  12 +
 spec/score/mpci/if/header.yml                      |  12 +
 .../mpci/if}/initialization-entry.yml              |   0
 .../impl/mpci => score/mpci/if}/packet-classes.yml |   0
 .../mpci/if}/packet-minimum-hetero-conversion.yml  |   0
 .../mpci => score/mpci/if}/packet-minimum-size.yml |   0
 .../impl/mpci => score/mpci/if}/packet-prefix.yml  |   0
 .../impl/mpci => score/mpci/if}/receive-entry.yml  |   0
 .../mpci => score/mpci/if}/return-packet-entry.yml |   0
 .../{if/impl/mpci => score/mpci/if}/send-entry.yml |   0
 .../impl/object => score/object/if}/apis-last.yml  |   0
 .../impl/object => score/object/if}/build-id.yml   |   0
 .../impl/object => score/object/if}/build-name.yml |   0
 .../impl/object => score/object/if}/get-api.yml    |   0
 .../impl/object => score/object/if}/get-class.yml  |   0
 .../impl/object => score/object/if}/get-index.yml  |   0
 .../impl/object => score/object/if}/get-node.yml   |   0
 spec/score/object/if/header.yml                    |  12 +
 .../object => score/object/if}/id-final-index.yml  |   0
 .../impl/object => score/object/if}/id-final.yml   |   0
 .../object/if}/id-initial-index.yml                |   0
 .../impl/object => score/object/if}/id-initial.yml |   0
 .../impl/object => score/object/if}/id-none.yml    |   0
 .../impl/object => score/object/if}/id-of-self.yml |   0
 spec/{if/impl/object => score/object/if}/id.yml    |   0
 .../object => score/object/if}/internal-api.yml    |   0
 .../object => score/object/if}/is-unlimited.yml    |   0
 .../impl/object => score/object/if}/local-node.yml |   0
 .../object/if}/maximum-per-allocation.yml          |   0
 .../object/if}/search-all-nodes.yml                |   0
 .../object/if}/search-local-nodes.yml              |   0
 .../object/if}/search-other-nodes.yml              |   0
 .../object/if}/unlimited-objects.yml               |   0
 .../impl/object => score/object/if}/who-am-i.yml   |   0
 .../smp => score/smp/if}/get-current-processor.yml |   0
 .../smp => score/smp/if}/get-processor-maximum.yml |   0
 spec/score/smp/if/header-2.yml                     |  12 +
 spec/score/smp/if/header.yml                       |  12 +
 .../{if/impl/smp => score/smp/if}/lock-acquire.yml |   0
 .../{if/impl/smp => score/smp/if}/lock-release.yml |   0
 .../smp/if}/processor-configured-maximum.yml       |   0
 .../stack/if}/allocator-allocate-type.yml          |   0
 .../stack/if}/allocator-allocate.yml               |   0
 .../stack/if}/allocator-avoids-workspace.yml       |   0
 .../stack/if}/allocator-free-type.yml              |   0
 .../stack => score/stack/if}/allocator-free.yml    |   0
 .../stack/if}/allocator-initialize-type.yml        |   0
 .../stack/if}/allocator-initialize.yml             |   0
 spec/score/stack/if/header.yml                     |  12 +
 .../impl/stack => score/stack/if}/minimum-size.yml |   0
 spec/score/thread/if/header.yml                    |  15 +
 .../impl/thread => score/thread/if}/idle-body.yml  |   0
 .../thread => score/thread/if}/idle-stack-size.yml |   0
 .../impl/userext => score/userext/if}/fatal.yml    |   0
 spec/score/userext/if/header.yml                   |  14 +
 .../userext => score/userext/if}/initial-count.yml |   0
 .../userext/if}/initial-extensions.yml             |   0
 .../impl/userext => score/userext/if}/table.yml    |   0
 .../userext => score/userext/if}/thread-begin.yml  |   0
 .../userext => score/userext/if}/thread-create.yml |   0
 .../userext => score/userext/if}/thread-delete.yml |   0
 .../userext/if}/thread-exitted.yml                 |   0
 .../userext/if}/thread-restart.yml                 |   0
 .../userext => score/userext/if}/thread-start.yml  |   0
 .../userext => score/userext/if}/thread-switch.yml |   0
 .../userext/if}/thread-terminate.yml               |   0
 spec/score/watchdog/if/header.yml                  |  15 +
 .../watchdog => score/watchdog/if}/interval.yml    |   0
 .../watchdog/if}/microseconds-per-tick.yml         |   0
 .../watchdog/if}/nanoseconds-per-tick.yml          |   0
 .../watchdog => score/watchdog/if}/no-timeout.yml  |   0
 .../watchdog/if}/ticks-per-second.yml              |   0
 .../watchdog/if}/ticks-per-timeslice.yml           |   0
 .../watchdog/if}/ticks-since-boot.yml              |   0
 spec/score/wkspace/if/header.yml                   |  14 +
 .../wkspace => score/wkspace/if}/is-unified.yml    |   0
 .../{if/impl/wkspace => score/wkspace/if}/size.yml |   0
 spec/{if/use => user/if}/asm.yml                   |   0
 spec/user/if/container.yml                         |   9 +
 spec/{if/domains/use.yml => user/if/domain.yml}    |   0
 spec/{if/use => user/if}/false.yml                 |   0
 spec/{if/use => user/if}/true.yml                  |   0
 1633 files changed, 16985 insertions(+), 16988 deletions(-)

diff --git a/config.yml b/config.yml
index fb13a72..debeac7 100644
--- a/config.yml
+++ b/config.yml
@@ -51,49 +51,49 @@ glossary:
 appl-config:
   doxygen-target: modules/rtems/cpukit/doxygen/appl-config.h
   groups:
-  - uid: /if/acfg/group-bdbuf
+  - uid: /acfg/if/group-bdbuf
     target: modules/rtems-docs/c-user/config/bdbuf.rst
-  - uid: /if/acfg/group-bsp
+  - uid: /acfg/if/group-bsp
     target: modules/rtems-docs/c-user/config/bsp-related.rst
-  - uid: /if/acfg/group-classic
+  - uid: /acfg/if/group-classic
     target: modules/rtems-docs/c-user/config/classic-api.rst
-  - uid: /if/acfg/group-classicinit
+  - uid: /acfg/if/group-classicinit
     target: modules/rtems-docs/c-user/config/classic-init-task.rst
-  - uid: /if/acfg/group-devdrv
+  - uid: /acfg/if/group-devdrv
     target: modules/rtems-docs/c-user/config/device-driver.rst
-  - uid: /if/acfg/group-eventrecord
+  - uid: /acfg/if/group-eventrecord
     target: modules/rtems-docs/c-user/config/event-record.rst
-  - uid: /if/acfg/group-filesystem
+  - uid: /acfg/if/group-filesystem
     target: modules/rtems-docs/c-user/config/filesystem.rst
-  - uid: /if/acfg/group-general
+  - uid: /acfg/if/group-general
     target: modules/rtems-docs/c-user/config/general.rst
-  - uid: /if/acfg/group-idle
+  - uid: /acfg/if/group-idle
     target: modules/rtems-docs/c-user/config/idle-task.rst
-  - uid: /if/acfg/group-mpci
+  - uid: /acfg/if/group-mpci
     target: modules/rtems-docs/c-user/config/mpci.rst
-  - uid: /if/acfg/group-posix
+  - uid: /acfg/if/group-posix
     target: modules/rtems-docs/c-user/config/posix-api.rst
-  - uid: /if/acfg/group-posixinit
+  - uid: /acfg/if/group-posixinit
     target: modules/rtems-docs/c-user/config/posix-init-thread.rst
-  - uid: /if/acfg/group-schedgeneral
+  - uid: /acfg/if/group-schedgeneral
     target: modules/rtems-docs/c-user/config/scheduler-general.rst
-  - uid: /if/acfg/group-stackalloc
+  - uid: /acfg/if/group-stackalloc
     target: modules/rtems-docs/c-user/config/task-stack-alloc.rst
 validation:
   base-directory: modules/rtems
 interface:
   item-level-interfaces:
-  - /if/build-options/container
-  - /if/compiler/container
-  - /if/use/container
+  - /build-options/if/container
+  - /compiler/if/container
+  - /user/if/container
   domains:
-    /if/domains/api: modules/rtems
+    /if/domain: modules/rtems
 interface-documentation:
 - directives-target: modules/rtems-docs/c-user/sem/directives.rst
-  group: /if/rtems/sem/group
+  group: /rtems/sem/if/group
   introduction-target: modules/rtems-docs/c-user/sem/introduction.rst
 - directives-target: modules/rtems-docs/c-user/event/directives.rst
-  group: /if/rtems/event/group
+  group: /rtems/event/if/group
   introduction-target: modules/rtems-docs/c-user/event/introduction.rst
 spec-verification:
   root-type: /spec/root
diff --git a/spec/acfg/if/appl-disable-filesystem.yml b/spec/acfg/if/appl-disable-filesystem.yml
new file mode 100644
index 0000000..f528b4d
--- /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/if/acfg/appl-does-not-need-clock-driver.yml b/spec/acfg/if/appl-does-not-need-clock-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-does-not-need-clock-driver.yml
rename to spec/acfg/if/appl-does-not-need-clock-driver.yml
diff --git a/spec/acfg/if/appl-extra-drivers.yml b/spec/acfg/if/appl-extra-drivers.yml
new file mode 100644
index 0000000..23e2d4c
--- /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/if/acfg/appl-needs-ata-driver.yml b/spec/acfg/if/appl-needs-ata-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-ata-driver.yml
rename to spec/acfg/if/appl-needs-ata-driver.yml
diff --git a/spec/if/acfg/appl-needs-clock-driver.yml b/spec/acfg/if/appl-needs-clock-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-clock-driver.yml
rename to spec/acfg/if/appl-needs-clock-driver.yml
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 0000000..3885389
--- /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/if/acfg/appl-needs-framebuffer-driver.yml b/spec/acfg/if/appl-needs-framebuffer-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-framebuffer-driver.yml
rename to spec/acfg/if/appl-needs-framebuffer-driver.yml
diff --git a/spec/if/acfg/appl-needs-ide-driver.yml b/spec/acfg/if/appl-needs-ide-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-ide-driver.yml
rename to spec/acfg/if/appl-needs-ide-driver.yml
diff --git a/spec/if/acfg/appl-needs-libblock.yml b/spec/acfg/if/appl-needs-libblock.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-libblock.yml
rename to spec/acfg/if/appl-needs-libblock.yml
diff --git a/spec/if/acfg/appl-needs-null-driver.yml b/spec/acfg/if/appl-needs-null-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-null-driver.yml
rename to spec/acfg/if/appl-needs-null-driver.yml
diff --git a/spec/if/acfg/appl-needs-rtc-driver.yml b/spec/acfg/if/appl-needs-rtc-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-rtc-driver.yml
rename to spec/acfg/if/appl-needs-rtc-driver.yml
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 0000000..2c991d6
--- /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 0000000..8f3f432
--- /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/if/acfg/appl-needs-stub-driver.yml b/spec/acfg/if/appl-needs-stub-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-stub-driver.yml
rename to spec/acfg/if/appl-needs-stub-driver.yml
diff --git a/spec/if/acfg/appl-needs-timer-driver.yml b/spec/acfg/if/appl-needs-timer-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-timer-driver.yml
rename to spec/acfg/if/appl-needs-timer-driver.yml
diff --git a/spec/if/acfg/appl-needs-watchdog-driver.yml b/spec/acfg/if/appl-needs-watchdog-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-watchdog-driver.yml
rename to spec/acfg/if/appl-needs-watchdog-driver.yml
diff --git a/spec/if/acfg/appl-needs-zero-driver.yml b/spec/acfg/if/appl-needs-zero-driver.yml
similarity index 100%
rename from spec/if/acfg/appl-needs-zero-driver.yml
rename to spec/acfg/if/appl-needs-zero-driver.yml
diff --git a/spec/acfg/if/appl-prerequisite-drivers.yml b/spec/acfg/if/appl-prerequisite-drivers.yml
new file mode 100644
index 0000000..13f98c9
--- /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/if/acfg/ata-driver-task-priority.yml b/spec/acfg/if/ata-driver-task-priority.yml
similarity index 100%
rename from spec/if/acfg/ata-driver-task-priority.yml
rename to spec/acfg/if/ata-driver-task-priority.yml
diff --git a/spec/if/acfg/bdbuf-buffer-max-size.yml b/spec/acfg/if/bdbuf-buffer-max-size.yml
similarity index 100%
rename from spec/if/acfg/bdbuf-buffer-max-size.yml
rename to spec/acfg/if/bdbuf-buffer-max-size.yml
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 0000000..767a58f
--- /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 0000000..9c9e52c
--- /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 0000000..32db192
--- /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 0000000..a85bcb1
--- /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/if/acfg/bdbuf-read-ahead-task-priority.yml b/spec/acfg/if/bdbuf-read-ahead-task-priority.yml
similarity index 100%
rename from spec/if/acfg/bdbuf-read-ahead-task-priority.yml
rename to spec/acfg/if/bdbuf-read-ahead-task-priority.yml
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 0000000..5a2d5eb
--- /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 0000000..1d67957
--- /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/if/acfg/bdbuf-swapout-task-priority.yml b/spec/acfg/if/bdbuf-swapout-task-priority.yml
similarity index 100%
rename from spec/if/acfg/bdbuf-swapout-task-priority.yml
rename to spec/acfg/if/bdbuf-swapout-task-priority.yml
diff --git a/spec/if/acfg/bdbuf-swapout-worker-taskp-riority.yml b/spec/acfg/if/bdbuf-swapout-worker-taskp-riority.yml
similarity index 100%
rename from spec/if/acfg/bdbuf-swapout-worker-taskp-riority.yml
rename to spec/acfg/if/bdbuf-swapout-worker-taskp-riority.yml
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 0000000..5d1a079
--- /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 0000000..7d9727f
--- /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/if/acfg/bsp-idle-task-body.yml b/spec/acfg/if/bsp-idle-task-body.yml
similarity index 100%
rename from spec/if/acfg/bsp-idle-task-body.yml
rename to spec/acfg/if/bsp-idle-task-body.yml
diff --git a/spec/if/acfg/bsp-idle-task-stack-size.yml b/spec/acfg/if/bsp-idle-task-stack-size.yml
similarity index 100%
rename from spec/if/acfg/bsp-idle-task-stack-size.yml
rename to spec/acfg/if/bsp-idle-task-stack-size.yml
diff --git a/spec/acfg/if/bsp-initial-extension.yml b/spec/acfg/if/bsp-initial-extension.yml
new file mode 100644
index 0000000..9fb2b3a
--- /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/if/acfg/bsp-interrupt-stack-size.yml b/spec/acfg/if/bsp-interrupt-stack-size.yml
similarity index 100%
rename from spec/if/acfg/bsp-interrupt-stack-size.yml
rename to spec/acfg/if/bsp-interrupt-stack-size.yml
diff --git a/spec/acfg/if/bsp-prerequisite-drivers.yml b/spec/acfg/if/bsp-prerequisite-drivers.yml
new file mode 100644
index 0000000..6e7eb97
--- /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 0000000..41eda10
--- /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/if/acfg/constraint-bspappmin.yml b/spec/acfg/if/constraint-bspappmin.yml
similarity index 100%
rename from spec/if/acfg/constraint-bspappmin.yml
rename to spec/acfg/if/constraint-bspappmin.yml
diff --git a/spec/acfg/if/constraint-idlestackarea.yml b/spec/acfg/if/constraint-idlestackarea.yml
new file mode 100644
index 0000000..93301fc
--- /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 0000000..0282dfc
--- /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 0000000..1282134
--- /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/if/acfg/constraint-memsz.yml b/spec/acfg/if/constraint-memsz.yml
similarity index 100%
rename from spec/if/acfg/constraint-memsz.yml
rename to spec/acfg/if/constraint-memsz.yml
diff --git a/spec/if/acfg/constraint-posix.yml b/spec/acfg/if/constraint-posix.yml
similarity index 100%
rename from spec/if/acfg/constraint-posix.yml
rename to spec/acfg/if/constraint-posix.yml
diff --git a/spec/if/acfg/constraint-prioclassic.yml b/spec/acfg/if/constraint-prioclassic.yml
similarity index 100%
rename from spec/if/acfg/constraint-prioclassic.yml
rename to spec/acfg/if/constraint-prioclassic.yml
diff --git a/spec/acfg/if/constraint-stackspace.yml b/spec/acfg/if/constraint-stackspace.yml
new file mode 100644
index 0000000..e1110ab
--- /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 0000000..c0ca1f4
--- /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 0000000..826721c
--- /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/if/acfg/dirty-memory.yml b/spec/acfg/if/dirty-memory.yml
similarity index 100%
rename from spec/if/acfg/dirty-memory.yml
rename to spec/acfg/if/dirty-memory.yml
diff --git a/spec/if/acfg/disable-bsp-settings.yml b/spec/acfg/if/disable-bsp-settings.yml
similarity index 100%
rename from spec/if/acfg/disable-bsp-settings.yml
rename to spec/acfg/if/disable-bsp-settings.yml
diff --git a/spec/acfg/if/disable-newlib-reentrancy.yml b/spec/acfg/if/disable-newlib-reentrancy.yml
new file mode 100644
index 0000000..530a1b7
--- /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 0000000..89f4f96
--- /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/if/acfg/extra-task-stacks.yml b/spec/acfg/if/extra-task-stacks.yml
similarity index 100%
rename from spec/if/acfg/extra-task-stacks.yml
rename to spec/acfg/if/extra-task-stacks.yml
diff --git a/spec/if/acfg/filesystem-all.yml b/spec/acfg/if/filesystem-all.yml
similarity index 100%
rename from spec/if/acfg/filesystem-all.yml
rename to spec/acfg/if/filesystem-all.yml
diff --git a/spec/if/acfg/filesystem-dosfs.yml b/spec/acfg/if/filesystem-dosfs.yml
similarity index 100%
rename from spec/if/acfg/filesystem-dosfs.yml
rename to spec/acfg/if/filesystem-dosfs.yml
diff --git a/spec/if/acfg/filesystem-ftpfs.yml b/spec/acfg/if/filesystem-ftpfs.yml
similarity index 100%
rename from spec/if/acfg/filesystem-ftpfs.yml
rename to spec/acfg/if/filesystem-ftpfs.yml
diff --git a/spec/if/acfg/filesystem-imfs.yml b/spec/acfg/if/filesystem-imfs.yml
similarity index 100%
rename from spec/if/acfg/filesystem-imfs.yml
rename to spec/acfg/if/filesystem-imfs.yml
diff --git a/spec/if/acfg/filesystem-jffs2.yml b/spec/acfg/if/filesystem-jffs2.yml
similarity index 100%
rename from spec/if/acfg/filesystem-jffs2.yml
rename to spec/acfg/if/filesystem-jffs2.yml
diff --git a/spec/if/acfg/filesystem-nfs.yml b/spec/acfg/if/filesystem-nfs.yml
similarity index 100%
rename from spec/if/acfg/filesystem-nfs.yml
rename to spec/acfg/if/filesystem-nfs.yml
diff --git a/spec/if/acfg/filesystem-rfs.yml b/spec/acfg/if/filesystem-rfs.yml
similarity index 100%
rename from spec/if/acfg/filesystem-rfs.yml
rename to spec/acfg/if/filesystem-rfs.yml
diff --git a/spec/if/acfg/filesystem-tftpfs.yml b/spec/acfg/if/filesystem-tftpfs.yml
similarity index 100%
rename from spec/if/acfg/filesystem-tftpfs.yml
rename to spec/acfg/if/filesystem-tftpfs.yml
diff --git a/spec/acfg/if/group-bdbuf.yml b/spec/acfg/if/group-bdbuf.yml
new file mode 100644
index 0000000..1824fa9
--- /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 0000000..239cec4
--- /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 0000000..8b33606
--- /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 0000000..f8786b5
--- /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 0000000..264d990
--- /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 0000000..5fe6e6e
--- /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 0000000..2349b0e
--- /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 0000000..ae7598f
--- /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 0000000..ef6bb5f
--- /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 0000000..5d2209d
--- /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 0000000..2d1fb9b
--- /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 0000000..b12fed6
--- /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 0000000..0658119
--- /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 0000000..394fb38
--- /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/if/acfg/idle-task-body.yml b/spec/acfg/if/idle-task-body.yml
similarity index 100%
rename from spec/if/acfg/idle-task-body.yml
rename to spec/acfg/if/idle-task-body.yml
diff --git a/spec/if/acfg/idle-task-init-appl.yml b/spec/acfg/if/idle-task-init-appl.yml
similarity index 100%
rename from spec/if/acfg/idle-task-init-appl.yml
rename to spec/acfg/if/idle-task-init-appl.yml
diff --git a/spec/if/acfg/idle-task-stack-size.yml b/spec/acfg/if/idle-task-stack-size.yml
similarity index 100%
rename from spec/if/acfg/idle-task-stack-size.yml
rename to spec/acfg/if/idle-task-stack-size.yml
diff --git a/spec/acfg/if/imfs-disable-chmod.yml b/spec/acfg/if/imfs-disable-chmod.yml
new file mode 100644
index 0000000..15de46c
--- /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 0000000..bdfaf01
--- /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 0000000..1b2e2ee
--- /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/if/acfg/imfs-disable-mknod-device.yml b/spec/acfg/if/imfs-disable-mknod-device.yml
similarity index 100%
rename from spec/if/acfg/imfs-disable-mknod-device.yml
rename to spec/acfg/if/imfs-disable-mknod-device.yml
diff --git a/spec/if/acfg/imfs-disable-mknod-file.yml b/spec/acfg/if/imfs-disable-mknod-file.yml
similarity index 100%
rename from spec/if/acfg/imfs-disable-mknod-file.yml
rename to spec/acfg/if/imfs-disable-mknod-file.yml
diff --git a/spec/acfg/if/imfs-disable-mknod.yml b/spec/acfg/if/imfs-disable-mknod.yml
new file mode 100644
index 0000000..24eb527
--- /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 0000000..319fbf3
--- /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 0000000..a8262cf
--- /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 0000000..85a2383
--- /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 0000000..0a84a35
--- /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 0000000..310ef3a
--- /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 0000000..c62c230
--- /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 0000000..e4518e3
--- /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 0000000..adb6268
--- /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 0000000..366f438
--- /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/if/acfg/imfs-memfile-bytes-per-block.yml b/spec/acfg/if/imfs-memfile-bytes-per-block.yml
similarity index 100%
rename from spec/if/acfg/imfs-memfile-bytes-per-block.yml
rename to spec/acfg/if/imfs-memfile-bytes-per-block.yml
diff --git a/spec/acfg/if/init-task-arguments.yml b/spec/acfg/if/init-task-arguments.yml
new file mode 100644
index 0000000..07fea7e
--- /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 0000000..606c221
--- /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/if/acfg/init-task-entrypoint.yml b/spec/acfg/if/init-task-entrypoint.yml
similarity index 100%
rename from spec/if/acfg/init-task-entrypoint.yml
rename to spec/acfg/if/init-task-entrypoint.yml
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 0000000..407a181
--- /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 0000000..81056b0
--- /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/if/acfg/init-task-priority.yml b/spec/acfg/if/init-task-priority.yml
similarity index 100%
rename from spec/if/acfg/init-task-priority.yml
rename to spec/acfg/if/init-task-priority.yml
diff --git a/spec/if/acfg/init-task-stack-size.yml b/spec/acfg/if/init-task-stack-size.yml
similarity index 100%
rename from spec/if/acfg/init-task-stack-size.yml
rename to spec/acfg/if/init-task-stack-size.yml
diff --git a/spec/acfg/if/initial-extensions.yml b/spec/acfg/if/initial-extensions.yml
new file mode 100644
index 0000000..76af433
--- /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 0000000..75209b5
--- /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 0000000..3123586
--- /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 0000000..704bc04
--- /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/if/acfg/max-barriers.yml b/spec/acfg/if/max-barriers.yml
similarity index 100%
rename from spec/if/acfg/max-barriers.yml
rename to spec/acfg/if/max-barriers.yml
diff --git a/spec/acfg/if/max-drivers.yml b/spec/acfg/if/max-drivers.yml
new file mode 100644
index 0000000..244419c
--- /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 0000000..ceb6260
--- /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/if/acfg/max-message-queues.yml b/spec/acfg/if/max-message-queues.yml
similarity index 100%
rename from spec/if/acfg/max-message-queues.yml
rename to spec/acfg/if/max-message-queues.yml
diff --git a/spec/if/acfg/max-partitions.yml b/spec/acfg/if/max-partitions.yml
similarity index 100%
rename from spec/if/acfg/max-partitions.yml
rename to spec/acfg/if/max-partitions.yml
diff --git a/spec/if/acfg/max-periods.yml b/spec/acfg/if/max-periods.yml
similarity index 100%
rename from spec/if/acfg/max-periods.yml
rename to spec/acfg/if/max-periods.yml
diff --git a/spec/if/acfg/max-ports.yml b/spec/acfg/if/max-ports.yml
similarity index 100%
rename from spec/if/acfg/max-ports.yml
rename to spec/acfg/if/max-ports.yml
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 0000000..73d967c
--- /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/if/acfg/max-posix-keys.yml b/spec/acfg/if/max-posix-keys.yml
similarity index 100%
rename from spec/if/acfg/max-posix-keys.yml
rename to spec/acfg/if/max-posix-keys.yml
diff --git a/spec/if/acfg/max-posix-message-queues.yml b/spec/acfg/if/max-posix-message-queues.yml
similarity index 100%
rename from spec/if/acfg/max-posix-message-queues.yml
rename to spec/acfg/if/max-posix-message-queues.yml
diff --git a/spec/if/acfg/max-posix-queued-signals.yml b/spec/acfg/if/max-posix-queued-signals.yml
similarity index 100%
rename from spec/if/acfg/max-posix-queued-signals.yml
rename to spec/acfg/if/max-posix-queued-signals.yml
diff --git a/spec/acfg/if/max-posix-semaphores.yml b/spec/acfg/if/max-posix-semaphores.yml
new file mode 100644
index 0000000..af37f8f
--- /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/if/acfg/max-posix-shms.yml b/spec/acfg/if/max-posix-shms.yml
similarity index 100%
rename from spec/if/acfg/max-posix-shms.yml
rename to spec/acfg/if/max-posix-shms.yml
diff --git a/spec/if/acfg/max-posix-threads.yml b/spec/acfg/if/max-posix-threads.yml
similarity index 100%
rename from spec/if/acfg/max-posix-threads.yml
rename to spec/acfg/if/max-posix-threads.yml
diff --git a/spec/if/acfg/max-posix-timers.yml b/spec/acfg/if/max-posix-timers.yml
similarity index 100%
rename from spec/if/acfg/max-posix-timers.yml
rename to spec/acfg/if/max-posix-timers.yml
diff --git a/spec/if/acfg/max-priority.yml b/spec/acfg/if/max-priority.yml
similarity index 100%
rename from spec/if/acfg/max-priority.yml
rename to spec/acfg/if/max-priority.yml
diff --git a/spec/acfg/if/max-processors.yml b/spec/acfg/if/max-processors.yml
new file mode 100644
index 0000000..ff4d5d4
--- /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/if/acfg/max-regions.yml b/spec/acfg/if/max-regions.yml
similarity index 100%
rename from spec/if/acfg/max-regions.yml
rename to spec/acfg/if/max-regions.yml
diff --git a/spec/if/acfg/max-semaphores.yml b/spec/acfg/if/max-semaphores.yml
similarity index 100%
rename from spec/if/acfg/max-semaphores.yml
rename to spec/acfg/if/max-semaphores.yml
diff --git a/spec/if/acfg/max-tasks.yml b/spec/acfg/if/max-tasks.yml
similarity index 100%
rename from spec/if/acfg/max-tasks.yml
rename to spec/acfg/if/max-tasks.yml
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 0000000..dfb979b
--- /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 0000000..6ce4ac2
--- /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/if/acfg/max-timers.yml b/spec/acfg/if/max-timers.yml
similarity index 100%
rename from spec/if/acfg/max-timers.yml
rename to spec/acfg/if/max-timers.yml
diff --git a/spec/if/acfg/max-user-extensions.yml b/spec/acfg/if/max-user-extensions.yml
similarity index 100%
rename from spec/if/acfg/max-user-extensions.yml
rename to spec/acfg/if/max-user-extensions.yml
diff --git a/spec/if/acfg/memory-overhead.yml b/spec/acfg/if/memory-overhead.yml
similarity index 100%
rename from spec/if/acfg/memory-overhead.yml
rename to spec/acfg/if/memory-overhead.yml
diff --git a/spec/if/acfg/message-buffer-memory.yml b/spec/acfg/if/message-buffer-memory.yml
similarity index 100%
rename from spec/if/acfg/message-buffer-memory.yml
rename to spec/acfg/if/message-buffer-memory.yml
diff --git a/spec/if/acfg/microseconds-per-tick.yml b/spec/acfg/if/microseconds-per-tick.yml
similarity index 100%
rename from spec/if/acfg/microseconds-per-tick.yml
rename to spec/acfg/if/microseconds-per-tick.yml
diff --git a/spec/if/acfg/min-posix-thread-stack-size.yml b/spec/acfg/if/min-posix-thread-stack-size.yml
similarity index 100%
rename from spec/if/acfg/min-posix-thread-stack-size.yml
rename to spec/acfg/if/min-posix-thread-stack-size.yml
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 0000000..2bce8e4
--- /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 0000000..84d39f1
--- /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/if/acfg/mp-appl.yml b/spec/acfg/if/mp-appl.yml
similarity index 100%
rename from spec/if/acfg/mp-appl.yml
rename to spec/acfg/if/mp-appl.yml
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 0000000..6f515fb
--- /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 0000000..faa1bad
--- /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 0000000..077c5b1
--- /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 0000000..71f63ba
--- /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 0000000..2cbfafd
--- /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 0000000..fd68310
--- /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/if/acfg/posix-init-thread-entry-point.yml b/spec/acfg/if/posix-init-thread-entry-point.yml
similarity index 100%
rename from spec/if/acfg/posix-init-thread-entry-point.yml
rename to spec/acfg/if/posix-init-thread-entry-point.yml
diff --git a/spec/if/acfg/posix-init-thread-stack-size.yml b/spec/acfg/if/posix-init-thread-stack-size.yml
similarity index 100%
rename from spec/if/acfg/posix-init-thread-stack-size.yml
rename to spec/acfg/if/posix-init-thread-stack-size.yml
diff --git a/spec/if/acfg/posix-init-thread-table.yml b/spec/acfg/if/posix-init-thread-table.yml
similarity index 100%
rename from spec/if/acfg/posix-init-thread-table.yml
rename to spec/acfg/if/posix-init-thread-table.yml
diff --git a/spec/if/acfg/record-extensions-enabled.yml b/spec/acfg/if/record-extensions-enabled.yml
similarity index 100%
rename from spec/if/acfg/record-extensions-enabled.yml
rename to spec/acfg/if/record-extensions-enabled.yml
diff --git a/spec/if/acfg/record-fatal-dump-base64-zlib.yml b/spec/acfg/if/record-fatal-dump-base64-zlib.yml
similarity index 100%
rename from spec/if/acfg/record-fatal-dump-base64-zlib.yml
rename to spec/acfg/if/record-fatal-dump-base64-zlib.yml
diff --git a/spec/if/acfg/record-fatal-dump-base64.yml b/spec/acfg/if/record-fatal-dump-base64.yml
similarity index 100%
rename from spec/if/acfg/record-fatal-dump-base64.yml
rename to spec/acfg/if/record-fatal-dump-base64.yml
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 0000000..4f655e7
--- /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/if/acfg/rtems-init-tasks-table.yml b/spec/acfg/if/rtems-init-tasks-table.yml
similarity index 100%
rename from spec/if/acfg/rtems-init-tasks-table.yml
rename to spec/acfg/if/rtems-init-tasks-table.yml
diff --git a/spec/if/acfg/scheduler-assignments.yml b/spec/acfg/if/scheduler-assignments.yml
similarity index 100%
rename from spec/if/acfg/scheduler-assignments.yml
rename to spec/acfg/if/scheduler-assignments.yml
diff --git a/spec/if/acfg/scheduler-cbs.yml b/spec/acfg/if/scheduler-cbs.yml
similarity index 100%
rename from spec/if/acfg/scheduler-cbs.yml
rename to spec/acfg/if/scheduler-cbs.yml
diff --git a/spec/if/acfg/scheduler-edf-smp.yml b/spec/acfg/if/scheduler-edf-smp.yml
similarity index 100%
rename from spec/if/acfg/scheduler-edf-smp.yml
rename to spec/acfg/if/scheduler-edf-smp.yml
diff --git a/spec/if/acfg/scheduler-edf.yml b/spec/acfg/if/scheduler-edf.yml
similarity index 100%
rename from spec/if/acfg/scheduler-edf.yml
rename to spec/acfg/if/scheduler-edf.yml
diff --git a/spec/acfg/if/scheduler-name.yml b/spec/acfg/if/scheduler-name.yml
new file mode 100644
index 0000000..2249386
--- /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/if/acfg/scheduler-priority-affinity-smp.yml b/spec/acfg/if/scheduler-priority-affinity-smp.yml
similarity index 100%
rename from spec/if/acfg/scheduler-priority-affinity-smp.yml
rename to spec/acfg/if/scheduler-priority-affinity-smp.yml
diff --git a/spec/if/acfg/scheduler-priority-smp.yml b/spec/acfg/if/scheduler-priority-smp.yml
similarity index 100%
rename from spec/if/acfg/scheduler-priority-smp.yml
rename to spec/acfg/if/scheduler-priority-smp.yml
diff --git a/spec/if/acfg/scheduler-priority.yml b/spec/acfg/if/scheduler-priority.yml
similarity index 100%
rename from spec/if/acfg/scheduler-priority.yml
rename to spec/acfg/if/scheduler-priority.yml
diff --git a/spec/if/acfg/scheduler-simple-smp.yml b/spec/acfg/if/scheduler-simple-smp.yml
similarity index 100%
rename from spec/if/acfg/scheduler-simple-smp.yml
rename to spec/acfg/if/scheduler-simple-smp.yml
diff --git a/spec/if/acfg/scheduler-simple.yml b/spec/acfg/if/scheduler-simple.yml
similarity index 100%
rename from spec/if/acfg/scheduler-simple.yml
rename to spec/acfg/if/scheduler-simple.yml
diff --git a/spec/if/acfg/scheduler-strong-apa.yml b/spec/acfg/if/scheduler-strong-apa.yml
similarity index 100%
rename from spec/if/acfg/scheduler-strong-apa.yml
rename to spec/acfg/if/scheduler-strong-apa.yml
diff --git a/spec/if/acfg/scheduler-user.yml b/spec/acfg/if/scheduler-user.yml
similarity index 100%
rename from spec/if/acfg/scheduler-user.yml
rename to spec/acfg/if/scheduler-user.yml
diff --git a/spec/if/acfg/stack-checker-enabled.yml b/spec/acfg/if/stack-checker-enabled.yml
similarity index 100%
rename from spec/if/acfg/stack-checker-enabled.yml
rename to spec/acfg/if/stack-checker-enabled.yml
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 0000000..27d86c0
--- /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/if/acfg/task-stack-allocator.yml b/spec/acfg/if/task-stack-allocator.yml
similarity index 100%
rename from spec/if/acfg/task-stack-allocator.yml
rename to spec/acfg/if/task-stack-allocator.yml
diff --git a/spec/if/acfg/task-stack-deallocator.yml b/spec/acfg/if/task-stack-deallocator.yml
similarity index 100%
rename from spec/if/acfg/task-stack-deallocator.yml
rename to spec/acfg/if/task-stack-deallocator.yml
diff --git a/spec/if/acfg/task-stack-from-alloc.yml b/spec/acfg/if/task-stack-from-alloc.yml
similarity index 100%
rename from spec/if/acfg/task-stack-from-alloc.yml
rename to spec/acfg/if/task-stack-from-alloc.yml
diff --git a/spec/if/acfg/task-stack-no-workspace.yml b/spec/acfg/if/task-stack-no-workspace.yml
similarity index 100%
rename from spec/if/acfg/task-stack-no-workspace.yml
rename to spec/acfg/if/task-stack-no-workspace.yml
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 0000000..81f6483
--- /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/if/acfg/unified-work-areas.yml b/spec/acfg/if/unified-work-areas.yml
similarity index 100%
rename from spec/if/acfg/unified-work-areas.yml
rename to spec/acfg/if/unified-work-areas.yml
diff --git a/spec/acfg/if/unlimited-allocation-size.yml b/spec/acfg/if/unlimited-allocation-size.yml
new file mode 100644
index 0000000..f206c5b
--- /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/if/acfg/unlimited-objects.yml b/spec/acfg/if/unlimited-objects.yml
similarity index 100%
rename from spec/if/acfg/unlimited-objects.yml
rename to spec/acfg/if/unlimited-objects.yml
diff --git a/spec/if/acfg/use-devfs-as-base-filesystem.yml b/spec/acfg/if/use-devfs-as-base-filesystem.yml
similarity index 100%
rename from spec/if/acfg/use-devfs-as-base-filesystem.yml
rename to spec/acfg/if/use-devfs-as-base-filesystem.yml
diff --git a/spec/if/acfg/use-miniimfs-as-base-filesystem.yml b/spec/acfg/if/use-miniimfs-as-base-filesystem.yml
similarity index 100%
rename from spec/if/acfg/use-miniimfs-as-base-filesystem.yml
rename to spec/acfg/if/use-miniimfs-as-base-filesystem.yml
diff --git a/spec/acfg/if/verbose-system-init.yml b/spec/acfg/if/verbose-system-init.yml
new file mode 100644
index 0000000..6b35583
--- /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/if/acfg/zero-workspace-automatically.yml b/spec/acfg/if/zero-workspace-automatically.yml
similarity index 100%
rename from spec/if/acfg/zero-workspace-automatically.yml
rename to spec/acfg/if/zero-workspace-automatically.yml
diff --git a/spec/if/build-options/ada.yml b/spec/build-options/if/ada.yml
similarity index 100%
rename from spec/if/build-options/ada.yml
rename to spec/build-options/if/ada.yml
diff --git a/spec/build-options/if/container.yml b/spec/build-options/if/container.yml
new file mode 100644
index 0000000..a5d0e96
--- /dev/null
+++ b/spec/build-options/if/container.yml
@@ -0,0 +1,9 @@
+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
+interface-type: container
+links:
+- role: interface-placement
+  uid: domain
+type: interface
diff --git a/spec/build-options/if/cpuopts.yml b/spec/build-options/if/cpuopts.yml
new file mode 100644
index 0000000..0f5fe99
--- /dev/null
+++ b/spec/build-options/if/cpuopts.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces provided by the CPU build options.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: rtems/score/cpuopts.h
+prefix: ''
+type: interface
diff --git a/spec/if/build-options/debug.yml b/spec/build-options/if/debug.yml
similarity index 100%
rename from spec/if/build-options/debug.yml
rename to spec/build-options/if/debug.yml
diff --git a/spec/if/domains/build-options.yml b/spec/build-options/if/domain.yml
similarity index 100%
rename from spec/if/domains/build-options.yml
rename to spec/build-options/if/domain.yml
diff --git a/spec/if/build-options/drvmgr.yml b/spec/build-options/if/drvmgr.yml
similarity index 100%
rename from spec/if/build-options/drvmgr.yml
rename to spec/build-options/if/drvmgr.yml
diff --git a/spec/if/build-options/multiprocessing.yml b/spec/build-options/if/multiprocessing.yml
similarity index 100%
rename from spec/if/build-options/multiprocessing.yml
rename to spec/build-options/if/multiprocessing.yml
diff --git a/spec/if/build-options/networking.yml b/spec/build-options/if/networking.yml
similarity index 100%
rename from spec/if/build-options/networking.yml
rename to spec/build-options/if/networking.yml
diff --git a/spec/if/build-options/paravirt.yml b/spec/build-options/if/paravirt.yml
similarity index 100%
rename from spec/if/build-options/paravirt.yml
rename to spec/build-options/if/paravirt.yml
diff --git a/spec/if/build-options/posix.yml b/spec/build-options/if/posix.yml
similarity index 100%
rename from spec/if/build-options/posix.yml
rename to spec/build-options/if/posix.yml
diff --git a/spec/if/build-options/profiling.yml b/spec/build-options/if/profiling.yml
similarity index 100%
rename from spec/if/build-options/profiling.yml
rename to spec/build-options/if/profiling.yml
diff --git a/spec/if/build-options/smp.yml b/spec/build-options/if/smp.yml
similarity index 100%
rename from spec/if/build-options/smp.yml
rename to spec/build-options/if/smp.yml
diff --git a/spec/if/c/bool.yml b/spec/c/if/bool.yml
similarity index 100%
rename from spec/if/c/bool.yml
rename to spec/c/if/bool.yml
diff --git a/spec/if/c/chmod.yml b/spec/c/if/chmod.yml
similarity index 100%
rename from spec/if/c/chmod.yml
rename to spec/c/if/chmod.yml
diff --git a/spec/if/c/chown.yml b/spec/c/if/chown.yml
similarity index 100%
rename from spec/if/c/chown.yml
rename to spec/c/if/chown.yml
diff --git a/spec/if/c/cpu_set_t.yml b/spec/c/if/cpu_set_t.yml
similarity index 100%
rename from spec/if/c/cpu_set_t.yml
rename to spec/c/if/cpu_set_t.yml
diff --git a/spec/if/domains/c.yml b/spec/c/if/domain.yml
similarity index 100%
rename from spec/if/domains/c.yml
rename to spec/c/if/domain.yml
diff --git a/spec/c/if/errno-header.yml b/spec/c/if/errno-header.yml
new file mode 100644
index 0000000..f823813
--- /dev/null
+++ b/spec/c/if/errno-header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: errno.h
+prefix: ''
+type: interface
diff --git a/spec/if/c/errno.yml b/spec/c/if/errno.yml
similarity index 100%
rename from spec/if/c/errno.yml
rename to spec/c/if/errno.yml
diff --git a/spec/if/c/false.yml b/spec/c/if/false.yml
similarity index 100%
rename from spec/if/c/false.yml
rename to spec/c/if/false.yml
diff --git a/spec/if/c/free.yml b/spec/c/if/free.yml
similarity index 100%
rename from spec/if/c/free.yml
rename to spec/c/if/free.yml
diff --git a/spec/if/c/int16_t.yml b/spec/c/if/int16_t.yml
similarity index 100%
rename from spec/if/c/int16_t.yml
rename to spec/c/if/int16_t.yml
diff --git a/spec/if/c/int32_t.yml b/spec/c/if/int32_t.yml
similarity index 100%
rename from spec/if/c/int32_t.yml
rename to spec/c/if/int32_t.yml
diff --git a/spec/if/c/int64_t.yml b/spec/c/if/int64_t.yml
similarity index 100%
rename from spec/if/c/int64_t.yml
rename to spec/c/if/int64_t.yml
diff --git a/spec/if/c/int8_t.yml b/spec/c/if/int8_t.yml
similarity index 100%
rename from spec/if/c/int8_t.yml
rename to spec/c/if/int8_t.yml
diff --git a/spec/if/c/intmax_t.yml b/spec/c/if/intmax_t.yml
similarity index 100%
rename from spec/if/c/intmax_t.yml
rename to spec/c/if/intmax_t.yml
diff --git a/spec/if/c/intptr_t.yml b/spec/c/if/intptr_t.yml
similarity index 100%
rename from spec/if/c/intptr_t.yml
rename to spec/c/if/intptr_t.yml
diff --git a/spec/if/c/link.yml b/spec/c/if/link.yml
similarity index 100%
rename from spec/if/c/link.yml
rename to spec/c/if/link.yml
diff --git a/spec/if/c/malloc.yml b/spec/c/if/malloc.yml
similarity index 100%
rename from spec/if/c/malloc.yml
rename to spec/c/if/malloc.yml
diff --git a/spec/if/c/mkfifo.yml b/spec/c/if/mkfifo.yml
similarity index 100%
rename from spec/if/c/mkfifo.yml
rename to spec/c/if/mkfifo.yml
diff --git a/spec/if/c/mknod.yml b/spec/c/if/mknod.yml
similarity index 100%
rename from spec/if/c/mknod.yml
rename to spec/c/if/mknod.yml
diff --git a/spec/if/c/null.yml b/spec/c/if/null.yml
similarity index 100%
rename from spec/if/c/null.yml
rename to spec/c/if/null.yml
diff --git a/spec/if/c/offsetof.yml b/spec/c/if/offsetof.yml
similarity index 100%
rename from spec/if/c/offsetof.yml
rename to spec/c/if/offsetof.yml
diff --git a/spec/if/c/printf.yml b/spec/c/if/printf.yml
similarity index 100%
rename from spec/if/c/printf.yml
rename to spec/c/if/printf.yml
diff --git a/spec/c/if/pthread.yml b/spec/c/if/pthread.yml
new file mode 100644
index 0000000..241cf4e
--- /dev/null
+++ b/spec/c/if/pthread.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: pthread.h
+prefix: ''
+type: interface
diff --git a/spec/if/c/pthread_setspecific.yml b/spec/c/if/pthread_setspecific.yml
similarity index 100%
rename from spec/if/c/pthread_setspecific.yml
rename to spec/c/if/pthread_setspecific.yml
diff --git a/spec/if/c/readdir.yml b/spec/c/if/readdir.yml
similarity index 100%
rename from spec/if/c/readdir.yml
rename to spec/c/if/readdir.yml
diff --git a/spec/if/c/readlink.yml b/spec/c/if/readlink.yml
similarity index 100%
rename from spec/if/c/readlink.yml
rename to spec/c/if/readlink.yml
diff --git a/spec/if/c/rename.yml b/spec/c/if/rename.yml
similarity index 100%
rename from spec/if/c/rename.yml
rename to spec/c/if/rename.yml
diff --git a/spec/if/c/rmnod.yml b/spec/c/if/rmnod.yml
similarity index 100%
rename from spec/if/c/rmnod.yml
rename to spec/c/if/rmnod.yml
diff --git a/spec/if/c/sbrk.yml b/spec/c/if/sbrk.yml
similarity index 100%
rename from spec/if/c/sbrk.yml
rename to spec/c/if/sbrk.yml
diff --git a/spec/if/c/sem_init.yml b/spec/c/if/sem_init.yml
similarity index 100%
rename from spec/if/c/sem_init.yml
rename to spec/c/if/sem_init.yml
diff --git a/spec/if/c/sem_open.yml b/spec/c/if/sem_open.yml
similarity index 100%
rename from spec/if/c/sem_open.yml
rename to spec/c/if/sem_open.yml
diff --git a/spec/c/if/semaphore.yml b/spec/c/if/semaphore.yml
new file mode 100644
index 0000000..655bf9e
--- /dev/null
+++ b/spec/c/if/semaphore.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: semaphore.h
+prefix: ''
+type: interface
diff --git a/spec/if/c/size_max.yml b/spec/c/if/size_max.yml
similarity index 100%
rename from spec/if/c/size_max.yml
rename to spec/c/if/size_max.yml
diff --git a/spec/if/c/size_t.yml b/spec/c/if/size_t.yml
similarity index 100%
rename from spec/if/c/size_t.yml
rename to spec/c/if/size_t.yml
diff --git a/spec/c/if/stdatomic.yml b/spec/c/if/stdatomic.yml
new file mode 100644
index 0000000..83f4932
--- /dev/null
+++ b/spec/c/if/stdatomic.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: stdatomic.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/stdbool.yml b/spec/c/if/stdbool.yml
new file mode 100644
index 0000000..3feede8
--- /dev/null
+++ b/spec/c/if/stdbool.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: stdbool.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/stddef.yml b/spec/c/if/stddef.yml
new file mode 100644
index 0000000..69b56cf
--- /dev/null
+++ b/spec/c/if/stddef.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: stddef.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/stdint.yml b/spec/c/if/stdint.yml
new file mode 100644
index 0000000..e7fd0e1
--- /dev/null
+++ b/spec/c/if/stdint.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: stdint.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/stdio.yml b/spec/c/if/stdio.yml
new file mode 100644
index 0000000..ec177f4
--- /dev/null
+++ b/spec/c/if/stdio.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: stdio.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/stdlib.yml b/spec/c/if/stdlib.yml
new file mode 100644
index 0000000..f0f5a46
--- /dev/null
+++ b/spec/c/if/stdlib.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: stdlib.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/string.yml b/spec/c/if/string.yml
new file mode 100644
index 0000000..3e362ce
--- /dev/null
+++ b/spec/c/if/string.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: string.h
+prefix: ''
+type: interface
diff --git a/spec/if/c/symlink.yml b/spec/c/if/symlink.yml
similarity index 100%
rename from spec/if/c/symlink.yml
rename to spec/c/if/symlink.yml
diff --git a/spec/c/if/sys-cpuset.yml b/spec/c/if/sys-cpuset.yml
new file mode 100644
index 0000000..9e29f7d
--- /dev/null
+++ b/spec/c/if/sys-cpuset.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is FreeBSD defined header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: sys/cpuset.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/sys-impl-timespec.yml b/spec/c/if/sys-impl-timespec.yml
new file mode 100644
index 0000000..8d17d4f
--- /dev/null
+++ b/spec/c/if/sys-impl-timespec.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file provides POSIX time related definitions.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: sys/_timespec.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/sys-impl-timeval.yml b/spec/c/if/sys-impl-timeval.yml
new file mode 100644
index 0000000..ba74899
--- /dev/null
+++ b/spec/c/if/sys-impl-timeval.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file provides POSIX time related definitions.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: sys/_timeval.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/sys-stat.yml b/spec/c/if/sys-stat.yml
new file mode 100644
index 0000000..f158441
--- /dev/null
+++ b/spec/c/if/sys-stat.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is POSIX header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: sys/stat.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/sys-types.yml b/spec/c/if/sys-types.yml
new file mode 100644
index 0000000..83e969d
--- /dev/null
+++ b/spec/c/if/sys-types.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is POSIX header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: sys/types.h
+prefix: ''
+type: interface
diff --git a/spec/c/if/time.yml b/spec/c/if/time.yml
new file mode 100644
index 0000000..9ea2d61
--- /dev/null
+++ b/spec/c/if/time.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: time.h
+prefix: ''
+type: interface
diff --git a/spec/if/c/time_t.yml b/spec/c/if/time_t.yml
similarity index 100%
rename from spec/if/c/time_t.yml
rename to spec/c/if/time_t.yml
diff --git a/spec/if/c/timespec.yml b/spec/c/if/timespec.yml
similarity index 100%
rename from spec/if/c/timespec.yml
rename to spec/c/if/timespec.yml
diff --git a/spec/if/c/timeval.yml b/spec/c/if/timeval.yml
similarity index 100%
rename from spec/if/c/timeval.yml
rename to spec/c/if/timeval.yml
diff --git a/spec/if/c/true.yml b/spec/c/if/true.yml
similarity index 100%
rename from spec/if/c/true.yml
rename to spec/c/if/true.yml
diff --git a/spec/if/c/uint16_t.yml b/spec/c/if/uint16_t.yml
similarity index 100%
rename from spec/if/c/uint16_t.yml
rename to spec/c/if/uint16_t.yml
diff --git a/spec/if/c/uint32_max.yml b/spec/c/if/uint32_max.yml
similarity index 100%
rename from spec/if/c/uint32_max.yml
rename to spec/c/if/uint32_max.yml
diff --git a/spec/if/c/uint32_t.yml b/spec/c/if/uint32_t.yml
similarity index 100%
rename from spec/if/c/uint32_t.yml
rename to spec/c/if/uint32_t.yml
diff --git a/spec/if/c/uint64_t.yml b/spec/c/if/uint64_t.yml
similarity index 100%
rename from spec/if/c/uint64_t.yml
rename to spec/c/if/uint64_t.yml
diff --git a/spec/if/c/uint8_t.yml b/spec/c/if/uint8_t.yml
similarity index 100%
rename from spec/if/c/uint8_t.yml
rename to spec/c/if/uint8_t.yml
diff --git a/spec/if/c/uintmax_t.yml b/spec/c/if/uintmax_t.yml
similarity index 100%
rename from spec/if/c/uintmax_t.yml
rename to spec/c/if/uintmax_t.yml
diff --git a/spec/if/c/uintptr_max.yml b/spec/c/if/uintptr_max.yml
similarity index 100%
rename from spec/if/c/uintptr_max.yml
rename to spec/c/if/uintptr_max.yml
diff --git a/spec/if/c/uintptr_t.yml b/spec/c/if/uintptr_t.yml
similarity index 100%
rename from spec/if/c/uintptr_t.yml
rename to spec/c/if/uintptr_t.yml
diff --git a/spec/c/if/unistd.yml b/spec/c/if/unistd.yml
new file mode 100644
index 0000000..5e49e89
--- /dev/null
+++ b/spec/c/if/unistd.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This is a standard C library header file.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: domain
+path: unistd.h
+prefix: ''
+type: interface
diff --git a/spec/if/c/utime.yml b/spec/c/if/utime.yml
similarity index 100%
rename from spec/if/c/utime.yml
rename to spec/c/if/utime.yml
diff --git a/spec/if/compiler/asm.yml b/spec/compiler/if/asm.yml
similarity index 100%
rename from spec/if/compiler/asm.yml
rename to spec/compiler/if/asm.yml
diff --git a/spec/if/compiler/builtin-choose-expr.yml b/spec/compiler/if/builtin-choose-expr.yml
similarity index 100%
rename from spec/if/compiler/builtin-choose-expr.yml
rename to spec/compiler/if/builtin-choose-expr.yml
diff --git a/spec/if/compiler/builtin-expect.yml b/spec/compiler/if/builtin-expect.yml
similarity index 100%
rename from spec/if/compiler/builtin-expect.yml
rename to spec/compiler/if/builtin-expect.yml
diff --git a/spec/if/compiler/builtin-return-address.yml b/spec/compiler/if/builtin-return-address.yml
similarity index 100%
rename from spec/if/compiler/builtin-return-address.yml
rename to spec/compiler/if/builtin-return-address.yml
diff --git a/spec/if/compiler/builtin-types-compatible-p.yml b/spec/compiler/if/builtin-types-compatible-p.yml
similarity index 100%
rename from spec/if/compiler/builtin-types-compatible-p.yml
rename to spec/compiler/if/builtin-types-compatible-p.yml
diff --git a/spec/if/compiler/builtin-unreachable.yml b/spec/compiler/if/builtin-unreachable.yml
similarity index 100%
rename from spec/if/compiler/builtin-unreachable.yml
rename to spec/compiler/if/builtin-unreachable.yml
diff --git a/spec/compiler/if/container.yml b/spec/compiler/if/container.yml
new file mode 100644
index 0000000..a5d0e96
--- /dev/null
+++ b/spec/compiler/if/container.yml
@@ -0,0 +1,9 @@
+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
+interface-type: container
+links:
+- role: interface-placement
+  uid: domain
+type: interface
diff --git a/spec/if/compiler/cplusplus.yml b/spec/compiler/if/cplusplus.yml
similarity index 100%
rename from spec/if/compiler/cplusplus.yml
rename to spec/compiler/if/cplusplus.yml
diff --git a/spec/if/domains/compiler.yml b/spec/compiler/if/domain.yml
similarity index 100%
rename from spec/if/domains/compiler.yml
rename to spec/compiler/if/domain.yml
diff --git a/spec/if/compiler/gnuc.yml b/spec/compiler/if/gnuc.yml
similarity index 100%
rename from spec/if/compiler/gnuc.yml
rename to spec/compiler/if/gnuc.yml
diff --git a/spec/if/compiler/stdc-version.yml b/spec/compiler/if/stdc-version.yml
similarity index 100%
rename from spec/if/compiler/stdc-version.yml
rename to spec/compiler/if/stdc-version.yml
diff --git a/spec/if/compiler/typeof.yml b/spec/compiler/if/typeof.yml
similarity index 100%
rename from spec/if/compiler/typeof.yml
rename to spec/compiler/if/typeof.yml
diff --git a/spec/if/compiler/user-label-prefix.yml b/spec/compiler/if/user-label-prefix.yml
similarity index 100%
rename from spec/if/compiler/user-label-prefix.yml
rename to spec/compiler/if/user-label-prefix.yml
diff --git a/spec/if/acfg/appl-disable-filesystem.yml b/spec/if/acfg/appl-disable-filesystem.yml
deleted file mode 100644
index bc0da09..0000000
--- a/spec/if/acfg/appl-disable-filesystem.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-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/printf:/name}.
-  Filesystems can be disabled to reduce the memory footprint of an application.
-text: ''
-type: interface
diff --git a/spec/if/acfg/appl-extra-drivers.yml b/spec/if/acfg/appl-extra-drivers.yml
deleted file mode 100644
index 20b1dc5..0000000
--- a/spec/if/acfg/appl-extra-drivers.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-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/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/if/acfg/appl-needs-console-driver.yml b/spec/if/acfg/appl-needs-console-driver.yml
deleted file mode 100644
index 5ad708f..0000000
--- a/spec/if/acfg/appl-needs-console-driver.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-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/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/if/acfg/appl-needs-simple-console-driver.yml b/spec/if/acfg/appl-needs-simple-console-driver.yml
deleted file mode 100644
index 2f3e8ed..0000000
--- a/spec/if/acfg/appl-needs-simple-console-driver.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-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/getchark:/name}.
-
-  This device driver writes via ${../rtems/io/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/if/acfg/appl-needs-simple-task-console-driver.yml b/spec/if/acfg/appl-needs-simple-task-console-driver.yml
deleted file mode 100644
index 8365078..0000000
--- a/spec/if/acfg/appl-needs-simple-task-console-driver.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-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/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/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/if/acfg/appl-prerequisite-drivers.yml b/spec/if/acfg/appl-prerequisite-drivers.yml
deleted file mode 100644
index 552756e..0000000
--- a/spec/if/acfg/appl-prerequisite-drivers.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-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/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/if/acfg/bdbuf-buffer-min-size.yml b/spec/if/acfg/bdbuf-buffer-min-size.yml
deleted file mode 100644
index d9c901c..0000000
--- a/spec/if/acfg/bdbuf-buffer-min-size.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/bdbuf-cache-memory-size.yml b/spec/if/acfg/bdbuf-cache-memory-size.yml
deleted file mode 100644
index 8d71e4c..0000000
--- a/spec/if/acfg/bdbuf-cache-memory-size.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/bdbuf-max-read-ahead-blocks.yml b/spec/if/acfg/bdbuf-max-read-ahead-blocks.yml
deleted file mode 100644
index 0b8dfe7..0000000
--- a/spec/if/acfg/bdbuf-max-read-ahead-blocks.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/bdbuf-max-write-blocks.yml b/spec/if/acfg/bdbuf-max-write-blocks.yml
deleted file mode 100644
index 3dc8bfe..0000000
--- a/spec/if/acfg/bdbuf-max-write-blocks.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/bdbuf-swapout-block-hold.yml b/spec/if/acfg/bdbuf-swapout-block-hold.yml
deleted file mode 100644
index d5d6e34..0000000
--- a/spec/if/acfg/bdbuf-swapout-block-hold.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/bdbuf-swapout-swap-period.yml b/spec/if/acfg/bdbuf-swapout-swap-period.yml
deleted file mode 100644
index bb76831..0000000
--- a/spec/if/acfg/bdbuf-swapout-swap-period.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/bdbuf-swapout-worker-tasks.yml b/spec/if/acfg/bdbuf-swapout-worker-tasks.yml
deleted file mode 100644
index afc6dc6..0000000
--- a/spec/if/acfg/bdbuf-swapout-worker-tasks.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/bdbuf-task-stack-size.yml b/spec/if/acfg/bdbuf-task-stack-size.yml
deleted file mode 100644
index d039122..0000000
--- a/spec/if/acfg/bdbuf-task-stack-size.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-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/tasks/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/if/acfg/bsp-initial-extension.yml b/spec/if/acfg/bsp-initial-extension.yml
deleted file mode 100644
index e1cb01e..0000000
--- a/spec/if/acfg/bsp-initial-extension.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-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/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/if/acfg/bsp-prerequisite-drivers.yml b/spec/if/acfg/bsp-prerequisite-drivers.yml
deleted file mode 100644
index e95f53a..0000000
--- a/spec/if/acfg/bsp-prerequisite-drivers.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-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/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/if/acfg/cbs-max-servers.yml b/spec/if/acfg/cbs-max-servers.yml
deleted file mode 100644
index 9b171aa..0000000
--- a/spec/if/acfg/cbs-max-servers.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/constraint-idlestackarea.yml b/spec/if/acfg/constraint-idlestackarea.yml
deleted file mode 100644
index 561e0db..0000000
--- a/spec/if/acfg/constraint-idlestackarea.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-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/size_t:/name}.
-type: constraint
diff --git a/spec/if/acfg/constraint-isrstackalign.yml b/spec/if/acfg/constraint-isrstackalign.yml
deleted file mode 100644
index 24db5f1..0000000
--- a/spec/if/acfg/constraint-isrstackalign.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-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
-  ${../impl/cpu/interrupt-stack-alignment:/name}.
-type: constraint
diff --git a/spec/if/acfg/constraint-isrstackarea.yml b/spec/if/acfg/constraint-isrstackarea.yml
deleted file mode 100644
index 7c526ac..0000000
--- a/spec/if/acfg/constraint-isrstackarea.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-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/size_t:/name}.
-type: constraint
diff --git a/spec/if/acfg/constraint-stackspace.yml b/spec/if/acfg/constraint-stackspace.yml
deleted file mode 100644
index 41a3e1a..0000000
--- a/spec/if/acfg/constraint-stackspace.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-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/uintptr_t:/name}.
-type: constraint
diff --git a/spec/if/acfg/constraint-unlimited.yml b/spec/if/acfg/constraint-unlimited.yml
deleted file mode 100644
index 5338c30..0000000
--- a/spec/if/acfg/constraint-unlimited.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-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/resource-unlimited:/name} the enable unlimited objects for this
-  object class, if the value passed to ${../rtems/config/resource-unlimited:/name}
-  satisfies all other constraints of this configuration option.
-type: constraint
diff --git a/spec/if/acfg/constraint-wkspace.yml b/spec/if/acfg/constraint-wkspace.yml
deleted file mode 100644
index 63202f4..0000000
--- a/spec/if/acfg/constraint-wkspace.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-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/uintptr_t:/name}.
-type: constraint
diff --git a/spec/if/acfg/disable-newlib-reentrancy.yml b/spec/if/acfg/disable-newlib-reentrancy.yml
deleted file mode 100644
index 6959e5a..0000000
--- a/spec/if/acfg/disable-newlib-reentrancy.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-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/errno:/name} is no longer a thread-local
-  variable if this option is enabled.
-text: ''
-type: interface
diff --git a/spec/if/acfg/executive-ram-size.yml b/spec/if/acfg/executive-ram-size.yml
deleted file mode 100644
index 7e95b52..0000000
--- a/spec/if/acfg/executive-ram-size.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/group-bdbuf.yml b/spec/if/acfg/group-bdbuf.yml
deleted file mode 100644
index 7781063..0000000
--- a/spec/if/acfg/group-bdbuf.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes configuration options related to the Block Device Cache
-  (bdbuf).
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: Block Device Cache Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-bsp.yml b/spec/if/acfg/group-bsp.yml
deleted file mode 100644
index 439c995..0000000
--- a/spec/if/acfg/group-bsp.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-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: ../applconfig
-name: BSP Related Configuration Options
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-classic.yml b/spec/if/acfg/group-classic.yml
deleted file mode 100644
index 43f9b63..0000000
--- a/spec/if/acfg/group-classic.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes configuration options related to the Classic API.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: Classic API Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-classicinit.yml b/spec/if/acfg/group-classicinit.yml
deleted file mode 100644
index e8d3a61..0000000
--- a/spec/if/acfg/group-classicinit.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes configuration options related to the Classic API
-  initialization task.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: Classic API Initialization Task Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-devdrv.yml b/spec/if/acfg/group-devdrv.yml
deleted file mode 100644
index 451e1fb..0000000
--- a/spec/if/acfg/group-devdrv.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes configuration options related to the device drivers.
-  Note that network device drivers are not covered by the following options.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: Device Driver Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-eventrecord.yml b/spec/if/acfg/group-eventrecord.yml
deleted file mode 100644
index 7427575..0000000
--- a/spec/if/acfg/group-eventrecord.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: |
-  This section describes configuration options related to the event recording.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: Event Recording Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-filesystem.yml b/spec/if/acfg/group-filesystem.yml
deleted file mode 100644
index bc2ea05..0000000
--- a/spec/if/acfg/group-filesystem.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-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: ../applconfig
-name: Filesystem Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-general.yml b/spec/if/acfg/group-general.yml
deleted file mode 100644
index b473376..0000000
--- a/spec/if/acfg/group-general.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes general system configuration options.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: General System Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-idle.yml b/spec/if/acfg/group-idle.yml
deleted file mode 100644
index 5dd6b39..0000000
--- a/spec/if/acfg/group-idle.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes configuration options related to the idle tasks.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: Idle Task Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-mpci.yml b/spec/if/acfg/group-mpci.yml
deleted file mode 100644
index a302a4d..0000000
--- a/spec/if/acfg/group-mpci.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-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: ../applconfig
-name: Multiprocessing Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-posix.yml b/spec/if/acfg/group-posix.yml
deleted file mode 100644
index 0da249e..0000000
--- a/spec/if/acfg/group-posix.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes configuration options related to the POSIX API.  Most
-  POSIX API objects are available by default since RTEMS 5.1.  The queued signals
-  and timers are only available if RTEMS was built with the ``--enable-posix``
-  build configuration option.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: POSIX API Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-posixinit.yml b/spec/if/acfg/group-posixinit.yml
deleted file mode 100644
index a9eeaa0..0000000
--- a/spec/if/acfg/group-posixinit.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes configuration options related to the POSIX
-  initialization thread.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: POSIX Initialization Thread Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-schedgeneral.yml b/spec/if/acfg/group-schedgeneral.yml
deleted file mode 100644
index cb4492e..0000000
--- a/spec/if/acfg/group-schedgeneral.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-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: ../applconfig
-name: General Scheduler Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/group-stackalloc.yml b/spec/if/acfg/group-stackalloc.yml
deleted file mode 100644
index 45a7470..0000000
--- a/spec/if/acfg/group-stackalloc.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: |
-  This section describes configuration options related to the task stack
-  allocator.  RTEMS allows the application or BSP to define its own allocation
-  and deallocation methods for task stacks. This can be used to place task stacks
-  in special areas of memory or to utilize a Memory Management Unit so that stack
-  overflows are detected in hardware.
-enabled-by: true
-interface-type: appl-config-group
-links:
-- role: requirement-refinement
-  uid: ../applconfig
-name: Task Stack Allocator Configuration
-text: ''
-type: interface
diff --git a/spec/if/acfg/imfs-disable-chmod.yml b/spec/if/acfg/imfs-disable-chmod.yml
deleted file mode 100644
index c54079b..0000000
--- a/spec/if/acfg/imfs-disable-chmod.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-disable-chown.yml b/spec/if/acfg/imfs-disable-chown.yml
deleted file mode 100644
index b275cd0..0000000
--- a/spec/if/acfg/imfs-disable-chown.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-disable-link.yml b/spec/if/acfg/imfs-disable-link.yml
deleted file mode 100644
index dd804c9..0000000
--- a/spec/if/acfg/imfs-disable-link.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-disable-mknod.yml b/spec/if/acfg/imfs-disable-mknod.yml
deleted file mode 100644
index 3509876..0000000
--- a/spec/if/acfg/imfs-disable-mknod.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-disable-mount.yml b/spec/if/acfg/imfs-disable-mount.yml
deleted file mode 100644
index 8cdc66d..0000000
--- a/spec/if/acfg/imfs-disable-mount.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-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/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/if/acfg/imfs-disable-readdir.yml b/spec/if/acfg/imfs-disable-readdir.yml
deleted file mode 100644
index 5037334..0000000
--- a/spec/if/acfg/imfs-disable-readdir.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-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/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/if/acfg/imfs-disable-readlink.yml b/spec/if/acfg/imfs-disable-readlink.yml
deleted file mode 100644
index a8ebfb8..0000000
--- a/spec/if/acfg/imfs-disable-readlink.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-disable-rename.yml b/spec/if/acfg/imfs-disable-rename.yml
deleted file mode 100644
index 864b5d8..0000000
--- a/spec/if/acfg/imfs-disable-rename.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-disable-rmnod.yml b/spec/if/acfg/imfs-disable-rmnod.yml
deleted file mode 100644
index 30ad6a8..0000000
--- a/spec/if/acfg/imfs-disable-rmnod.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-disable-symlink.yml b/spec/if/acfg/imfs-disable-symlink.yml
deleted file mode 100644
index f564a03..0000000
--- a/spec/if/acfg/imfs-disable-symlink.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-disable-unmount.yml b/spec/if/acfg/imfs-disable-unmount.yml
deleted file mode 100644
index fc992f8..0000000
--- a/spec/if/acfg/imfs-disable-unmount.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-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/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/if/acfg/imfs-disable-utime.yml b/spec/if/acfg/imfs-disable-utime.yml
deleted file mode 100644
index 285f23e..0000000
--- a/spec/if/acfg/imfs-disable-utime.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/imfs-enable-mkfifo.yml b/spec/if/acfg/imfs-enable-mkfifo.yml
deleted file mode 100644
index 15fc2ff..0000000
--- a/spec/if/acfg/imfs-enable-mkfifo.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-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/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/if/acfg/init-task-arguments.yml b/spec/if/acfg/init-task-arguments.yml
deleted file mode 100644
index 992b693..0000000
--- a/spec/if/acfg/init-task-arguments.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-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/tasks/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/if/acfg/init-task-attributes.yml b/spec/if/acfg/init-task-attributes.yml
deleted file mode 100644
index 1087ceb..0000000
--- a/spec/if/acfg/init-task-attributes.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-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/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/if/acfg/init-task-initial-modes.yml b/spec/if/acfg/init-task-initial-modes.yml
deleted file mode 100644
index 9c729f4..0000000
--- a/spec/if/acfg/init-task-initial-modes.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-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/modes/default:/name}
-  otherwise the default value is ${../rtems/modes/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/if/acfg/init-task-name.yml b/spec/if/acfg/init-task-name.yml
deleted file mode 100644
index 62eb8d2..0000000
--- a/spec/if/acfg/init-task-name.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-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/types/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/build-name:/name} to define the task name.
-text: ''
-type: interface
diff --git a/spec/if/acfg/initial-extensions.yml b/spec/if/acfg/initial-extensions.yml
deleted file mode 100644
index d719f33..0000000
--- a/spec/if/acfg/initial-extensions.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-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/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/if/acfg/interrupt-stack-size.yml b/spec/if/acfg/interrupt-stack-size.yml
deleted file mode 100644
index d567417..0000000
--- a/spec/if/acfg/interrupt-stack-size.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-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 ${../impl/cpu/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
-  ${../impl/cpu/stack-minimum-size:/name}.
-text: ''
-type: interface
diff --git a/spec/if/acfg/malloc-bsp-supports-sbrk.yml b/spec/if/acfg/malloc-bsp-supports-sbrk.yml
deleted file mode 100644
index d27c00d..0000000
--- a/spec/if/acfg/malloc-bsp-supports-sbrk.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-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/malloc:/name} or other standard
-  memory allocation functions are unable to allocate memory, they will call the
-  BSP supplied ${../c/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/if/acfg/malloc-dirty.yml b/spec/if/acfg/malloc-dirty.yml
deleted file mode 100644
index 7049694..0000000
--- a/spec/if/acfg/malloc-dirty.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-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/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/if/acfg/max-drivers.yml b/spec/if/acfg/max-drivers.yml
deleted file mode 100644
index 5422bd4..0000000
--- a/spec/if/acfg/max-drivers.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/max-file-descriptors.yml b/spec/if/acfg/max-file-descriptors.yml
deleted file mode 100644
index 2897076..0000000
--- a/spec/if/acfg/max-file-descriptors.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/max-posix-key-value-pairs.yml b/spec/if/acfg/max-posix-key-value-pairs.yml
deleted file mode 100644
index b9ea991..0000000
--- a/spec/if/acfg/max-posix-key-value-pairs.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-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/pthread_setspecific:/name} if the value
-  is not ${../c/null:/name}, otherwise it is deleted.
-text: ''
-type: interface
diff --git a/spec/if/acfg/max-posix-semaphores.yml b/spec/if/acfg/max-posix-semaphores.yml
deleted file mode 100644
index 5e58ddc..0000000
--- a/spec/if/acfg/max-posix-semaphores.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-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/sem_open:/name}.  Semaphores
-  initialized with ${../c/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/if/acfg/max-processors.yml b/spec/if/acfg/max-processors.yml
deleted file mode 100644
index bc9e10d..0000000
--- a/spec/if/acfg/max-processors.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../impl/cpu/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/if/acfg/max-thread-local-storage-size.yml b/spec/if/acfg/max-thread-local-storage-size.yml
deleted file mode 100644
index b07b57a..0000000
--- a/spec/if/acfg/max-thread-local-storage-size.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/align-up:/name} and
-  ${../rtems/tasks/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/if/acfg/max-thread-name-size.yml b/spec/if/acfg/max-thread-name-size.yml
deleted file mode 100644
index f119bec..0000000
--- a/spec/if/acfg/max-thread-name-size.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/min-task-stack-size.yml b/spec/if/acfg/min-task-stack-size.yml
deleted file mode 100644
index 1d0bcaa..0000000
--- a/spec/if/acfg/min-task-stack-size.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-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: ${../impl/cpu/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/if/acfg/min-tasks-with-user-provided-storage.yml b/spec/if/acfg/min-tasks-with-user-provided-storage.yml
deleted file mode 100644
index 2001c01..0000000
--- a/spec/if/acfg/min-tasks-with-user-provided-storage.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-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/tasks/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/tasks/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/tasks/construct:/name} use a user-provided
-  task storage area.
-text: ''
-type: interface
diff --git a/spec/if/acfg/mp-extra-server-stack.yml b/spec/if/acfg/mp-extra-server-stack.yml
deleted file mode 100644
index 85f07d5..0000000
--- a/spec/if/acfg/mp-extra-server-stack.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/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/if/acfg/mp-max-global-objects.yml b/spec/if/acfg/mp-max-global-objects.yml
deleted file mode 100644
index 6ca30c0..0000000
--- a/spec/if/acfg/mp-max-global-objects.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/global:/name} attribute.
-
-  This configuration option is only evaluated if
-  ${mp-appl:/name} is defined.
-text: ''
-type: interface
diff --git a/spec/if/acfg/mp-max-nodes.yml b/spec/if/acfg/mp-max-nodes.yml
deleted file mode 100644
index 10c2cf1..0000000
--- a/spec/if/acfg/mp-max-nodes.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/mp-max-proxies.yml b/spec/if/acfg/mp-max-proxies.yml
deleted file mode 100644
index a61ab2a..0000000
--- a/spec/if/acfg/mp-max-proxies.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/mp-mpci-table-pointer.yml b/spec/if/acfg/mp-mpci-table-pointer.yml
deleted file mode 100644
index 2f92d4d..0000000
--- a/spec/if/acfg/mp-mpci-table-pointer.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-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/types/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/if/acfg/mp-node-number.yml b/spec/if/acfg/mp-node-number.yml
deleted file mode 100644
index 24e4431..0000000
--- a/spec/if/acfg/mp-node-number.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/record-per-processor-items.yml b/spec/if/acfg/record-per-processor-items.yml
deleted file mode 100644
index e52d15c..0000000
--- a/spec/if/acfg/record-per-processor-items.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/scheduler-name.yml b/spec/if/acfg/scheduler-name.yml
deleted file mode 100644
index 50d191d..0000000
--- a/spec/if/acfg/scheduler-name.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-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/types/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/ident:/name}.
-
-  Use ${../rtems/object/build-name:/name} to define the scheduler name.
-text: ''
-type: interface
diff --git a/spec/if/acfg/task-stack-allocator-init.yml b/spec/if/acfg/task-stack-allocator-init.yml
deleted file mode 100644
index 8e56ae3..0000000
--- a/spec/if/acfg/task-stack-allocator-init.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-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/null:/name}.
-copyrights:
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-default-value: ${../c/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/if/acfg/ticks-per-time-slice.yml b/spec/if/acfg/ticks-per-time-slice.yml
deleted file mode 100644
index ff23f3c..0000000
--- a/spec/if/acfg/ticks-per-time-slice.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-appl-config-option-type: integer
-constraints:
-  max: ${../c/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/if/acfg/unlimited-allocation-size.yml b/spec/if/acfg/unlimited-allocation-size.yml
deleted file mode 100644
index f0a2db9..0000000
--- a/spec/if/acfg/unlimited-allocation-size.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-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/resource-unlimited:/name} macro.
-text: ''
-type: interface
diff --git a/spec/if/acfg/verbose-system-init.yml b/spec/if/acfg/verbose-system-init.yml
deleted file mode 100644
index dcc5ae6..0000000
--- a/spec/if/acfg/verbose-system-init.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-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/printk:/name} function is used to print the information.
-text: ''
-type: interface
diff --git a/spec/if/api.yml b/spec/if/api.yml
index 69553ec..077a7a4 100644
--- a/spec/if/api.yml
+++ b/spec/if/api.yml
@@ -9,9 +9,9 @@ identifier: RTEMSAPI
 interface-type: group
 links:
 - role: requirement-refinement
-  uid: ../system
+  uid: ../req/system
 - role: interface-placement
-  uid: rtems/basedefs/header
+  uid: ../rtems/basedefs/if/header
 name: API
 text: |
   The system shall have an ${../glossary/api:/term}.
diff --git a/spec/if/applconfig.yml b/spec/if/applconfig.yml
deleted file mode 100644
index d1f808c..0000000
--- a/spec/if/applconfig.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-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:
-- role: requirement-refinement
-  uid: api
-non-functional-type: interface-requirement
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  The system shall provide configuration options to the application to set
-  configurable system parameters at link time.
-type: requirement
diff --git a/spec/if/build-options/container.yml b/spec/if/build-options/container.yml
deleted file mode 100644
index f0e130a..0000000
--- a/spec/if/build-options/container.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-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
-interface-type: container
-links:
-- role: interface-placement
-  uid: /if/domains/build-options
-type: interface
diff --git a/spec/if/build-options/cpuopts.yml b/spec/if/build-options/cpuopts.yml
deleted file mode 100644
index 803c28e..0000000
--- a/spec/if/build-options/cpuopts.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces provided by the CPU build options.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/build-options
-path: rtems/score/cpuopts.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/errno-header.yml b/spec/if/c/errno-header.yml
deleted file mode 100644
index c03e1e7..0000000
--- a/spec/if/c/errno-header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: errno.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/pthread.yml b/spec/if/c/pthread.yml
deleted file mode 100644
index a4cc736..0000000
--- a/spec/if/c/pthread.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: pthread.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/semaphore.yml b/spec/if/c/semaphore.yml
deleted file mode 100644
index d9f8899..0000000
--- a/spec/if/c/semaphore.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: semaphore.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/stdatomic.yml b/spec/if/c/stdatomic.yml
deleted file mode 100644
index 7ff24fc..0000000
--- a/spec/if/c/stdatomic.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: stdatomic.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/stdbool.yml b/spec/if/c/stdbool.yml
deleted file mode 100644
index 8adbb49..0000000
--- a/spec/if/c/stdbool.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: stdbool.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/stddef.yml b/spec/if/c/stddef.yml
deleted file mode 100644
index 0903df3..0000000
--- a/spec/if/c/stddef.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: stddef.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/stdint.yml b/spec/if/c/stdint.yml
deleted file mode 100644
index 6322d4e..0000000
--- a/spec/if/c/stdint.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: stdint.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/stdio.yml b/spec/if/c/stdio.yml
deleted file mode 100644
index 93712a7..0000000
--- a/spec/if/c/stdio.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: stdio.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/stdlib.yml b/spec/if/c/stdlib.yml
deleted file mode 100644
index cfb9eed..0000000
--- a/spec/if/c/stdlib.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: stdlib.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/string.yml b/spec/if/c/string.yml
deleted file mode 100644
index 2b3fbbe..0000000
--- a/spec/if/c/string.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: string.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/sys-cpuset.yml b/spec/if/c/sys-cpuset.yml
deleted file mode 100644
index de6f3d7..0000000
--- a/spec/if/c/sys-cpuset.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is FreeBSD defined header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: sys/cpuset.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/sys-impl-timespec.yml b/spec/if/c/sys-impl-timespec.yml
deleted file mode 100644
index e8d4e62..0000000
--- a/spec/if/c/sys-impl-timespec.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file provides POSIX time related definitions.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: sys/_timespec.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/sys-impl-timeval.yml b/spec/if/c/sys-impl-timeval.yml
deleted file mode 100644
index c77cea7..0000000
--- a/spec/if/c/sys-impl-timeval.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file provides POSIX time related definitions.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: sys/_timeval.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/sys-stat.yml b/spec/if/c/sys-stat.yml
deleted file mode 100644
index ca75b64..0000000
--- a/spec/if/c/sys-stat.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is POSIX header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: sys/stat.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/sys-types.yml b/spec/if/c/sys-types.yml
deleted file mode 100644
index 18df5dc..0000000
--- a/spec/if/c/sys-types.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is POSIX header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: sys/types.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/time.yml b/spec/if/c/time.yml
deleted file mode 100644
index 1d2c39f..0000000
--- a/spec/if/c/time.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: time.h
-prefix: ''
-type: interface
diff --git a/spec/if/c/unistd.yml b/spec/if/c/unistd.yml
deleted file mode 100644
index b89ca92..0000000
--- a/spec/if/c/unistd.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This is a standard C library header file.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/c
-path: unistd.h
-prefix: ''
-type: interface
diff --git a/spec/if/compiler/container.yml b/spec/if/compiler/container.yml
deleted file mode 100644
index 82155fc..0000000
--- a/spec/if/compiler/container.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-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
-interface-type: container
-links:
-- role: interface-placement
-  uid: /if/domains/compiler
-type: interface
diff --git a/spec/if/domains/api.yml b/spec/if/domain.yml
similarity index 100%
rename from spec/if/domains/api.yml
rename to spec/if/domain.yml
diff --git a/spec/if/impl/assert-unreachable.yml b/spec/if/impl/assert-unreachable.yml
deleted file mode 100644
index 01dce6d..0000000
--- a/spec/if/impl/assert-unreachable.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Asserts that this program point is unreachable.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    do { } while ( 0 )
-  variants:
-  - definition: |
-      _Assert( 0 )
-    enabled-by:
-    - defined(${/if/build-options/debug:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: /if/rtems/basedefs/header
-name: _Assert_Unreachable
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/impl/context/header.yml b/spec/if/impl/context/header.yml
deleted file mode 100644
index aeca1f9..0000000
--- a/spec/if/impl/context/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the Stack Handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/context.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/cpu/header.yml b/spec/if/impl/cpu/header.yml
deleted file mode 100644
index 8c52a9c..0000000
--- a/spec/if/impl/cpu/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the CPU port.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/cpu.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/dequalify-types-not-compatible.yml b/spec/if/impl/dequalify-types-not-compatible.yml
deleted file mode 100644
index 3d05f32..0000000
--- a/spec/if/impl/dequalify-types-not-compatible.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  A not implemented function to trigger compile time errors with an error
-  message.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2014 Paval Pisa
-definition:
-  default:
-    body: null
-    params: []
-    return: void *
-  variants:
-  - definition:
-      body: null
-      params: []
-      return: __attribute__((__error__("RTEMS_DEQUALIFY() types differ not only by
-        volatile and const"))) void *
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by:
-  not: ASM
-interface-type: function
-links:
-- role: interface-placement
-  uid: /if/rtems/basedefs/header
-name: RTEMS_DEQUALIFY_types_not_compatible
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/impl/heap/header.yml b/spec/if/impl/heap/header.yml
deleted file mode 100644
index 84acf0c..0000000
--- a/spec/if/impl/heap/header.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This header file defines interfaces of the Heap Handler which provide
-  information of a heap.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/heapinfo.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/interr/header.yml b/spec/if/impl/interr/header.yml
deleted file mode 100644
index 8c0255e..0000000
--- a/spec/if/impl/interr/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the interfaces of the Fatal Error Handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/interr.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/isr/header-2.yml b/spec/if/impl/isr/header-2.yml
deleted file mode 100644
index 6aedaf6..0000000
--- a/spec/if/impl/isr/header-2.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces related to the ISR level.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/isrlevel.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/isr/header-3.yml b/spec/if/impl/isr/header-3.yml
deleted file mode 100644
index 6bcf127..0000000
--- a/spec/if/impl/isr/header-3.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the ISR Lock Handler
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/isrlock.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/isr/header.yml b/spec/if/impl/isr/header.yml
deleted file mode 100644
index 0323b43..0000000
--- a/spec/if/impl/isr/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the ISR Handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/isr.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/maximum-priority.yml b/spec/if/impl/maximum-priority.yml
deleted file mode 100644
index 7d8b9b7..0000000
--- a/spec/if/impl/maximum-priority.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum priority of the scheduler with index zero.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/rtems/tasks/priority:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: /if/rtems/tasks/header
-name: _RTEMS_Maximum_priority
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/impl/memory/header.yml b/spec/if/impl/memory/header.yml
deleted file mode 100644
index 4b35d99..0000000
--- a/spec/if/impl/memory/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the Memory Handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/memory.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/mpci/header-2.yml b/spec/if/impl/mpci/header-2.yml
deleted file mode 100644
index 56470b3..0000000
--- a/spec/if/impl/mpci/header-2.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the MPCI packet interfaces.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/mppkt.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/mpci/header.yml b/spec/if/impl/mpci/header.yml
deleted file mode 100644
index b959193..0000000
--- a/spec/if/impl/mpci/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the interface of the MPCI implementation.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/mpci.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/object/header.yml b/spec/if/impl/object/header.yml
deleted file mode 100644
index 8a1c69a..0000000
--- a/spec/if/impl/object/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the Object Handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/object.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/smp/header-2.yml b/spec/if/impl/smp/header-2.yml
deleted file mode 100644
index 4cf217a..0000000
--- a/spec/if/impl/smp/header-2.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the SMP Lock Handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/smplock.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/smp/header.yml b/spec/if/impl/smp/header.yml
deleted file mode 100644
index d7952c0..0000000
--- a/spec/if/impl/smp/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the SMP Handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/smp.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/stack/header.yml b/spec/if/impl/stack/header.yml
deleted file mode 100644
index 92b9ff0..0000000
--- a/spec/if/impl/stack/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines interfaces of the Stack Handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/stack.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/thread/header.yml b/spec/if/impl/thread/header.yml
deleted file mode 100644
index 70655c4..0000000
--- a/spec/if/impl/thread/header.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This header file defines data structures of the Thread Handler used to
-  instantiate idle thread related objects defined by the application
-  configuration.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/threadidledata.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/tod-to-seconds.yml b/spec/if/impl/tod-to-seconds.yml
deleted file mode 100644
index 8273a50..0000000
--- a/spec/if/impl/tod-to-seconds.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const ${/if/rtems/types/time-of-day:/name} *${.:/params[0]/name}
-    return: ${watchdog/interval:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: /if/rtems/clock/header
-name: _TOD_To_seconds
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: the_tod
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/impl/tod-validate.yml b/spec/if/impl/tod-validate.yml
deleted file mode 100644
index 9e89f14..0000000
--- a/spec/if/impl/tod-validate.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const ${/if/rtems/types/time-of-day:/name} *${.:/params[0]/name}
-    return: ${/if/c/bool:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: /if/rtems/clock/header
-name: _TOD_Validate
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: the_tod
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/impl/userext/header.yml b/spec/if/impl/userext/header.yml
deleted file mode 100644
index a44dd92..0000000
--- a/spec/if/impl/userext/header.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This header file defines data structures of the User Extensions Handler used
-  to instantiate objects defined by the application configuration.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/userextdata.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/watchdog/header.yml b/spec/if/impl/watchdog/header.yml
deleted file mode 100644
index 39aa67d..0000000
--- a/spec/if/impl/watchdog/header.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This header file defines data structures of the Watchdog Handler used to
-  instantiate clock tick related objects defined by the application
-  configuration.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/watchdogticks.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/impl/wkspace/header.yml b/spec/if/impl/wkspace/header.yml
deleted file mode 100644
index f0e2f57..0000000
--- a/spec/if/impl/wkspace/header.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This header file defines data structures of the Workspace Handler used to
-  instantiate objects defined by the application configuration.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/implementation
-path: rtems/score/wkspacedata.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/attr/attribute.yml b/spec/if/rtems/attr/attribute.yml
deleted file mode 100644
index 3134ace..0000000
--- a/spec/if/rtems/attr/attribute.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type is used to represent Classic API attributes.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_attribute
-notes: |
-  Attributes are primarily used when creating objects.
-type: interface
diff --git a/spec/if/rtems/attr/group.yml b/spec/if/rtems/attr/group.yml
deleted file mode 100644
index 9bf2250..0000000
--- a/spec/if/rtems/attr/group.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains the Classic API directive attributes.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicAttr
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Directive Attributes
-text: |
-  The Classic API shall provide an interface to directive attributes.
-type: interface
diff --git a/spec/if/rtems/attr/header.yml b/spec/if/rtems/attr/header.yml
deleted file mode 100644
index 1ef0839..0000000
--- a/spec/if/rtems/attr/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines attributes provided by the API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/attr.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/barrier/create.yml b/spec/if/rtems/barrier/create.yml
deleted file mode 100644
index 803cc1c..0000000
--- a/spec/if/rtems/barrier/create.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../attr/attribute:/name} ${.:/params[1]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[2]/name}
-    - ${../types/id:/name} *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_barrier_create
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: name
-- description: '%'
-  dir: null
-  name: attribute_set
-- description: '%'
-  dir: null
-  name: maximum_waiters
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/barrier/delete.yml b/spec/if/rtems/barrier/delete.yml
deleted file mode 100644
index 8e66786..0000000
--- a/spec/if/rtems/barrier/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_barrier_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/barrier/group.yml b/spec/if/rtems/barrier/group.yml
deleted file mode 100644
index 514dace..0000000
--- a/spec/if/rtems/barrier/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Barrier Manager provides a unique synchronization capability which can be
-  used to have a set of tasks block and be unblocked as a set.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicBarrier
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Barrier Manager
-text: |
-  The Classic API shall provide an interface to the Barrier Manager.
-type: interface
diff --git a/spec/if/rtems/barrier/header.yml b/spec/if/rtems/barrier/header.yml
deleted file mode 100644
index fc76a10..0000000
--- a/spec/if/rtems/barrier/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Barrier Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/barrier.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/barrier/ident.yml b/spec/if/rtems/barrier/ident.yml
deleted file mode 100644
index b75f8b2..0000000
--- a/spec/if/rtems/barrier/ident.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a barrier object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the barrier identifier associated with the barrier
-  name specified in ``${.:/params[0]/name}``.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_barrier_ident
-notes: |
-  If the barrier name is not unique, then the barrier identifier will match the
-  first barrier with that name in the search order.  However, this barrier
-  identifier is not guaranteed to correspond to the desired barrier.  The
-  barrier identifier is used with other barrier related directives to access
-  the barrier.
-
-  The objects are searched from lowest to the highest index.  Only the local
-  node is searched.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the local node.
-    value: ${../status/invalid-name:/name}
-type: interface
diff --git a/spec/if/rtems/barrier/release.yml b/spec/if/rtems/barrier/release.yml
deleted file mode 100644
index 36d1b19..0000000
--- a/spec/if/rtems/barrier/release.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_barrier_release
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: released
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/barrier/wait.yml b/spec/if/rtems/barrier/wait.yml
deleted file mode 100644
index 8de1cb3..0000000
--- a/spec/if/rtems/barrier/wait.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/interval:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_barrier_wait
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: timeout
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/alias.yml b/spec/if/rtems/basedefs/alias.yml
deleted file mode 100644
index 17559f5..0000000
--- a/spec/if/rtems/basedefs/alias.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Instructs the compiler to generate an alias to the specified target function.
-copyrights:
-- Copyright (C) 2016 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__alias__(#_target)))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_ALIAS
-notes: null
-params:
-- description: |
-    is the target function name.
-  dir: null
-  name: _target
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/aligned.yml b/spec/if/rtems/basedefs/aligned.yml
deleted file mode 100644
index 5aa5256..0000000
--- a/spec/if/rtems/basedefs/aligned.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Instructs the compiler in a declaration or definition to enforce the
-  specified alignment.
-copyrights:
-- Copyright (C) 2016 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__aligned__(_alignment)))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_ALIGNED
-notes: null
-params:
-- description: |
-    is the desired alignment in bytes.
-  dir: null
-  name: _alignment
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/alloc-align.yml b/spec/if/rtems/basedefs/alloc-align.yml
deleted file mode 100644
index 1018b81..0000000
--- a/spec/if/rtems/basedefs/alloc-align.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a declaration that the memory allocation alignment
-  parameter of this function is similar to aligned_alloc().
-copyrights:
-- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__alloc_align__(_index)))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_ALLOC_ALIGN
-notes: null
-params:
-- description: |
-    is the allocation alignment parameter index (starting with one).
-  dir: null
-  name: _index
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/alloc-size-2.yml b/spec/if/rtems/basedefs/alloc-size-2.yml
deleted file mode 100644
index e0bae5d..0000000
--- a/spec/if/rtems/basedefs/alloc-size-2.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a declaration that the memory allocation item count and
-  item size parameter of this function is similar to calloc().
-copyrights:
-- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__alloc_size__(_count_index, _size_index)))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_ALLOC_SIZE_2
-notes: null
-params:
-- description: |
-    is the allocation item count parameter index (starting with one).
-  dir: null
-  name: _count_index
-- description: |
-    is the allocation item size parameter index (starting with one).
-  dir: null
-  name: _size_index
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/alloc-size.yml b/spec/if/rtems/basedefs/alloc-size.yml
deleted file mode 100644
index 7b7e406..0000000
--- a/spec/if/rtems/basedefs/alloc-size.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a declaration that the memory allocation size parameter
-  of this function is similar to malloc().
-copyrights:
-- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__alloc_size__(_index)))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_ALLOC_SIZE
-notes: null
-params:
-- description: |
-    is the allocation size parameter index (starting with one).
-  dir: null
-  name: _index
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/compiler-memory-barrier.yml b/spec/if/rtems/basedefs/compiler-memory-barrier.yml
deleted file mode 100644
index bf05b9f..0000000
--- a/spec/if/rtems/basedefs/compiler-memory-barrier.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This macro forbids the compiler to reorder read and write commands around it.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    do { } while ( 0 )
-  variants:
-  - definition: |
-      ${/if/compiler/asm:/name} volatile( "" ::: "memory" )
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_COMPILER_MEMORY_BARRIER
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/const.yml b/spec/if/rtems/basedefs/const.yml
deleted file mode 100644
index f5f3eab..0000000
--- a/spec/if/rtems/basedefs/const.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a function declaration that this function has no effect
-  except the return value and that the return value depends only on the value
-  of parameters.
-copyrights:
-- Copyright (C) 2019 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__const__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_CONST
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/container-of.yml b/spec/if/rtems/basedefs/container-of.yml
deleted file mode 100644
index 1d4070f..0000000
--- a/spec/if/rtems/basedefs/container-of.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the pointer to the container of a specified member pointer.
-copyrights:
-- Copyright (C) 2014 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    ( (_type *) ( (${/if/c/uintptr_t:/name}) ( _m ) - ${/if/c/offsetof:/name}( _type, _member_name ) ) )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_CONTAINER_OF
-notes: null
-params:
-- description: |
-    is the pointer to a member of the container.
-  dir: null
-  name: _m
-- description: |
-    is the type of the container.
-  dir: null
-  name: _type
-- description: |
-    is the designator name of the container member.
-  dir: null
-  name: _member_name
-return:
-  return: |
-    Returns the pointer to the container of a specified member pointer.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/define-global-symbol.yml b/spec/if/rtems/basedefs/define-global-symbol.yml
deleted file mode 100644
index a63f599..0000000
--- a/spec/if/rtems/basedefs/define-global-symbol.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Defines a global symbol with the specified name and value.
-copyrights:
-- Copyright (C) 2018, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      ${/if/compiler/asm:/name}(
-        "\t.globl " ${xstring:/name}( ${symbol-name:/name}( _name ) )
-        "\n\t.set " ${xstring:/name}( ${symbol-name:/name}( _name ) )
-        ", " ${string:/name}( _value ) "\n"
-      )
-    enabled-by:
-    - defined(${/if/compiler/user-label-prefix:/name})
-description: |
-  This macro shall be placed at file scope.
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_DEFINE_GLOBAL_SYMBOL
-notes: null
-params:
-- description: |
-    is the user defined name of the symbol.  The name shall be a valid
-    designator.  On the name a macro expansion is performed and afterwards it
-    is stringified.
-  dir: null
-  name: _name
-- description: |
-    is the value of the symbol.  On the value a macro expansion is performed
-    and afterwards it is stringified.  It shall expand to an integer expression
-    understood by the assembler.
-  dir: null
-  name: _value
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/deprecated.yml b/spec/if/rtems/basedefs/deprecated.yml
deleted file mode 100644
index a9e60df..0000000
--- a/spec/if/rtems/basedefs/deprecated.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Instructs the compiler in a declaration to issue a warning whenever a
-  variable, function, or type using this declaration will be used.
-copyrights:
-- Copyright (C) 2009 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__deprecated__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_DEPRECATED
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/dequalify-depthx.yml b/spec/if/rtems/basedefs/dequalify-depthx.yml
deleted file mode 100644
index 1d7247d..0000000
--- a/spec/if/rtems/basedefs/dequalify-depthx.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Performs a type cast which removes qualifiers without warnings to the
-  specified type for the specified variable.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2014 Paval Pisa
-definition:
-  default: ((_type)(${/if/c/uintptr_t:/name})(const volatile void *)(_var))
-  variants:
-  - definition: |
-      (const_cast<_type>(_var))
-    enabled-by:
-    - defined(${/if/compiler/cplusplus:/name})
-  - definition: |
-      ${/if/compiler/builtin-choose-expr:/name}(${/if/compiler/builtin-types-compatible-p:/name}(
-          ${typeof-refx:/name}(_ptr_level, _var),
-          ${typeof-refx:/name}(_ptr_level, _type)
-        ) || ${/if/compiler/builtin-types-compatible-p:/name}(_type, void *),
-      (_type)(_var),
-      ${/if/impl/dequalify-types-not-compatible:/name}())
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_DEQUALIFY_DEPTHX
-notes: null
-params:
-- description: |
-    is the pointer indirection level expressed in *.
-  dir: null
-  name: _ptr_level
-- description: |
-    is the target type of the cast.
-  dir: null
-  name: _type
-- description: |
-    is the variable.
-  dir: null
-  name: _var
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/group.yml b/spec/if/rtems/basedefs/group.yml
deleted file mode 100644
index a5340f0..0000000
--- a/spec/if/rtems/basedefs/group.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains basic macros and defines to give access to
-  compiler-specific features.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIBaseDefs
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../../api
-name: Base Definitions
-text: |
-  The API shall provide an interface to compiler-specific features.
-type: interface
diff --git a/spec/if/rtems/basedefs/have-member-same-type.yml b/spec/if/rtems/basedefs/have-member-same-type.yml
deleted file mode 100644
index 2b7a284..0000000
--- a/spec/if/rtems/basedefs/have-member-same-type.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Evaluates to true if the specified members of two types have compatible
-  types, otherwise to false.
-copyrights:
-- Copyright (C) 2017 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    ${/if/c/true:/name}
-  variants:
-  - definition: |
-      ${/if/compiler/builtin-types-compatible-p:/name}(
-        ${/if/compiler/typeof:/name}( ( (_t_lhs *) 0 )->_m_lhs ),
-        ${/if/compiler/typeof:/name}( ( (_t_rhs *) 0 )->_m_rhs )
-      )
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_HAVE_MEMBER_SAME_TYPE
-notes: null
-params:
-- description: |
-    is the left hand side type.
-  dir: null
-  name: _t_lhs
-- description: |
-    is the left hand side member.
-  dir: null
-  name: _m_lhs
-- description: |
-    is the right hand side type.
-  dir: null
-  name: _t_rhs
-- description: |
-    is the right hand side member.
-  dir: null
-  name: _m_rhs
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/header.yml b/spec/if/rtems/basedefs/header.yml
deleted file mode 100644
index 0fe9a82..0000000
--- a/spec/if/rtems/basedefs/header.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This header file provides basic definitions used by the API and
-  the implementation.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- enabled-by: []
-  role: interface-include
-  uid: /if/build-options/cpuopts
-- enabled-by:
-    not: ASM
-  role: interface-include
-  uid: /if/c/stddef
-- enabled-by:
-    not: ASM
-  role: interface-include
-  uid: /if/c/stdbool
-- enabled-by:
-    not: ASM
-  role: interface-include
-  uid: /if/c/stdint
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/score/basedefs.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/basedefs/inline-routine.yml b/spec/if/rtems/basedefs/inline-routine.yml
deleted file mode 100644
index 7ce5f60..0000000
--- a/spec/if/rtems/basedefs/inline-routine.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Gives a hint to the compiler in a function declaration to inline this
-  function.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: static inline
-  variants:
-  - definition: static __inline__
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_INLINE_ROUTINE
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/malloclike.yml b/spec/if/rtems/basedefs/malloclike.yml
deleted file mode 100644
index 40948b5..0000000
--- a/spec/if/rtems/basedefs/malloclike.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a declaration that this function is a memory allocation
-  function similar to malloc().
-copyrights:
-- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__malloc__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_MALLOCLIKE
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/no-inline.yml b/spec/if/rtems/basedefs/no-inline.yml
deleted file mode 100644
index b61ccb4..0000000
--- a/spec/if/rtems/basedefs/no-inline.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Instructs the compiler in a function declaration to not inline this function.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__noinline__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_NO_INLINE
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/no-return.yml b/spec/if/rtems/basedefs/no-return.yml
deleted file mode 100644
index 24f4900..0000000
--- a/spec/if/rtems/basedefs/no-return.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a function declaration that this function does not
-  return.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__noreturn__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_NO_RETURN
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/obfuscate-variable.yml b/spec/if/rtems/basedefs/obfuscate-variable.yml
deleted file mode 100644
index 512e2c2..0000000
--- a/spec/if/rtems/basedefs/obfuscate-variable.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Obfuscates the variable so that the compiler cannot perform optimizations
-  based on the variable value.
-copyrights:
-- Copyright (C) 2016, 2018 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    (void) (_var)
-  variants:
-  - definition: |
-      ${/if/compiler/asm:/name}( "" : "+r" ( _var ) )
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: |
-  The variable must be simple enough to fit into a register.
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_OBFUSCATE_VARIABLE
-notes: null
-params:
-- description: |
-    is the variable to obfuscate.
-  dir: null
-  name: _var
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/packed.yml b/spec/if/rtems/basedefs/packed.yml
deleted file mode 100644
index a31f977..0000000
--- a/spec/if/rtems/basedefs/packed.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Instructs the compiler in a type definition to place members of a structure
-  or union so that the memory required is minimized.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__packed__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_PACKED
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/predict-false.yml b/spec/if/rtems/basedefs/predict-false.yml
deleted file mode 100644
index fffd569..0000000
--- a/spec/if/rtems/basedefs/predict-false.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the value of the specified integral expression and tells the compiler
-  that the predicted value is false (1).
-copyrights:
-- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    ( _exp )
-  variants:
-  - definition: |
-      ${/if/compiler/builtin-expect:/name}( ( _exp ), 0 )
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_PREDICT_FALSE
-notes: null
-params:
-- description: |
-    is the expression.
-  dir: null
-  name: _exp
-return:
-  return: The value of the expression.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/predict-true.yml b/spec/if/rtems/basedefs/predict-true.yml
deleted file mode 100644
index 477059c..0000000
--- a/spec/if/rtems/basedefs/predict-true.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the value of the specified integral expression and tells the compiler
-  that the predicted value is true (1).
-copyrights:
-- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    ( _exp )
-  variants:
-  - definition: |
-      ${/if/compiler/builtin-expect:/name}( ( _exp ), 1 )
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_PREDICT_TRUE
-notes: null
-params:
-- description: |
-    is the expression.
-  dir: null
-  name: _exp
-return:
-  return: The value of the expression.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/printflike.yml b/spec/if/rtems/basedefs/printflike.yml
deleted file mode 100644
index b33cf21..0000000
--- a/spec/if/rtems/basedefs/printflike.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a declaration that this function expects printf()-like
-  arguments.
-copyrights:
-- Copyright (C) 2016 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__format__(__printf__, _format_pos, _ap_pos)))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_PRINTFLIKE
-notes: null
-params:
-- description: |
-    is the position of the format parameter index (starting with one).
-  dir: null
-  name: _format_pos
-- description: |
-    is the position of the argument pointer parameter index (starting with
-    one).
-  dir: null
-  name: _ap_pos
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/pure.yml b/spec/if/rtems/basedefs/pure.yml
deleted file mode 100644
index 7585ebb..0000000
--- a/spec/if/rtems/basedefs/pure.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a function declaration that this function has no effect
-  except the return value and that the return value depends only on the value
-  of parameters and/or global variables.
-copyrights:
-- Copyright (C) 2011 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__pure__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_PURE
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/return-address.yml b/spec/if/rtems/basedefs/return-address.yml
deleted file mode 100644
index 5f141c6..0000000
--- a/spec/if/rtems/basedefs/return-address.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the return address of the current function.
-copyrights:
-- Copyright (C) 2019 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/c/null:/name}
-  variants:
-  - definition: |
-      ${/if/compiler/builtin-return-address:/name}(0)
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_RETURN_ADDRESS
-notes: null
-params: []
-return:
-  return: The return address of the current function.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/section.yml b/spec/if/rtems/basedefs/section.yml
deleted file mode 100644
index 9191b51..0000000
--- a/spec/if/rtems/basedefs/section.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Instructs the compiler to place a specific variable or function in the
-  specified section.
-copyrights:
-- Copyright (C) 2015 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__section__(_section)))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_SECTION
-notes: null
-params:
-- description: |
-    is the section name as a string.
-  dir: null
-  name: _section
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/static-assert.yml b/spec/if/rtems/basedefs/static-assert.yml
deleted file mode 100644
index a56d971..0000000
--- a/spec/if/rtems/basedefs/static-assert.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Asserts at compile time that the specified condition is satisfied.
-copyrights:
-- Copyright (C) 2011, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    struct rtems_static_assert_ ## _msg
-      { int rtems_static_assert_ ## _msg : (_cond) ? 1 : -1; }
-  variants:
-  - definition: |
-      static_assert(_cond, # _msg)
-    enabled-by:
-    - ${/if/compiler/cplusplus:/name} >= 201103L
-  - definition: |
-      _Static_assert(_cond, # _msg)
-    enabled-by:
-    - ${/if/compiler/stdc-version:/name} >= 201112L
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_STATIC_ASSERT
-notes: null
-params:
-- description: |
-    is the condition this static assertion shall satisfy.
-  dir: null
-  name: _cond
-- description: |
-    is the error message in case the static assertion fails.
-  dir: null
-  name: _msg
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/symbol-name.yml b/spec/if/rtems/basedefs/symbol-name.yml
deleted file mode 100644
index 771a2da..0000000
--- a/spec/if/rtems/basedefs/symbol-name.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Constructs a symbol name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    ${expand:/name}(_name)
-  variants:
-  - definition: |
-      ${xconcat:/name}(${/if/compiler/user-label-prefix:/name}, _name)
-    enabled-by:
-    - defined(${/if/compiler/user-label-prefix:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_SYMBOL_NAME
-notes: null
-params:
-- description: |
-    is the user defined name of the symbol.  The name shall be a valid
-    designator.  On the name a macro expansion is performed.
-  dir: null
-  name: _name
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/typeof-refx.yml b/spec/if/rtems/basedefs/typeof-refx.yml
deleted file mode 100644
index cda4b9b..0000000
--- a/spec/if/rtems/basedefs/typeof-refx.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the type of a pointer reference of the specified level to the specified type.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2014 Paval Pisa
-definition:
-  default: ''
-  variants:
-  - definition: |
-      ${/if/compiler/typeof:/name}(_level(union { int z; ${/if/compiler/typeof:/name}(_target) x; }){0}.x)
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: |
-  The reference type idea is based on libHX by Jan Engelhardt.
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_TYPEOF_REFX
-notes: null
-params:
-- description: |
-    is the pointer indirection level expressed in *.
-  dir: null
-  name: _level
-- description: |
-    is the reference target type.
-  dir: null
-  name: _target
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/unreachable.yml b/spec/if/rtems/basedefs/unreachable.yml
deleted file mode 100644
index 97cbd4a..0000000
--- a/spec/if/rtems/basedefs/unreachable.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler that this program point is unreachable.
-copyrights:
-- Copyright (C) 2016 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    ${/if/impl/assert-unreachable:/name}()
-  variants:
-  - definition: |
-      do {
-        ${/if/compiler/builtin-unreachable:/name}();
-        ${/if/impl/assert-unreachable:/name}();
-      } while ( 0 )
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-name: RTEMS_UNREACHABLE
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/unused.yml b/spec/if/rtems/basedefs/unused.yml
deleted file mode 100644
index 01c775b..0000000
--- a/spec/if/rtems/basedefs/unused.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler that a specific variable or function is deliberately
-  unused.
-copyrights:
-- Copyright (C) 2013 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__unused__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_UNUSED
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/used.yml b/spec/if/rtems/basedefs/used.yml
deleted file mode 100644
index 5bb598c..0000000
--- a/spec/if/rtems/basedefs/used.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler that a specific variable or function is used.
-copyrights:
-- Copyright (C) 2009 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__used__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_USED
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/warn-unused-result.yml b/spec/if/rtems/basedefs/warn-unused-result.yml
deleted file mode 100644
index 4891918..0000000
--- a/spec/if/rtems/basedefs/warn-unused-result.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a declaration that the result of this function should
-  be used.
-copyrights:
-- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__warn_unused_result__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_WARN_UNUSED_RESULT
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/weak-alias.yml b/spec/if/rtems/basedefs/weak-alias.yml
deleted file mode 100644
index ed07177..0000000
--- a/spec/if/rtems/basedefs/weak-alias.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Instructs the compiler to generate a weak alias to the specified target
-  function.
-copyrights:
-- Copyright (C) 2017 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__weak__, __alias__(#_target)))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_WEAK_ALIAS
-notes: null
-params:
-- description: |
-    is the target function name.
-  dir: null
-  name: _target
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/basedefs/weak.yml b/spec/if/rtems/basedefs/weak.yml
deleted file mode 100644
index aea0761..0000000
--- a/spec/if/rtems/basedefs/weak.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Tells the compiler in a function definition that this function should be
-  weak.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ''
-  variants:
-  - definition: |
-      __attribute__((__weak__))
-    enabled-by:
-    - defined(${/if/compiler/gnuc:/name})
-description: |
-  Use this attribute for function definitions.  Do not use it for function
-  declarations.
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_WEAK
-notes: null
-type: interface
diff --git a/spec/if/rtems/basedefs/zero-length-array.yml b/spec/if/rtems/basedefs/zero-length-array.yml
deleted file mode 100644
index 24c23b4..0000000
--- a/spec/if/rtems/basedefs/zero-length-array.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This is a constant to declare zero-length arrays.
-copyrights:
-- Copyright (C) 2014 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: '0'
-  variants:
-  - definition: null
-    enabled-by:
-    - ${../../compiler/stdc-version:/name} >= 199409L
-description: |
-  Zero-length arrays are valid in C99 as flexible array members.  C++11 does
-  not allow flexible array members.  Use the GNU extension which is also
-  supported by other compilers.
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_ZERO_LENGTH_ARRAY
-notes: null
-type: interface
diff --git a/spec/if/rtems/cache/aligned-malloc.yml b/spec/if/rtems/cache/aligned-malloc.yml
deleted file mode 100644
index cd2581f..0000000
--- a/spec/if/rtems/cache/aligned-malloc.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/size_t:/name} ${.:/params[0]/name}
-    return: void *
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_aligned_malloc
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: nbytes
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/coherent-add-area.yml b/spec/if/rtems/cache/coherent-add-area.yml
deleted file mode 100644
index 52c621e..0000000
--- a/spec/if/rtems/cache/coherent-add-area.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - void *${.:/params[0]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[1]/name}
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_coherent_add_area
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: area_begin
-- description: '%'
-  dir: null
-  name: area_size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/coherent-allocate.yml b/spec/if/rtems/cache/coherent-allocate.yml
deleted file mode 100644
index 97653e8..0000000
--- a/spec/if/rtems/cache/coherent-allocate.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/size_t:/name} ${.:/params[0]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[1]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[2]/name}
-    return: void *
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_coherent_allocate
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: size
-- description: '%'
-  dir: null
-  name: alignment
-- description: '%'
-  dir: null
-  name: boundary
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/flush-multiple-data-lines.yml b/spec/if/rtems/cache/flush-multiple-data-lines.yml
deleted file mode 100644
index afbc38e..0000000
--- a/spec/if/rtems/cache/flush-multiple-data-lines.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const void *${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_flush_multiple_data_lines
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: addr
-- description: '%'
-  dir: null
-  name: size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/get-data-line-size.yml b/spec/if/rtems/cache/get-data-line-size.yml
deleted file mode 100644
index e8540db..0000000
--- a/spec/if/rtems/cache/get-data-line-size.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/size_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_get_data_line_size
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/get-data-size.yml b/spec/if/rtems/cache/get-data-size.yml
deleted file mode 100644
index 7bb71a7..0000000
--- a/spec/if/rtems/cache/get-data-size.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/uint32_t:/name} ${.:/params[0]/name}
-    return: ${/if/c/size_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_get_data_cache_size
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: level
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/get-instruction-line-size.yml b/spec/if/rtems/cache/get-instruction-line-size.yml
deleted file mode 100644
index 534514d..0000000
--- a/spec/if/rtems/cache/get-instruction-line-size.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/size_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_get_instruction_line_size
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/get-instruction-size.yml b/spec/if/rtems/cache/get-instruction-size.yml
deleted file mode 100644
index 5742373..0000000
--- a/spec/if/rtems/cache/get-instruction-size.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/uint32_t:/name} ${.:/params[0]/name}
-    return: ${/if/c/size_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_get_instruction_cache_size
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: level
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/get-maximal-line-size.yml b/spec/if/rtems/cache/get-maximal-line-size.yml
deleted file mode 100644
index 60e9cca..0000000
--- a/spec/if/rtems/cache/get-maximal-line-size.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/size_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_get_maximal_line_size
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/group.yml b/spec/if/rtems/cache/group.yml
deleted file mode 100644
index d366236..0000000
--- a/spec/if/rtems/cache/group.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Cache Manager provides functions to perform maintenance operations for
-  data and instruction caches.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicCache
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Cache Manager
-text: |
-  The Classic API shall provide an interface to the Cache Manager.
-type: interface
diff --git a/spec/if/rtems/cache/header.yml b/spec/if/rtems/cache/header.yml
deleted file mode 100644
index e84b4f5..0000000
--- a/spec/if/rtems/cache/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Cache Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/cache.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/cache/instruction-sync-after-code-change.yml b/spec/if/rtems/cache/instruction-sync-after-code-change.yml
deleted file mode 100644
index f7fead7..0000000
--- a/spec/if/rtems/cache/instruction-sync-after-code-change.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const void *${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_instruction_sync_after_code_change
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: code_addr
-- description: '%'
-  dir: null
-  name: n_bytes
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/invalidate-multiple-data-lines.yml b/spec/if/rtems/cache/invalidate-multiple-data-lines.yml
deleted file mode 100644
index 1c4386c..0000000
--- a/spec/if/rtems/cache/invalidate-multiple-data-lines.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const void *${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_invalidate_multiple_data_lines
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: addr
-- description: '%'
-  dir: null
-  name: size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/cache/invalidate-multiple-instruction-lines.yml b/spec/if/rtems/cache/invalidate-multiple-instruction-lines.yml
deleted file mode 100644
index edb0858..0000000
--- a/spec/if/rtems/cache/invalidate-multiple-instruction-lines.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const void *${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_cache_invalidate_multiple_instruction_lines
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: addr
-- description: '%'
-  dir: null
-  name: size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-seconds-since-epoch.yml b/spec/if/rtems/clock/get-seconds-since-epoch.yml
deleted file mode 100644
index 0cea3bc..0000000
--- a/spec/if/rtems/clock/get-seconds-since-epoch.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/interval:/name} *${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_seconds_since_epoch
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: the_interval
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-ticks-per-second.yml b/spec/if/rtems/clock/get-ticks-per-second.yml
deleted file mode 100644
index ceb1002..0000000
--- a/spec/if/rtems/clock/get-ticks-per-second.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/watchdog/ticks-per-second:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_ticks_per_second
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-ticks-since-boot.yml b/spec/if/rtems/clock/get-ticks-since-boot.yml
deleted file mode 100644
index 157c916..0000000
--- a/spec/if/rtems/clock/get-ticks-since-boot.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/watchdog/ticks-since-boot:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_ticks_since_boot
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-tod-timeval.yml b/spec/if/rtems/clock/get-tod-timeval.yml
deleted file mode 100644
index 7da8de8..0000000
--- a/spec/if/rtems/clock/get-tod-timeval.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/timeval:/name} *${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_tod_timeval
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: time
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-tod.yml b/spec/if/rtems/clock/get-tod.yml
deleted file mode 100644
index 4072a8a..0000000
--- a/spec/if/rtems/clock/get-tod.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/time-of-day:/name} *${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_tod
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: time_buffer
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-uptime-nanoseconds.yml b/spec/if/rtems/clock/get-uptime-nanoseconds.yml
deleted file mode 100644
index e0733d1..0000000
--- a/spec/if/rtems/clock/get-uptime-nanoseconds.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint64_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_uptime_nanoseconds
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-uptime-seconds.yml b/spec/if/rtems/clock/get-uptime-seconds.yml
deleted file mode 100644
index 9524c3d..0000000
--- a/spec/if/rtems/clock/get-uptime-seconds.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/time_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_uptime_seconds
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-uptime-timeval.yml b/spec/if/rtems/clock/get-uptime-timeval.yml
deleted file mode 100644
index 82e0968..0000000
--- a/spec/if/rtems/clock/get-uptime-timeval.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/timeval:/name} *${.:/params[0]/name}
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_uptime_timeval
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: uptime
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/get-uptime.yml b/spec/if/rtems/clock/get-uptime.yml
deleted file mode 100644
index 0e886bf..0000000
--- a/spec/if/rtems/clock/get-uptime.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/timespec:/name} *${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_get_uptime
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: uptime
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/group.yml b/spec/if/rtems/clock/group.yml
deleted file mode 100644
index 3f4964e..0000000
--- a/spec/if/rtems/clock/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Clock Manager provides support for time of day and other time related
-  capabilities.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicClock
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Clock Manager
-text: |
-  The Classic API shall provide an interface to the Clock Manager.
-type: interface
diff --git a/spec/if/rtems/clock/header.yml b/spec/if/rtems/clock/header.yml
deleted file mode 100644
index f402e69..0000000
--- a/spec/if/rtems/clock/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Clock Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/clock.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/clock/set.yml b/spec/if/rtems/clock/set.yml
deleted file mode 100644
index 80c8a27..0000000
--- a/spec/if/rtems/clock/set.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const ${../types/time-of-day:/name} *${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_set
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: time_buffer
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/tick-before.yml b/spec/if/rtems/clock/tick-before.yml
deleted file mode 100644
index ef7c69f..0000000
--- a/spec/if/rtems/clock/tick-before.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns true if the current ticks counter value indicates a time before the
-  time specified by the tick value and false otherwise.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: |
-      return (${/if/c/int32_t:/name}) ( ${.:/params[0]/name} - ${/if/impl/watchdog/ticks-since-boot:/name} ) > 0;
-    params:
-    - ${../types/interval:/name} ${.:/params[0]/name}
-    return: ${/if/c/bool:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_tick_before
-notes: |
-  This directive can be used to write busy loops with a timeout.
-params:
-- description: is the tick value.
-  dir: null
-  name: tick
-return:
-  return: null
-  return-values:
-  - description: |
-      The current ticks counter value indicates a time before the time
-      specified by the tick value.
-    value: 'true'
-  - description: |
-      Otherwise.
-    value: 'false'
-type: interface
diff --git a/spec/if/rtems/clock/tick-later-usec.yml b/spec/if/rtems/clock/tick-later-usec.yml
deleted file mode 100644
index acb8895..0000000
--- a/spec/if/rtems/clock/tick-later-usec.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the ticks counter value at least delta microseconds in the future.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: |
-      ${../types/interval:/name} us_per_tick;
-
-      us_per_tick = ${../config/get-microseconds-per-tick:/name}();
-
-      /*
-       * Add one additional tick, since we do not know the time to the clock
-       * next tick.
-       */
-      return ${/if/impl/watchdog/ticks-since-boot:/name} + 1
-        + ( ${.:/params[0]/name} + us_per_tick - 1 ) / us_per_tick;
-    params:
-    - ${../types/interval:/name} ${.:/params[0]/name}
-    return: ${../types/interval:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_tick_later_usec
-notes: null
-params:
-- description: is the delta value in microseconds.
-  dir: null
-  name: delta_in_usec
-return:
-  return: |
-    The tick counter value delta ticks in the future is returned.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/tick-later.yml b/spec/if/rtems/clock/tick-later.yml
deleted file mode 100644
index 5f56a06..0000000
--- a/spec/if/rtems/clock/tick-later.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the ticks counter value delta ticks in the future.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: |
-      return ${/if/impl/watchdog/ticks-since-boot:/name} + ${.:/params[0]/name};
-    params:
-    - ${../types/interval:/name} ${.:/params[0]/name}
-    return: ${../types/interval:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_tick_later
-notes: null
-params:
-- description: is the ticks delta value.
-  dir: null
-  name: delta
-return:
-  return: |
-    The tick counter value delta ticks in the future is returned.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/clock/tick.yml b/spec/if/rtems/clock/tick.yml
deleted file mode 100644
index 4f15e45..0000000
--- a/spec/if/rtems/clock/tick.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_clock_tick
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/api-table.yml b/spec/if/rtems/config/api-table.yml
deleted file mode 100644
index 17997e1..0000000
--- a/spec/if/rtems/config/api-table.yml
+++ /dev/null
@@ -1,128 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This structure contains a summary of the Classic API configuration.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Tasks which are
-      configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_tasks
-  variants: []
-- default:
-    brief: |
-      This field indicates if Classic API Notepads are enabled or disabled for
-      this application.
-    definition: ${/if/c/bool:/name} ${.:name}
-    description: null
-    kind: member
-    name: notepads_enabled
-  variants: []
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Timers which are
-      configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_timers
-  variants: []
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Semaphores which
-      are configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_semaphores
-  variants: []
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Message Queues
-      which are configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_message_queues
-  variants: []
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Partitions which
-      are configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_partitions
-  variants: []
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Regions which are
-      configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_regions
-  variants: []
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Dual Ported Memory
-      Areas which are configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_ports
-  variants: []
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Rate Monotonic
-      Periods which are configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_periods
-  variants: []
-- default:
-    brief: |
-      This field contains the maximum number of Classic API Barriers which are
-      configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: maximum_barriers
-  variants: []
-- default:
-    brief: |
-      This field contains the number of Classic API Initialization
-      Tasks which are configured for this application.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: number_of_initialization_tasks
-  variants: []
-- default:
-    brief: |
-      This field contains the pointer to Classic API Initialization Tasks Table
-      of this application.
-    definition: const ${../tasks/initialization-table:/name} *${.:name}
-    description: null
-    kind: member
-    name: User_initialization_tasks_table
-  variants: []
-definition-kind: typedef-only
-description: |
-  Use ${get-api-configuration:/name} to get the configuration table.
-enabled-by: true
-interface-type: struct
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_api_configuration_table
-notes: null
-type: interface
diff --git a/spec/if/rtems/config/get-do-zero-of-workspace.yml b/spec/if/rtems/config/get-do-zero-of-workspace.yml
deleted file mode 100644
index 702cffd..0000000
--- a/spec/if/rtems/config/get-do-zero-of-workspace.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns true, if the workspace is zeroed during system initialization,
-  otherwise returns false.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/memory/zero-before-use:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_do_zero_of_workspace
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-idle-task-stack-size.yml b/spec/if/rtems/config/get-idle-task-stack-size.yml
deleted file mode 100644
index e66a850..0000000
--- a/spec/if/rtems/config/get-idle-task-stack-size.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the configured IDLE task stack size in bytes of this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/thread/idle-stack-size:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_idle_task_stack_size
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-idle-task.yml b/spec/if/rtems/config/get-idle-task.yml
deleted file mode 100644
index 2e4dcbe..0000000
--- a/spec/if/rtems/config/get-idle-task.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the configured IDLE task entry of this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/thread/idle-body:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_idle_task
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-interrupt-stack-size.yml b/spec/if/rtems/config/get-interrupt-stack-size.yml
deleted file mode 100644
index 2f3edee..0000000
--- a/spec/if/rtems/config/get-interrupt-stack-size.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the configured interrupt stack size in bytes of this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ((${/if/c/size_t:/name}) ${/if/impl/isr/stack-size:/name})
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_interrupt_stack_size
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-barriers.yml b/spec/if/rtems/config/get-maximum-barriers.yml
deleted file mode 100644
index da6d63a..0000000
--- a/spec/if/rtems/config/get-maximum-barriers.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Barriers which are configured for
-  this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_barriers
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-extensions.yml b/spec/if/rtems/config/get-maximum-extensions.yml
deleted file mode 100644
index 9181965..0000000
--- a/spec/if/rtems/config/get-maximum-extensions.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API User Extensions which are
-  configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_extensions
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-message-queues.yml b/spec/if/rtems/config/get-maximum-message-queues.yml
deleted file mode 100644
index 405d744..0000000
--- a/spec/if/rtems/config/get-maximum-message-queues.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Message Queues which are configured
-  for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_message_queues
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-partitions.yml b/spec/if/rtems/config/get-maximum-partitions.yml
deleted file mode 100644
index 19bf7be..0000000
--- a/spec/if/rtems/config/get-maximum-partitions.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Partitions which are configured for
-  this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_partitions
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-periods.yml b/spec/if/rtems/config/get-maximum-periods.yml
deleted file mode 100644
index 5d73429..0000000
--- a/spec/if/rtems/config/get-maximum-periods.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Rate Monotonic Periods which are
-  configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_periods
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-ports.yml b/spec/if/rtems/config/get-maximum-ports.yml
deleted file mode 100644
index ef39110..0000000
--- a/spec/if/rtems/config/get-maximum-ports.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Dual Ported Memory Areas which are
-  configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_ports
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-processors.yml b/spec/if/rtems/config/get-maximum-processors.yml
deleted file mode 100644
index a3cbb09..0000000
--- a/spec/if/rtems/config/get-maximum-processors.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of processors which are configured for this
-  application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/smp/processor-configured-maximum:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_processors
-notes: |
-  The actual number of processors available for the application will be less
-  than or equal to the configured maximum number of processors.
-
-  On uniprocessor configurations this macro is a compile time constant which
-  evaluates to one.
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-regions.yml b/spec/if/rtems/config/get-maximum-regions.yml
deleted file mode 100644
index de0f108..0000000
--- a/spec/if/rtems/config/get-maximum-regions.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Regions which are configured for
-  this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_regions
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-semaphores.yml b/spec/if/rtems/config/get-maximum-semaphores.yml
deleted file mode 100644
index 3212049..0000000
--- a/spec/if/rtems/config/get-maximum-semaphores.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Semaphores which are configured for
-  this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_semaphores
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-tasks.yml b/spec/if/rtems/config/get-maximum-tasks.yml
deleted file mode 100644
index 59ccf15..0000000
--- a/spec/if/rtems/config/get-maximum-tasks.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Tasks which are configured for this
-  application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_tasks
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-maximum-timers.yml b/spec/if/rtems/config/get-maximum-timers.yml
deleted file mode 100644
index 60286be..0000000
--- a/spec/if/rtems/config/get-maximum-timers.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the maximum number of Classic API Timers which are configured for
-  this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uint32_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_maximum_timers
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-microseconds-per-tick.yml b/spec/if/rtems/config/get-microseconds-per-tick.yml
deleted file mode 100644
index edbb152..0000000
--- a/spec/if/rtems/config/get-microseconds-per-tick.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the number of microseconds per tick configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/watchdog/microseconds-per-tick:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_microseconds_per_tick
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-milliseconds-per-tick.yml b/spec/if/rtems/config/get-milliseconds-per-tick.yml
deleted file mode 100644
index 40f9c94..0000000
--- a/spec/if/rtems/config/get-milliseconds-per-tick.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the number of milliseconds per tick configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: (${/if/impl/watchdog/microseconds-per-tick:/name} / 1000)
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_milliseconds_per_tick
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-nanoseconds-per-tick.yml b/spec/if/rtems/config/get-nanoseconds-per-tick.yml
deleted file mode 100644
index f7dd408..0000000
--- a/spec/if/rtems/config/get-nanoseconds-per-tick.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the number of microseconds per tick configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/watchdog/nanoseconds-per-tick:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_nanoseconds_per_tick
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-number-of-initial-extensions.yml b/spec/if/rtems/config/get-number-of-initial-extensions.yml
deleted file mode 100644
index bce2364..0000000
--- a/spec/if/rtems/config/get-number-of-initial-extensions.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the number of initial extensions configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ((${/if/c/uint32_t:/name}) ${/if/impl/userext/initial-count:/name})
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_number_of_initial_extensions
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-stack-allocate-hook.yml b/spec/if/rtems/config/get-stack-allocate-hook.yml
deleted file mode 100644
index fc1e346..0000000
--- a/spec/if/rtems/config/get-stack-allocate-hook.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the thread stack allocator allocate hook.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/stack/allocator-allocate:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_stack_allocate_hook
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-stack-allocate-init-hook.yml b/spec/if/rtems/config/get-stack-allocate-init-hook.yml
deleted file mode 100644
index fbdb712..0000000
--- a/spec/if/rtems/config/get-stack-allocate-init-hook.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the thread stack allocator initialization hook.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/stack/allocator-initialize:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_stack_allocate_init_hook
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-stack-allocator-avoids-work-space.yml b/spec/if/rtems/config/get-stack-allocator-avoids-work-space.yml
deleted file mode 100644
index 40f0f73..0000000
--- a/spec/if/rtems/config/get-stack-allocator-avoids-work-space.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns true, if the thread stack allocator avoids the workspace, otherwise
-  returns false.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/stack/allocator-avoids-workspace:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_stack_allocator_avoids_work_space
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-stack-free-hook.yml b/spec/if/rtems/config/get-stack-free-hook.yml
deleted file mode 100644
index 38aba0d..0000000
--- a/spec/if/rtems/config/get-stack-free-hook.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the thread stack allocator free hook.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/stack/allocator-free:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_stack_free_hook
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-stack-space-size.yml b/spec/if/rtems/config/get-stack-space-size.yml
deleted file mode 100644
index f00ae0e..0000000
--- a/spec/if/rtems/config/get-stack-space-size.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the thread stack space size in bytes of configured for this
-  application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/c/uintptr_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_stack_space_size
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-ticks-per-timeslice.yml b/spec/if/rtems/config/get-ticks-per-timeslice.yml
deleted file mode 100644
index cdf86cc..0000000
--- a/spec/if/rtems/config/get-ticks-per-timeslice.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the ticks per timeslice configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/watchdog/ticks-per-timeslice:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_ticks_per_timeslice
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-unified-work-area.yml b/spec/if/rtems/config/get-unified-work-area.yml
deleted file mode 100644
index 03d0b00..0000000
--- a/spec/if/rtems/config/get-unified-work-area.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns true, if the RTEMS Workspace and C Program Heap are unified,
-  otherwise returns false.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/wkspace/is-unified:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_unified_work_area
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-user-extension-table.yml b/spec/if/rtems/config/get-user-extension-table.yml
deleted file mode 100644
index 92218c3..0000000
--- a/spec/if/rtems/config/get-user-extension-table.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the pointer to the initial extensions table configured for this
-  application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/userext/initial-extensions:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_user_extension_table
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-user-multiprocessing-table.yml b/spec/if/rtems/config/get-user-multiprocessing-table.yml
deleted file mode 100644
index 9dfb2ac..0000000
--- a/spec/if/rtems/config/get-user-multiprocessing-table.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the pointer to the MPCI configuration table configured for this
-  application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/c/null:/name}
-  variants:
-  - definition: ( &${/if/impl/mpci/configuration:/name} )
-    enabled-by: defined(${/if/build-options/multiprocessing:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_user_multiprocessing_table
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/get-work-space-size.yml b/spec/if/rtems/config/get-work-space-size.yml
deleted file mode 100644
index d0c9486..0000000
--- a/spec/if/rtems/config/get-work-space-size.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the RTEMS Workspace size in bytes configured for this application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    (${/if/impl/wkspace/size:/name} +
-      (${get-stack-allocator-avoids-work-space:/name}() ?
-        0 : ${get-stack-space-size:/name}()))
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_configuration_get_work_space_size
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/group.yml b/spec/if/rtems/config/group.yml
deleted file mode 100644
index c837095..0000000
--- a/spec/if/rtems/config/group.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains defines and macros to create an application configuration
-  as well as functions to get values of the application configuration.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIConfig
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../../api
-name: Application Configuration
-text: |
-  The API shall provide an interface to the application configuration.
-type: interface
diff --git a/spec/if/rtems/config/has-hardware-fp.yml b/spec/if/rtems/config/has-hardware-fp.yml
deleted file mode 100644
index a44f4ab..0000000
--- a/spec/if/rtems/config/has-hardware-fp.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/cpu/hardware-fp:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_HAS_HARDWARE_FP
-notes: null
-type: interface
diff --git a/spec/if/rtems/config/header-2.yml b/spec/if/rtems/config/header-2.yml
deleted file mode 100644
index 99bebfc..0000000
--- a/spec/if/rtems/config/header-2.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This header file defines parts of the application configuration information
-  API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/config.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/config/header.yml b/spec/if/rtems/config/header.yml
deleted file mode 100644
index dcaddd4..0000000
--- a/spec/if/rtems/config/header.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This header file defines parts of the application configuration information
-  API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- enabled-by: RTEMS_MULTIPROCESSING
-  role: interface-include
-  uid: /if/impl/mpci/header
-- enabled-by: RTEMS_MULTIPROCESSING
-  role: interface-include
-  uid: /if/rtems/types/header
-- enabled-by: true
-  role: interface-include
-  uid: header-2
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/config.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/config/resource-is-unlimited.yml b/spec/if/rtems/config/resource-is-unlimited.yml
deleted file mode 100644
index f4f7504..0000000
--- a/spec/if/rtems/config/resource-is-unlimited.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns true, if the resource is unlimited, otherwise returns false.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/object/is-unlimited:/name}(${.:/params[0]/name})
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_resource_is_unlimited
-notes: null
-params:
-- description: is the resource number.
-  dir: null
-  name: _resource
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/resource-maximum-per-allocation.yml b/spec/if/rtems/config/resource-maximum-per-allocation.yml
deleted file mode 100644
index 58f538c..0000000
--- a/spec/if/rtems/config/resource-maximum-per-allocation.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the resource maximum number per allocation.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/object/maximum-per-allocation:/name}(${.:/params[0]/name})
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_resource_maximum_per_allocation
-notes: null
-params:
-- description: is the resource number.
-  dir: null
-  name: _resource
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/config/stack-allocate-hook.yml b/spec/if/rtems/config/stack-allocate-hook.yml
deleted file mode 100644
index 1219d06..0000000
--- a/spec/if/rtems/config/stack-allocate-hook.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The thread stack allocator allocate handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/stack/allocator-allocate-type:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_stack_allocate_hook
-notes: null
-type: interface
diff --git a/spec/if/rtems/config/stack-allocate-init-hook.yml b/spec/if/rtems/config/stack-allocate-init-hook.yml
deleted file mode 100644
index 55d2390..0000000
--- a/spec/if/rtems/config/stack-allocate-init-hook.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The thread stack allocator initialization handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/stack/allocator-initialize-type:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_stack_allocate_init_hook
-notes: null
-type: interface
diff --git a/spec/if/rtems/config/stack-free-hook.yml b/spec/if/rtems/config/stack-free-hook.yml
deleted file mode 100644
index 7486ac0..0000000
--- a/spec/if/rtems/config/stack-free-hook.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The thread stack allocator free handler.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/stack/allocator-free-type:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_stack_free_hook
-notes: null
-type: interface
diff --git a/spec/if/rtems/config/unlimited-objects.yml b/spec/if/rtems/config/unlimited-objects.yml
deleted file mode 100644
index f0f588f..0000000
--- a/spec/if/rtems/config/unlimited-objects.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This flag is used in resource numbers to indicate an unlimited resource.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/object/unlimited-objects:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_UNLIMITED_OBJECTS
-notes: null
-type: interface
diff --git a/spec/if/rtems/dpmem/create.yml b/spec/if/rtems/dpmem/create.yml
deleted file mode 100644
index 4a68673..0000000
--- a/spec/if/rtems/dpmem/create.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - void *${.:/params[2]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[3]/name}
-    - ${../types/id:/name} *${.:/params[4]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_port_create
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: name
-- description: '%'
-  dir: null
-  name: internal_start
-- description: '%'
-  dir: null
-  name: external_start
-- description: '%'
-  dir: null
-  name: length
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/dpmem/delete.yml b/spec/if/rtems/dpmem/delete.yml
deleted file mode 100644
index 6b5f31c..0000000
--- a/spec/if/rtems/dpmem/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_port_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/dpmem/external-to-internal.yml b/spec/if/rtems/dpmem/external-to-internal.yml
deleted file mode 100644
index 54012d0..0000000
--- a/spec/if/rtems/dpmem/external-to-internal.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - void **${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_port_external_to_internal
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: external
-- description: '%'
-  dir: null
-  name: internal
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/dpmem/group.yml b/spec/if/rtems/dpmem/group.yml
deleted file mode 100644
index c07fde9..0000000
--- a/spec/if/rtems/dpmem/group.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Dual-Ported Memory Manager provides a mechanism for converting addresses
-  between internal and external representations for multiple dual-ported memory
-  areas (DPMA).
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicDPMem
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Dual-Ported Memory Manager
-text: |
-  The Classic API shall provide an interface to the Dual-Ported Memory Manager.
-type: interface
diff --git a/spec/if/rtems/dpmem/header.yml b/spec/if/rtems/dpmem/header.yml
deleted file mode 100644
index 5aa6b51..0000000
--- a/spec/if/rtems/dpmem/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Dual-Ported Memory Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/dpmem.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/dpmem/ident.yml b/spec/if/rtems/dpmem/ident.yml
deleted file mode 100644
index 5d609e0..0000000
--- a/spec/if/rtems/dpmem/ident.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a port object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the port identifier associated with the port name
-  specified in ``${.:/params[0]/name}``.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_port_ident
-notes: |
-  If the port name is not unique, then the port identifier will match the first
-  port with that name in the search order.  However, this port identifier is
-  not guaranteed to correspond to the desired port.  The port identifier is
-  used with other dual-ported memory related directives to access the port.
-
-  The objects are searched from lowest to the highest index.  Only the local
-  node is searched.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the local node.
-    value: ${../status/invalid-name:/name}
-type: interface
diff --git a/spec/if/rtems/dpmem/internal-to-external.yml b/spec/if/rtems/dpmem/internal-to-external.yml
deleted file mode 100644
index 5cb7531..0000000
--- a/spec/if/rtems/dpmem/internal-to-external.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - void **${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_port_internal_to_external
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: internal
-- description: '%'
-  dir: null
-  name: external
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/event/group.yml b/spec/if/rtems/event/group.yml
deleted file mode 100644
index 05bc560..0000000
--- a/spec/if/rtems/event/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Event Manager provides a high performance method of inter-task
-  communication and synchronization.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicEvent
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Event Manager
-text: |
-  The Classic API shall provide an interface to the Event Manager.
-type: interface
diff --git a/spec/if/rtems/event/header.yml b/spec/if/rtems/event/header.yml
deleted file mode 100644
index eff99c1..0000000
--- a/spec/if/rtems/event/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Event Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/event.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/event/receive.yml b/spec/if/rtems/event/receive.yml
deleted file mode 100644
index ce1f7f9..0000000
--- a/spec/if/rtems/event/receive.yml
+++ /dev/null
@@ -1,122 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Receives or gets an event set.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${set:/name} ${.:/params[0]/name}
-    - ${../options/option:/name} ${.:/params[1]/name}
-    - ${../types/interval:/name} ${.:/params[2]/name}
-    - ${set:/name} *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive can be used to
-
-  * get the pending events of the calling task, or
-
-  * receive events.
-
-  To *get the pending events* use the constant ${pending-events:/name} for the
-  ``${.:/params[0]/name}`` parameter.  The pending events are returned to the
-  calling task but the event set of the task is left unaltered.  The
-  ``${.:/params[1]/name}`` and ``${.:params[2]/name}`` parameters are ignored
-  in this case.  The directive returns immediately and does not block.
-
-  To *receive events* you have to define an input event condition and some
-  options.  The option set specified in ``${.:/params[1]/name}`` defines
-
-  * if the task will wait or poll for the events, and
-
-  * if the task wants to receive all or any of the input events.
-
-  The option set is built through a *bitwise or* of the option constants
-  described below.
-
-  The task can *wait* or *poll* for the events.
-
-  * Waiting for events is the default and can be emphasized through the use of
-    the ${../options/wait:/name} option.  The ``${.:/params[2]/name}``
-    parameter defines how long the task is willing to wait.  Use
-    ${../types/no-timeout:/name} to wait potentially forever, otherwise set a
-    timeout interval in clock ticks.
-
-  * Not waiting for events (polling) is selected by the
-    ${../options/no-wait:/name} option.  If this option is defined, then the
-    ``${.:/params[2]/name}`` parameter is ignored.
-
-  The task can receive *all* or *any* of the input events specified in
-  ``${.:/params[0]/name}``.
-
-  * Receiving all input events is the default and can be emphasized through the use
-    of the ${../options/event-all:/name} option.
-
-  * Receiving any of the input events is selected by the
-    ${../options/event-any:/name} option.
-
-  To receive all events use the constant ${all-events:/name} for the
-  ``${.:/params[0]/name}`` parameter.  This constant is identical to
-  ${event-0:/name} | ... | ${event-31:/name} and should not be confused with
-  the option ${../options/event-all:/name}.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_event_receive
-notes: |
-  This directive shall be called by a task.  Calling this directive from
-  interrupt context is undefined behaviour.
-
-  This directive only affects the events specified in ``${.:/params[0]/name}``.
-  Any pending events that do not correspond to any of the events specified in
-  ``${.:/params[0]/name}`` will be left pending.
-
-  A task can *receive all of the pending events* by calling the directive with
-  a value of ${all-events:/name} for the ``${.:/params[0]/name}`` parameter and
-  ${../options/no-wait:/name} | ${../options/event-any:/name} for the
-  ``${.:/params[1]/name}`` parameter.  The pending events are returned to the
-  calling task and the event set of the task is cleared.  If no events are
-  pending then the ${../status/unsatisfied:/name} status code will be returned.
-params:
-- description: |
-    is the event set of interest.  Use ${pending-events:/name} to get the
-    pending events.
-  dir: null
-  name: event_in
-- description: is the option set.
-  dir: null
-  name: option_set
-- description: |
-    is the timeout in clock ticks if the ${../options/wait:/name} option was
-    set.  Use ${../types/no-timeout:/name} to wait potentially forever.
-  dir: null
-  name: ticks
-- description: |
-    is the pointer to an event set.  The received or pending events are stored
-    in the referenced event set if the operation was successful.
-  dir: null
-  name: event_out
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ``${.:/params[3]/name}`` parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The events of interest were not immediately available.
-    value: ${../status/unsatisfied:/name}
-  - description: |
-      The events of interest were not available within the specified timeout
-      interval.
-    value: ${../status/timeout:/name}
-type: interface
diff --git a/spec/if/rtems/event/send.yml b/spec/if/rtems/event/send.yml
deleted file mode 100644
index 679a771..0000000
--- a/spec/if/rtems/event/send.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Sends an event set to a task.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${set:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive sends an event set, ``${.:/params[1]/name}``, to the task
-  specified by ``${.:/params[0]/name}``.  Based upon the state of the target
-  task, one of the following situations applies:
-
-  * The target task is blocked waiting for events, then
-
-    * if the waiting task's input event condition is satisfied, then the task
-      is made ready for execution, or
-
-    * otherwise, the event set is posted but left pending and the task remains
-      blocked.
-
-  * The target task is not waiting for events, then the event set is posted and
-    left pending.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_event_send
-notes: |
-  Events can be sent by tasks or an ${/glossary/isr:/term}.
-
-  Specifying ${../tasks/self-define:/name} for ``${.:/params[0]/name}`` results
-  in the event set being sent to the calling task.
-
-  The event set to send shall be built by a *bitwise or* of the desired events.
-  The set of valid events is ${event-0:/name} through ${event-31:/name}.  If an
-  event is not explicitly specified in the set, then it is not present.
-
-  Identical events sent to a task are not queued.  In other words, the second,
-  and subsequent, posting of an event to a task before it can perform an
-  ${receive:/name} has no effect.
-
-  The calling task will be preempted if it has preemption enabled and a higher
-  priority task is unblocked as the result of this directive.
-
-  Sending an event set to a global task which does not reside on the local node
-  will generate a request telling the remote node to send the event set to the
-  appropriate task.
-params:
-- description: is the identifier of the target task to receive the event set.
-  dir: null
-  name: id
-- description: is the event set to send.
-  dir: null
-  name: event_in
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      There was no task with the specified identifier.
-    value: ${../status/invalid-id:/name}
-type: interface
diff --git a/spec/if/rtems/event/set.yml b/spec/if/rtems/event/set.yml
deleted file mode 100644
index c5324b5..0000000
--- a/spec/if/rtems/event/set.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This integer type can hold an event set of up to 32 events represented as a
-  bit field.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_event_set
-notes: null
-type: interface
diff --git a/spec/if/rtems/event/system-receive.yml b/spec/if/rtems/event/system-receive.yml
deleted file mode 100644
index f03a5d0..0000000
--- a/spec/if/rtems/event/system-receive.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Receives or gets a system event set.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${set:/name} ${.:/params[0]/name}
-    - ${../options/option:/name} ${.:/params[1]/name}
-    - ${../types/interval:/name} ${.:/params[2]/name}
-    - ${set:/name} *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive performs the same actions as the ${receive:/name} directive
-  except that it operates with a different set of events for each task.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-name: rtems_event_system_receive
-notes: null
-params:
-- description: |
-    is the event set of interest.  Use ${pending-events:/name} to get the
-    pending events.
-  dir: null
-  name: event_in
-- description: is the option set.
-  dir: null
-  name: option_set
-- description: |
-    is the timeout in clock ticks if the ${../options/wait:/name} option was
-    set.  Use ${../types/no-timeout:/name} to wait potentially forever.
-  dir: null
-  name: ticks
-- description: |
-    is the pointer to an event set.  The received or pending events are stored
-    in the referenced event set if the operation was successful.
-  dir: null
-  name: event_out
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/event/system-send.yml b/spec/if/rtems/event/system-send.yml
deleted file mode 100644
index 11b93b3..0000000
--- a/spec/if/rtems/event/system-send.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Sends a system event set to a task.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${set:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-name: rtems_event_system_send
-notes: null
-params:
-- description: is the identifier of the target task to receive the event set.
-  dir: null
-  name: id
-- description: is the event set to send.
-  dir: null
-  name: event_in
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/event/transient-clear.yml b/spec/if/rtems/event/transient-clear.yml
deleted file mode 100644
index 363b5a2..0000000
--- a/spec/if/rtems/event/transient-clear.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Clears the transient event.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: |
-      ${set:/name} event_out;
-
-      (void) ${system-receive:/name}(
-        ${system-transient:/name},
-        ${../options/event-all:/name} | ${../options/no-wait:/name},
-        0,
-        &event_out
-      );
-    params: []
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-name: rtems_event_transient_clear
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/event/transient-receive.yml b/spec/if/rtems/event/transient-receive.yml
deleted file mode 100644
index 5de7617..0000000
--- a/spec/if/rtems/event/transient-receive.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Receives the transient event.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: |
-      ${set:/name} event_out;
-
-      return ${system-receive:/name}(
-        ${system-transient:/name},
-        ${../options/event-all:/name} | ${.:/params[0]/name},
-        ${.:/params[1]/name},
-        &event_out
-      );
-    params:
-    - ${../options/option:/name} ${.:/params[0]/name}
-    - ${../types/interval:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-name: rtems_event_transient_receive
-notes: null
-params:
-- description: is the option set.
-  dir: null
-  name: option_set
-- description: is the optional timeout in clock ticks.
-  dir: null
-  name: ticks
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/event/transient-send.yml b/spec/if/rtems/event/transient-send.yml
deleted file mode 100644
index 38f6e25..0000000
--- a/spec/if/rtems/event/transient-send.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Sends the transient event to the specified task.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: |
-      return ${system-send:/name}( ${.:/params[0]/name}, ${system-transient:/name} );
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-name: rtems_event_transient_send
-notes: null
-params:
-- description: is the identifier of the task to receive the transient event.
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/fatal/error-occurred.yml b/spec/if/rtems/fatal/error-occurred.yml
deleted file mode 100644
index cffb6dc..0000000
--- a/spec/if/rtems/fatal/error-occurred.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/uint32_t:/name} ${.:/params[0]/name}
-    return: ${../basedefs/no-return:/name} void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_fatal_error_occurred
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: the_error
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/fatal/exception-frame-print.yml b/spec/if/rtems/fatal/exception-frame-print.yml
deleted file mode 100644
index 908513b..0000000
--- a/spec/if/rtems/fatal/exception-frame-print.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: |
-      ${/if/impl/cpu/exception-frame-print:/name}( ${.:/params[0]/name} );
-    params:
-    - const ${exception-frame:/name} *${.:/params[0]/name}
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_exception_frame_print
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: frame
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/fatal/exception-frame.yml b/spec/if/rtems/fatal/exception-frame.yml
deleted file mode 100644
index 05be037..0000000
--- a/spec/if/rtems/fatal/exception-frame.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/cpu/exception-frame:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_exception_frame
-notes: null
-type: interface
diff --git a/spec/if/rtems/fatal/fatal.yml b/spec/if/rtems/fatal/fatal.yml
deleted file mode 100644
index 72ccaeb..0000000
--- a/spec/if/rtems/fatal/fatal.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: |
-      ${/if/impl/interr/terminate:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} );
-    params:
-    - ${../userext/fatal-source:/name} ${.:/params[0]/name}
-    - ${../userext/fatal-code:/name} ${.:/params[1]/name}
-    return: ${../basedefs/no-return:/name} void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_fatal
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: fatal_source
-- description: '%'
-  dir: null
-  name: error_code
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/fatal/group.yml b/spec/if/rtems/fatal/group.yml
deleted file mode 100644
index 5d7ad40..0000000
--- a/spec/if/rtems/fatal/group.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Fatal Error Manager processes all fatal or irrecoverable errors and other
-  sources of system termination (for example after ``exit()``).  Fatal errors
-  are identified by the fatal source and error code pair.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicFatal
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Fatal Error Manager
-text: |
-  The Classic API shall provide an interface to the Fatal Error Manager.
-type: interface
diff --git a/spec/if/rtems/fatal/header.yml b/spec/if/rtems/fatal/header.yml
deleted file mode 100644
index 6fbe3be..0000000
--- a/spec/if/rtems/fatal/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Fatal Error Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/fatal.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/fatal/internal-error-text.yml b/spec/if/rtems/fatal/internal-error-text.yml
deleted file mode 100644
index 51a27e9..0000000
--- a/spec/if/rtems/fatal/internal-error-text.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../userext/fatal-code:/name} ${.:/params[0]/name}
-    return: const char *
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_internal_error_text
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: error
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/fatal/panic.yml b/spec/if/rtems/fatal/panic.yml
deleted file mode 100644
index 2a11914..0000000
--- a/spec/if/rtems/fatal/panic.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const char *${.:/params[0]/name}
-    - '...'
-    return: |
-      ${../basedefs/no-return:/name} ${../basedefs/printflike:/name}( 1, 2 ) void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_panic
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: fmt
-- description: '%'
-  dir: null
-  name: '...'
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/fatal/source-text.yml b/spec/if/rtems/fatal/source-text.yml
deleted file mode 100644
index 1d52f85..0000000
--- a/spec/if/rtems/fatal/source-text.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../userext/fatal-source:/name} ${.:/params[0]/name}
-    return: const char *
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_fatal_source_text
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: source
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/group.yml b/spec/if/rtems/group.yml
deleted file mode 100644
index 332eb86..0000000
--- a/spec/if/rtems/group.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains the Classic API groups.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassic
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../api
-name: Classic
-text: |
-  The API shall contain the Classic API.
-type: interface
diff --git a/spec/if/rtems/header.yml b/spec/if/rtems/header.yml
deleted file mode 100644
index 2ce3fbd..0000000
--- a/spec/if/rtems/header.yml
+++ /dev/null
@@ -1,87 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Classic API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/barrier/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/cache/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/clock/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/config/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/dpmem/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/event/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/fatal/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/init/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/intr/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/io/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/message/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/object/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/options/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/part/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/ratemon/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/region/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/sem/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/signal/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/status/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/support/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/tasks/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/timer/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/types/header
-- enabled-by: []
-  role: interface-include
-  uid: /if/rtems/userext/header
-- enabled-by: RTEMS_MULTIPROCESSING
-  role: interface-include
-  uid: /if/rtems/mp/header
-path: rtems.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/init/group.yml b/spec/if/rtems/init/group.yml
deleted file mode 100644
index 01abba3..0000000
--- a/spec/if/rtems/init/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains directives to initialize and shutdown the RTEMS
-  executive.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicInit
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Initialization and Shutdown
-text: |
-  The Classic API shall provide an interface to the Initialization and Shutdown
-  Manager.
-type: interface
diff --git a/spec/if/rtems/init/header.yml b/spec/if/rtems/init/header.yml
deleted file mode 100644
index b222878..0000000
--- a/spec/if/rtems/init/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Initialization Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/init.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/init/initialize-executive.yml b/spec/if/rtems/init/initialize-executive.yml
deleted file mode 100644
index d8a7bcf..0000000
--- a/spec/if/rtems/init/initialize-executive.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Initializes the system and starts multitasking.
-copyrights:
-- Copyright (C) 2015, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/rtems/basedefs/no-return:/name} void
-  variants: []
-description: |
-  Iterates through the system initialization linker set and invokes the
-  registered handlers.  The final step is to start multitasking.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_initialize_executive
-notes: |
-  This directive should be called by boot_card() only.
-
-  This directive does not return to the caller.  Errors in the initialization
-  sequence are usually fatal and lead to a system termination.
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/init/shutdown-executive.yml b/spec/if/rtems/init/shutdown-executive.yml
deleted file mode 100644
index 517b0cd..0000000
--- a/spec/if/rtems/init/shutdown-executive.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Shuts down the RTEMS environment.
-copyrights:
-- Copyright (C) 2015, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/uint32_t:/name} ${.:/params[0]/name}
-    return: ${/if/rtems/basedefs/no-return:/name} void
-  variants: []
-description: |
-  The invocation of this directive results in the RTEMS environment being
-  shutdown and multitasking halted.  The system is terminated with a fatal
-  source of RTEMS_FATAL_SOURCE_EXIT and the specified result code.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_shutdown_executive
-notes: |
-  This directive does not return to the caller.
-params:
-- description: is the result code.
-  dir: null
-  name: result
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/catch.yml b/spec/if/rtems/intr/catch.yml
deleted file mode 100644
index 9239340..0000000
--- a/spec/if/rtems/intr/catch.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${isr-entry:/name} ${.:/params[0]/name}
-    - ${vector-number:/name} ${.:/params[1]/name}
-    - ${isr-entry:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_catch
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: new_isr_handler
-- description: '%'
-  dir: null
-  name: vector
-- description: '%'
-  dir: null
-  name: old_isr_handler
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/disable.yml b/spec/if/rtems/intr/disable.yml
deleted file mode 100644
index 9f55ab9..0000000
--- a/spec/if/rtems/intr/disable.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/local-disable:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by:
-  not: RTEMS_SMP
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_disable
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _isr_cookie
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/enable.yml b/spec/if/rtems/intr/enable.yml
deleted file mode 100644
index 1ef3dc7..0000000
--- a/spec/if/rtems/intr/enable.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/local-enable:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by:
-  not: RTEMS_SMP
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_enable
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _isr_cookie
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/flash.yml b/spec/if/rtems/intr/flash.yml
deleted file mode 100644
index d118459..0000000
--- a/spec/if/rtems/intr/flash.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/local-flash:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by:
-  not: RTEMS_SMP
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_flash
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _isr_cookie
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/group.yml b/spec/if/rtems/intr/group.yml
deleted file mode 100644
index 9208d41..0000000
--- a/spec/if/rtems/intr/group.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Any real-time executive must provide a mechanism for quick response to
-  externally generated interrupts to satisfy the critical time constraints of
-  the application.  The Interrupt Manager provides this mechanism for RTEMS.
-  This manager permits quick interrupt response times by providing the critical
-  ability to alter task execution which allows a task to be preempted upon exit
-  from an ISR.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicIntr
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Interrupt Manager
-text: |
-  The Classic API shall provide an interface to the Interrupt Manager.
-type: interface
diff --git a/spec/if/rtems/intr/header.yml b/spec/if/rtems/intr/header.yml
deleted file mode 100644
index 1a3e075..0000000
--- a/spec/if/rtems/intr/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Interrupt Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/intr.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/intr/is-in-progress.yml b/spec/if/rtems/intr/is-in-progress.yml
deleted file mode 100644
index a9f6964..0000000
--- a/spec/if/rtems/intr/is-in-progress.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/is-in-progress:/name}()
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_is_in_progress
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/isr-entry.yml b/spec/if/rtems/intr/isr-entry.yml
deleted file mode 100644
index 6e2f689..0000000
--- a/spec/if/rtems/intr/isr-entry.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Interrupt service routines installed by ${catch:/name} shall have this
-  function pointer type.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: void ( *${.:/name} )( void * )
-  variants:
-  - definition: ${/if/impl/isr/handler-entry:/name} ${.:/name}
-    enabled-by: ${/if/impl/cpu/simple-vectored-interrupts:/name} == ${../basedefs/true:/name}
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_isr_entry
-notes: null
-type: interface
diff --git a/spec/if/rtems/intr/isr.yml b/spec/if/rtems/intr/isr.yml
deleted file mode 100644
index 908e5f6..0000000
--- a/spec/if/rtems/intr/isr.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/handler:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_isr
-notes: null
-type: interface
diff --git a/spec/if/rtems/intr/level.yml b/spec/if/rtems/intr/level.yml
deleted file mode 100644
index 9d2b258..0000000
--- a/spec/if/rtems/intr/level.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/level:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_level
-notes: null
-type: interface
diff --git a/spec/if/rtems/intr/local-disable.yml b/spec/if/rtems/intr/local-disable.yml
deleted file mode 100644
index b332f8d..0000000
--- a/spec/if/rtems/intr/local-disable.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/local-disable:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_local_disable
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _isr_cookie
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/local-enable.yml b/spec/if/rtems/intr/local-enable.yml
deleted file mode 100644
index 0a6ba18..0000000
--- a/spec/if/rtems/intr/local-enable.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/local-enable:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_local_enable
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _isr_cookie
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-acquire-isr.yml b/spec/if/rtems/intr/lock-acquire-isr.yml
deleted file mode 100644
index 0f9e7fc..0000000
--- a/spec/if/rtems/intr/lock-acquire-isr.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: do { (void) ${.:/params[1]/name}; } while ( 0 )
-  variants:
-  - definition: |
-      ${/if/impl/smp/lock-acquire:/name}(
-        &( ${.:/params[0]/name} )->Lock,
-        &( ${.:/params[1]/name} )->Lock_context
-      )
-    enabled-by: defined(${/if/build-options/smp:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock_acquire_isr
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _lock
-- description: '%'
-  dir: null
-  name: _lock_context
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-acquire.yml b/spec/if/rtems/intr/lock-acquire.yml
deleted file mode 100644
index 8960708..0000000
--- a/spec/if/rtems/intr/lock-acquire.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/isr/lock-isr-disable-acquire:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock_acquire
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _lock
-- description: '%'
-  dir: null
-  name: _lock_context
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-context.yml b/spec/if/rtems/intr/lock-context.yml
deleted file mode 100644
index 26406a5..0000000
--- a/spec/if/rtems/intr/lock-context.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/lock-context:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock_context
-notes: null
-type: interface
diff --git a/spec/if/rtems/intr/lock-declare.yml b/spec/if/rtems/intr/lock-declare.yml
deleted file mode 100644
index 198eae8..0000000
--- a/spec/if/rtems/intr/lock-declare.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/isr/lock-declare:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_INTERRUPT_LOCK_DECLARE
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _qualifier
-- description: '%'
-  dir: null
-  name: _designator
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-define.yml b/spec/if/rtems/intr/lock-define.yml
deleted file mode 100644
index afbc484..0000000
--- a/spec/if/rtems/intr/lock-define.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/isr/lock-define:/name}( ${.:/params[0]/name}, ${.:/params[1]/name}, ${.:/params[2]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_INTERRUPT_LOCK_DEFINE
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _qualifier
-- description: '%'
-  dir: null
-  name: _designator
-- description: '%'
-  dir: null
-  name: _name
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-destroy.yml b/spec/if/rtems/intr/lock-destroy.yml
deleted file mode 100644
index ff9194e..0000000
--- a/spec/if/rtems/intr/lock-destroy.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/lock-destroy:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock_destroy
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _lock
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-initialize.yml b/spec/if/rtems/intr/lock-initialize.yml
deleted file mode 100644
index 10ea16d..0000000
--- a/spec/if/rtems/intr/lock-initialize.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/isr/lock-initialize:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock_initialize
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _lock
-- description: '%'
-  dir: null
-  name: _name
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-initializer.yml b/spec/if/rtems/intr/lock-initializer.yml
deleted file mode 100644
index 9d1a12e..0000000
--- a/spec/if/rtems/intr/lock-initializer.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/lock-initializer:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_INTERRUPT_LOCK_INITIALIZER
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _name
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-isr-disable.yml b/spec/if/rtems/intr/lock-isr-disable.yml
deleted file mode 100644
index 36f2b26..0000000
--- a/spec/if/rtems/intr/lock-isr-disable.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/lock-isr-disable:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock_interrupt_disable
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _lock_context
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-member.yml b/spec/if/rtems/intr/lock-member.yml
deleted file mode 100644
index 7a73c5e..0000000
--- a/spec/if/rtems/intr/lock-member.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/lock-member:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_INTERRUPT_LOCK_MEMBER
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _designator
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-reference.yml b/spec/if/rtems/intr/lock-reference.yml
deleted file mode 100644
index 5e1f6b9..0000000
--- a/spec/if/rtems/intr/lock-reference.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/isr/lock-reference:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_INTERRUPT_LOCK_REFERENCE
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _designator
-- description: '%'
-  dir: null
-  name: _target
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-release-isr.yml b/spec/if/rtems/intr/lock-release-isr.yml
deleted file mode 100644
index e3f377c..0000000
--- a/spec/if/rtems/intr/lock-release-isr.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: do { (void) ${.:/params[1]/name}; } while ( 0 )
-  variants:
-  - definition: |
-      ${/if/impl/smp/lock-release:/name}(
-        &( ${.:/params[0]/name} )->Lock,
-        &( ${.:/params[1]/name} )->Lock_context
-      )
-    enabled-by: defined(${/if/build-options/smp:/name})
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock_release_isr
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _lock
-- description: '%'
-  dir: null
-  name: _lock_context
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock-release.yml b/spec/if/rtems/intr/lock-release.yml
deleted file mode 100644
index 973095e..0000000
--- a/spec/if/rtems/intr/lock-release.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/isr/lock-release-isr-enable:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock_release
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _lock
-- description: '%'
-  dir: null
-  name: _lock_context
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/intr/lock.yml b/spec/if/rtems/intr/lock.yml
deleted file mode 100644
index b687a86..0000000
--- a/spec/if/rtems/intr/lock.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/lock-control:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_lock
-notes: null
-type: interface
diff --git a/spec/if/rtems/intr/vector-number.yml b/spec/if/rtems/intr/vector-number.yml
deleted file mode 100644
index 4011714..0000000
--- a/spec/if/rtems/intr/vector-number.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/isr/vector-number:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_vector_number
-notes: null
-type: interface
diff --git a/spec/if/rtems/io/close.yml b/spec/if/rtems/io/close.yml
deleted file mode 100644
index b290f48..0000000
--- a/spec/if/rtems/io/close.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    - ${device-minor-number:/name} ${.:/params[1]/name}
-    - void *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_close
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: minor
-- description: '%'
-  dir: null
-  name: argument
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/control.yml b/spec/if/rtems/io/control.yml
deleted file mode 100644
index ee9c30f..0000000
--- a/spec/if/rtems/io/control.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    - ${device-minor-number:/name} ${.:/params[1]/name}
-    - void *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_control
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: minor
-- description: '%'
-  dir: null
-  name: argument
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/device-driver.yml b/spec/if/rtems/io/device-driver.yml
deleted file mode 100644
index 474ca4d..0000000
--- a/spec/if/rtems/io/device-driver.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${../status/code:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_device_driver
-notes: null
-type: interface
diff --git a/spec/if/rtems/io/device-major-number.yml b/spec/if/rtems/io/device-major-number.yml
deleted file mode 100644
index a967aae..0000000
--- a/spec/if/rtems/io/device-major-number.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_device_major_number
-notes: null
-type: interface
diff --git a/spec/if/rtems/io/device-minor-number.yml b/spec/if/rtems/io/device-minor-number.yml
deleted file mode 100644
index 0a7e064..0000000
--- a/spec/if/rtems/io/device-minor-number.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_device_minor_number
-notes: null
-type: interface
diff --git a/spec/if/rtems/io/driver-error.yml b/spec/if/rtems/io/driver-error.yml
deleted file mode 100644
index 8d1cbe1..0000000
--- a/spec/if/rtems/io/driver-error.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    - ${device-minor-number:/name} ${.:/params[1]/name}
-    - void *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_driver_io_error
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: minor
-- description: '%'
-  dir: null
-  name: arg
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/group.yml b/spec/if/rtems/io/group.yml
deleted file mode 100644
index 74a4cf5..0000000
--- a/spec/if/rtems/io/group.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Input/Output Interface Manager provides a well-defined mechanism for
-  accessing device drivers and a structured methodology for organizing device
-  drivers.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicIO
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Input/Output Interface Manager
-text: |
-  The Classic API shall provide an interface to the Input/Output Interface Manager.
-type: interface
diff --git a/spec/if/rtems/io/header.yml b/spec/if/rtems/io/header.yml
deleted file mode 100644
index c817591..0000000
--- a/spec/if/rtems/io/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the IO Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/io.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/io/initialize.yml b/spec/if/rtems/io/initialize.yml
deleted file mode 100644
index 34aee21..0000000
--- a/spec/if/rtems/io/initialize.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    - ${device-minor-number:/name} ${.:/params[1]/name}
-    - void *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_initialize
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: minor
-- description: '%'
-  dir: null
-  name: argument
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/open.yml b/spec/if/rtems/io/open.yml
deleted file mode 100644
index 57e7c59..0000000
--- a/spec/if/rtems/io/open.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    - ${device-minor-number:/name} ${.:/params[1]/name}
-    - void *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_open
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: minor
-- description: '%'
-  dir: null
-  name: argument
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/read.yml b/spec/if/rtems/io/read.yml
deleted file mode 100644
index 227f175..0000000
--- a/spec/if/rtems/io/read.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    - ${device-minor-number:/name} ${.:/params[1]/name}
-    - void *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_read
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: minor
-- description: '%'
-  dir: null
-  name: argument
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/register-driver.yml b/spec/if/rtems/io/register-driver.yml
deleted file mode 100644
index e5f9217..0000000
--- a/spec/if/rtems/io/register-driver.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    - const rtems_driver_address_table *${.:/params[1]/name}
-    - ${device-major-number:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_register_driver
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: driver_table
-- description: '%'
-  dir: null
-  name: registered_major
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/register-name.yml b/spec/if/rtems/io/register-name.yml
deleted file mode 100644
index 8f70796..0000000
--- a/spec/if/rtems/io/register-name.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const char *${.:/params[0]/name}
-    - ${device-major-number:/name} ${.:/params[1]/name}
-    - ${device-minor-number:/name} ${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_register_name
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: device_name
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: minor
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/unregister-driver.yml b/spec/if/rtems/io/unregister-driver.yml
deleted file mode 100644
index 831cb76..0000000
--- a/spec/if/rtems/io/unregister-driver.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_unregister_driver
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/io/write.yml b/spec/if/rtems/io/write.yml
deleted file mode 100644
index 31e2a6c..0000000
--- a/spec/if/rtems/io/write.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${device-major-number:/name} ${.:/params[0]/name}
-    - ${device-minor-number:/name} ${.:/params[1]/name}
-    - void *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_io_write
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: major
-- description: '%'
-  dir: null
-  name: minor
-- description: '%'
-  dir: null
-  name: argument
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/message/broadcast.yml b/spec/if/rtems/message/broadcast.yml
deleted file mode 100644
index e62a4be..0000000
--- a/spec/if/rtems/message/broadcast.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - const void *${.:/params[1]/name}
-    - ${/if/c/size_t:/name} ${.:/params[2]/name}
-    - ${/if/c/uint32_t:/name} *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_broadcast
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: buffer
-- description: '%'
-  dir: null
-  name: size
-- description: '%'
-  dir: null
-  name: count
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/message/create.yml b/spec/if/rtems/message/create.yml
deleted file mode 100644
index 345af9f..0000000
--- a/spec/if/rtems/message/create.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[1]/name}
-    - ${/if/c/size_t:/name} ${.:/params[2]/name}
-    - ${../attr/attribute:/name} ${.:/params[3]/name}
-    - ${../types/id:/name} *${.:/params[4]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_create
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: name
-- description: '%'
-  dir: null
-  name: count
-- description: '%'
-  dir: null
-  name: max_message_size
-- description: '%'
-  dir: null
-  name: attribute_set
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/message/delete.yml b/spec/if/rtems/message/delete.yml
deleted file mode 100644
index acf9074..0000000
--- a/spec/if/rtems/message/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/message/flush.yml b/spec/if/rtems/message/flush.yml
deleted file mode 100644
index fe130b2..0000000
--- a/spec/if/rtems/message/flush.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_flush
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: count
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/message/get-number-pending.yml b/spec/if/rtems/message/get-number-pending.yml
deleted file mode 100644
index 964ecc4..0000000
--- a/spec/if/rtems/message/get-number-pending.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_get_number_pending
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: count
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/message/group.yml b/spec/if/rtems/message/group.yml
deleted file mode 100644
index 579b70a..0000000
--- a/spec/if/rtems/message/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Message Manager provides communication and synchronization capabilities
-  using RTEMS message queues.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicMessage
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Message Manager
-text: |
-  The Classic API shall provide an interface to the Message Manager.
-type: interface
diff --git a/spec/if/rtems/message/header.yml b/spec/if/rtems/message/header.yml
deleted file mode 100644
index 2dba7f7..0000000
--- a/spec/if/rtems/message/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Message Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/message.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/message/ident.yml b/spec/if/rtems/message/ident.yml
deleted file mode 100644
index 58717c8..0000000
--- a/spec/if/rtems/message/ident.yml
+++ /dev/null
@@ -1,86 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a message queue object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[1]/name}
-    - ${../types/id:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the message queue identifier associated with the
-  message queue name specified in ``${.:/params[0]/name}``.
-
-  The node to search is specified in ``${.:/params[1]/name}``.  It shall be
-
-  * a valid node number,
-
-  * the constant ${../object/search-all-nodes:/name} to search in all nodes,
-
-  * the constant ${../object/search-local-node:/name} to search in the local
-    node only, or
-
-  * the constant ${../object/search-other-nodes:/name} to search in all nodes
-    except the local node.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_ident
-notes: |
-  If the message queue name is not unique, then the message queue identifier
-  will match the first message queue with that name in the search order.
-  However, this message queue identifier is not guaranteed to correspond to the
-  desired message queue.  The message queue identifier is used with other
-  message related directives to access the message queue.
-
-  If node is ${../object/search-all-nodes:/name}, all nodes are searched with
-  the local node being searched first.  All other nodes are searched with the
-  lowest numbered node searched first.
-
-  If node is a valid node number which does not represent the local node, then
-  only the message queues exported by the designated node are searched.
-
-  This directive does not generate activity on remote nodes.  It accesses only
-  the local copy of the global object table.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: is the node or node set to search for a matching object.
-  dir: null
-  name: node
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[2]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the specified nodes.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      In multiprocessing configurations, the specified node was invalid.
-    value: ${../status/invalid-node:/name}
-type: interface
diff --git a/spec/if/rtems/message/receive.yml b/spec/if/rtems/message/receive.yml
deleted file mode 100644
index 73f9dcd..0000000
--- a/spec/if/rtems/message/receive.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - ${/if/c/size_t:/name} *${.:/params[2]/name}
-    - ${../options/option:/name} ${.:/params[3]/name}
-    - ${../types/interval:/name} ${.:/params[4]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_receive
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: buffer
-- description: '%'
-  dir: null
-  name: size
-- description: '%'
-  dir: null
-  name: option_set
-- description: '%'
-  dir: null
-  name: timeout
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/message/send.yml b/spec/if/rtems/message/send.yml
deleted file mode 100644
index 0c035b9..0000000
--- a/spec/if/rtems/message/send.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - const void *${.:/params[1]/name}
-    - ${/if/c/size_t:/name} ${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_send
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: buffer
-- description: '%'
-  dir: null
-  name: size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/message/urgent.yml b/spec/if/rtems/message/urgent.yml
deleted file mode 100644
index 13fb07a..0000000
--- a/spec/if/rtems/message/urgent.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - const void *${.:/params[1]/name}
-    - ${/if/c/size_t:/name} ${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_message_queue_urgent
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: buffer
-- description: '%'
-  dir: null
-  name: size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/modes/group.yml b/spec/if/rtems/modes/group.yml
deleted file mode 100644
index e670054..0000000
--- a/spec/if/rtems/modes/group.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains the Classic API task modes.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicModes
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Task Modes
-text: |
-  The Classic API shall provide an interface to task modes.
-type: interface
diff --git a/spec/if/rtems/modes/header.yml b/spec/if/rtems/modes/header.yml
deleted file mode 100644
index e6e694d..0000000
--- a/spec/if/rtems/modes/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the task modes of the Task Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/modes.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/modes/interrupt-level-body.yml b/spec/if/rtems/modes/interrupt-level-body.yml
deleted file mode 100644
index f5e164a..0000000
--- a/spec/if/rtems/modes/interrupt-level-body.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns a mode with the desired interrupt level in the proper bit-field
-  location.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/uint32_t:/name} ${.:/params[0]/name}
-    return: ${mode:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_level_body
-notes: |
-  This function is used by bindings from languages other than C and C++.
-params:
-- description: is the desired interrupt level.
-  dir: null
-  name: level
-return:
-  return: |
-    A mode with the desired interrupt level in the proper bit-field location is
-    returned.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/modes/interrupt-mask-variable.yml b/spec/if/rtems/modes/interrupt-mask-variable.yml
deleted file mode 100644
index 6bb510f..0000000
--- a/spec/if/rtems/modes/interrupt-mask-variable.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: const ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: '%'
-enabled-by: true
-interface-type: variable
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interrupt_mask
-notes: null
-type: interface
diff --git a/spec/if/rtems/modes/interrupt-mask.yml b/spec/if/rtems/modes/interrupt-mask.yml
deleted file mode 100644
index 27dda9d..0000000
--- a/spec/if/rtems/modes/interrupt-mask.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This mode constant corresponds to the interrupt enable/disable bits.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/cpu/modes-interrupt-mask:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_INTERRUPT_MASK
-notes: null
-type: interface
diff --git a/spec/if/rtems/modes/mode.yml b/spec/if/rtems/modes/mode.yml
deleted file mode 100644
index 5a8dbd8..0000000
--- a/spec/if/rtems/modes/mode.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the control block used to manage each a mode set.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_mode
-notes: null
-type: interface
diff --git a/spec/if/rtems/mp/group.yml b/spec/if/rtems/mp/group.yml
deleted file mode 100644
index 4953390..0000000
--- a/spec/if/rtems/mp/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Multiprocessing Manager provides support for heterogeneous
-  multiprocessing systems based on message passing in a network of
-  multiprocessing nodes.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicMP
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Multiprocessing Manager
-text: |
-  The Classic API shall provide an interface to the Multiprocessing Manager.
-type: interface
diff --git a/spec/if/rtems/mp/header.yml b/spec/if/rtems/mp/header.yml
deleted file mode 100644
index 95a9b92..0000000
--- a/spec/if/rtems/mp/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Multiprocessing Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/mp.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/object/api-class-information.yml b/spec/if/rtems/object/api-class-information.yml
deleted file mode 100644
index c02bcb7..0000000
--- a/spec/if/rtems/object/api-class-information.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-- default:
-    brief: |
-      This member is
-    definition: ${../types/id:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: minimum_id
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${../types/id:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: maximum_id
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: maximum
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/bool:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: auto_extend
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: unallocated
-  variants: []
-definition-kind: typedef-only
-description: null
-enabled-by: true
-interface-type: struct
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_api_class_information
-notes: null
-type: interface
diff --git a/spec/if/rtems/object/build-id.yml b/spec/if/rtems/object/build-id.yml
deleted file mode 100644
index bbb13c6..0000000
--- a/spec/if/rtems/object/build-id.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/object/build-id:/name}( ${.:/params[0]/name}, ${.:/params[1]/name}, ${.:/params[2]/name}, ${.:/params[3]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_build_id
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _api
-- description: '%'
-  dir: null
-  name: _class
-- description: '%'
-  dir: null
-  name: _node
-- description: '%'
-  dir: null
-  name: _index
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/build-name.yml b/spec/if/rtems/object/build-name.yml
deleted file mode 100644
index 96d7270..0000000
--- a/spec/if/rtems/object/build-name.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/object/build-name:/name}( ${.:/params[0]/name}, ${.:/params[1]/name}, ${.:/params[2]/name}, ${.:/params[3]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_build_name
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _C1
-- description: '%'
-  dir: null
-  name: _C2
-- description: '%'
-  dir: null
-  name: _C3
-- description: '%'
-  dir: null
-  name: _C4
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/get-class-information.yml b/spec/if/rtems/object/get-class-information.yml
deleted file mode 100644
index ffb485d..0000000
--- a/spec/if/rtems/object/get-class-information.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - int ${.:/params[0]/name}
-    - int ${.:/params[1]/name}
-    - ${api-class-information:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_get_class_information
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: the_api
-- description: '%'
-  dir: null
-  name: the_class
-- description: '%'
-  dir: null
-  name: info
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/get-classic-name.yml b/spec/if/rtems/object/get-classic-name.yml
deleted file mode 100644
index 2c40b0c..0000000
--- a/spec/if/rtems/object/get-classic-name.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/name:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_get_classic_name
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: name
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/get-local-node.yml b/spec/if/rtems/object/get-local-node.yml
deleted file mode 100644
index 1c6dcf8..0000000
--- a/spec/if/rtems/object/get-local-node.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: |
-      return ${/if/impl/object/local-node:/name};
-    params: []
-    return: ${/if/c/uint16_t:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_get_local_node
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/get-name.yml b/spec/if/rtems/object/get-name.yml
deleted file mode 100644
index 98ee076..0000000
--- a/spec/if/rtems/object/get-name.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    - char *${.:/params[2]/name}
-    return: char *
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_get_name
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: length
-- description: '%'
-  dir: null
-  name: name
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/group.yml b/spec/if/rtems/object/group.yml
deleted file mode 100644
index 0f6d512..0000000
--- a/spec/if/rtems/object/group.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  RTEMS provides a collection of services to assist in the management and usage
-  of the objects created and utilized via other managers.  These services
-  assist in the manipulation of RTEMS objects independent of the API used to
-  create them.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicObject
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Object Services
-text: |
-  The Classic API shall provide an interface to the Object Services.
-type: interface
diff --git a/spec/if/rtems/object/header.yml b/spec/if/rtems/object/header.yml
deleted file mode 100644
index 8b90b78..0000000
--- a/spec/if/rtems/object/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Object Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/object.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/object/id-api-maximum.yml b/spec/if/rtems/object/id-api-maximum.yml
deleted file mode 100644
index 2a38b53..0000000
--- a/spec/if/rtems/object/id-api-maximum.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/apis-last:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_id_api_maximum
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/id-api-minimum.yml b/spec/if/rtems/object/id-api-minimum.yml
deleted file mode 100644
index b1856ca..0000000
--- a/spec/if/rtems/object/id-api-minimum.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/internal-api:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_id_api_minimum
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/id-final-index.yml b/spec/if/rtems/object/id-final-index.yml
deleted file mode 100644
index 5f00ff9..0000000
--- a/spec/if/rtems/object/id-final-index.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/id-final-index:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_OBJECT_ID_FINAL_INDEX
-notes: null
-type: interface
diff --git a/spec/if/rtems/object/id-final.yml b/spec/if/rtems/object/id-final.yml
deleted file mode 100644
index 173d4ba..0000000
--- a/spec/if/rtems/object/id-final.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/id-final:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_OBJECT_ID_FINAL
-notes: null
-type: interface
diff --git a/spec/if/rtems/object/id-get-api.yml b/spec/if/rtems/object/id-get-api.yml
deleted file mode 100644
index 1bc043b..0000000
--- a/spec/if/rtems/object/id-get-api.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/get-api:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_id_get_api
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/id-get-class.yml b/spec/if/rtems/object/id-get-class.yml
deleted file mode 100644
index 6e93930..0000000
--- a/spec/if/rtems/object/id-get-class.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/get-class:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_id_get_class
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/id-get-index.yml b/spec/if/rtems/object/id-get-index.yml
deleted file mode 100644
index 022aca9..0000000
--- a/spec/if/rtems/object/id-get-index.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/get-index:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_id_get_index
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/id-get-node.yml b/spec/if/rtems/object/id-get-node.yml
deleted file mode 100644
index 7ab4e52..0000000
--- a/spec/if/rtems/object/id-get-node.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/get-node:/name}( ${.:/params[0]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_id_get_node
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/id-initial-index.yml b/spec/if/rtems/object/id-initial-index.yml
deleted file mode 100644
index 60c3e45..0000000
--- a/spec/if/rtems/object/id-initial-index.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/id-initial-index:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_OBJECT_ID_INITIAL_INDEX
-notes: null
-type: interface
diff --git a/spec/if/rtems/object/id-initial.yml b/spec/if/rtems/object/id-initial.yml
deleted file mode 100644
index 31523c3..0000000
--- a/spec/if/rtems/object/id-initial.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${/if/impl/object/id-initial:/name}( ${.:/params[0]/name}, ${.:/params[1]/name}, ${.:/params[2]/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_OBJECT_ID_INITIAL
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: _api
-- description: '%'
-  dir: null
-  name: _class
-- description: '%'
-  dir: null
-  name: _node
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/search-all-nodes.yml b/spec/if/rtems/object/search-all-nodes.yml
deleted file mode 100644
index 1016dfe..0000000
--- a/spec/if/rtems/object/search-all-nodes.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/search-all-nodes:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_SEARCH_ALL_NODES
-notes: null
-type: interface
diff --git a/spec/if/rtems/object/search-local-node.yml b/spec/if/rtems/object/search-local-node.yml
deleted file mode 100644
index a0a9e05..0000000
--- a/spec/if/rtems/object/search-local-node.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/search-local-nodes:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_SEARCH_LOCAL_NODE
-notes: null
-type: interface
diff --git a/spec/if/rtems/object/search-other-nodes.yml b/spec/if/rtems/object/search-other-nodes.yml
deleted file mode 100644
index 2591ce1..0000000
--- a/spec/if/rtems/object/search-other-nodes.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/search-other-nodes:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_SEARCH_OTHER_NODES
-notes: null
-type: interface
diff --git a/spec/if/rtems/object/set-name.yml b/spec/if/rtems/object/set-name.yml
deleted file mode 100644
index 1622b20..0000000
--- a/spec/if/rtems/object/set-name.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - const char *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_object_set_name
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: name
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/object/who-am-i.yml b/spec/if/rtems/object/who-am-i.yml
deleted file mode 100644
index cfa2bfc..0000000
--- a/spec/if/rtems/object/who-am-i.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/who-am-i:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_WHO_AM_I
-notes: null
-type: interface
diff --git a/spec/if/rtems/options/group.yml b/spec/if/rtems/options/group.yml
deleted file mode 100644
index 0ab45b9..0000000
--- a/spec/if/rtems/options/group.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains the Classic API directive options.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicOptions
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Directive Options
-text: |
-  The Classic API shall provide an interface to directive options.
-type: interface
diff --git a/spec/if/rtems/options/header.yml b/spec/if/rtems/options/header.yml
deleted file mode 100644
index 93c7087..0000000
--- a/spec/if/rtems/options/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines options provided by the API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/options.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/options/option.yml b/spec/if/rtems/options/option.yml
deleted file mode 100644
index 3a3a927..0000000
--- a/spec/if/rtems/options/option.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the control block used to manage option sets.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_option
-notes: null
-type: interface
diff --git a/spec/if/rtems/part/create.yml b/spec/if/rtems/part/create.yml
deleted file mode 100644
index f613e07..0000000
--- a/spec/if/rtems/part/create.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[2]/name}
-    - ${/if/c/size_t:/name} ${.:/params[3]/name}
-    - ${../attr/attribute:/name} ${.:/params[4]/name}
-    - ${../types/id:/name} *${.:/params[5]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_partition_create
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: name
-- description: '%'
-  dir: null
-  name: starting_address
-- description: '%'
-  dir: null
-  name: length
-- description: '%'
-  dir: null
-  name: buffer_size
-- description: '%'
-  dir: null
-  name: attribute_set
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/part/delete.yml b/spec/if/rtems/part/delete.yml
deleted file mode 100644
index 739b238..0000000
--- a/spec/if/rtems/part/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_partition_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/part/get-buffer.yml b/spec/if/rtems/part/get-buffer.yml
deleted file mode 100644
index e3ebd3e..0000000
--- a/spec/if/rtems/part/get-buffer.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void **${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_partition_get_buffer
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: buffer
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/part/group.yml b/spec/if/rtems/part/group.yml
deleted file mode 100644
index dd0b7b9..0000000
--- a/spec/if/rtems/part/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Partition Manager provides facilities to dynamically allocate memory in
-  fixed-size units.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicPart
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Partition Manager
-text: |
-  The Classic API shall provide an interface to the Partition Manager.
-type: interface
diff --git a/spec/if/rtems/part/header.yml b/spec/if/rtems/part/header.yml
deleted file mode 100644
index 8bd8a5f..0000000
--- a/spec/if/rtems/part/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Partition Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/part.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/part/ident.yml b/spec/if/rtems/part/ident.yml
deleted file mode 100644
index 8c0afb0..0000000
--- a/spec/if/rtems/part/ident.yml
+++ /dev/null
@@ -1,86 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a partition object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[1]/name}
-    - ${../types/id:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the partition identifier associated with the partition
-  name specified in ``${.:/params[0]/name}``.
-
-  The node to search is specified in ``${.:/params[1]/name}``.  It shall be
-
-  * a valid node number,
-
-  * the constant ${../object/search-all-nodes:/name} to search in all nodes,
-
-  * the constant ${../object/search-local-node:/name} to search in the local
-    node only, or
-
-  * the constant ${../object/search-other-nodes:/name} to search in all nodes
-    except the local node.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_partition_ident
-notes: |
-  If the partition name is not unique, then the partition identifier will match
-  the first partition with that name in the search order.  However, this
-  partition identifier is not guaranteed to correspond to the desired
-  partition.  The partition identifier is used with other partition related
-  directives to access the partition.
-
-  If node is ${../object/search-all-nodes:/name}, all nodes are searched with
-  the local node being searched first.  All other nodes are searched with the
-  lowest numbered node searched first.
-
-  If node is a valid node number which does not represent the local node, then
-  only the partitions exported by the designated node are searched.
-
-  This directive does not generate activity on remote nodes.  It accesses only
-  the local copy of the global object table.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: is the node or node set to search for a matching object.
-  dir: null
-  name: node
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[2]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the specified nodes.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      In multiprocessing configurations, the specified node was invalid.
-    value: ${../status/invalid-node:/name}
-type: interface
diff --git a/spec/if/rtems/part/return-buffer.yml b/spec/if/rtems/part/return-buffer.yml
deleted file mode 100644
index 76a15fe..0000000
--- a/spec/if/rtems/part/return-buffer.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_partition_return_buffer
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: buffer
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/ratemon/cancel.yml b/spec/if/rtems/ratemon/cancel.yml
deleted file mode 100644
index f69899e..0000000
--- a/spec/if/rtems/ratemon/cancel.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_cancel
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/ratemon/create.yml b/spec/if/rtems/ratemon/create.yml
deleted file mode 100644
index 3d201c4..0000000
--- a/spec/if/rtems/ratemon/create.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_create
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: name
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/ratemon/delete.yml b/spec/if/rtems/ratemon/delete.yml
deleted file mode 100644
index 11de97e..0000000
--- a/spec/if/rtems/ratemon/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/ratemon/get-statistics.yml b/spec/if/rtems/ratemon/get-statistics.yml
deleted file mode 100644
index 3451cc1..0000000
--- a/spec/if/rtems/ratemon/get-statistics.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${period-statistics:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_get_statistics
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: statistics
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/ratemon/get-status.yml b/spec/if/rtems/ratemon/get-status.yml
deleted file mode 100644
index 35d672f..0000000
--- a/spec/if/rtems/ratemon/get-status.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${period-status:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_get_status
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: status
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/ratemon/group.yml b/spec/if/rtems/ratemon/group.yml
deleted file mode 100644
index 32ca928..0000000
--- a/spec/if/rtems/ratemon/group.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Rate-Monotonic Manager provides facilities to implement tasks which
-  execute in a periodic fashion.  Critically, it also gathers information about
-  the execution of those periods and can provide important statistics to the
-  user which can be used to analyze and tune the application.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicRatemon
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Rate-Monotonic Manager
-text: |
-  The Classic API shall provide an interface to the Rate-Monotonic Manager.
-type: interface
diff --git a/spec/if/rtems/ratemon/header.yml b/spec/if/rtems/ratemon/header.yml
deleted file mode 100644
index f6d0236..0000000
--- a/spec/if/rtems/ratemon/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Rate-Monotonic Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/ratemon.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/ratemon/ident.yml b/spec/if/rtems/ratemon/ident.yml
deleted file mode 100644
index 40d0bf9..0000000
--- a/spec/if/rtems/ratemon/ident.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a period object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the period identifier associated with the period name
-  specified in ``${.:/params[0]/name}``.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_ident
-notes: |
-  If the period name is not unique, then the period identifier will match the
-  first period with that name in the search order.  However, this period
-  identifier is not guaranteed to correspond to the desired period.  The period
-  identifier is used with other rate monotonic related directives to access the
-  period.
-
-  The objects are searched from lowest to the highest index.  Only the local
-  node is searched.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the local node.
-    value: ${../status/invalid-name:/name}
-type: interface
diff --git a/spec/if/rtems/ratemon/period-statistics.yml b/spec/if/rtems/ratemon/period-statistics.yml
deleted file mode 100644
index 515cb0d..0000000
--- a/spec/if/rtems/ratemon/period-statistics.yml
+++ /dev/null
@@ -1,82 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: count
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: missed_count
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/timespec:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: min_cpu_time
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/timespec:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: max_cpu_time
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/timespec:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: total_cpu_time
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/timespec:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: min_wall_time
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/timespec:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: max_wall_time
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/timespec:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: total_wall_time
-  variants: []
-definition-kind: typedef-only
-description: null
-enabled-by: true
-interface-type: struct
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_period_statistics
-notes: null
-type: interface
diff --git a/spec/if/rtems/ratemon/period-status-define.yml b/spec/if/rtems/ratemon/period-status-define.yml
deleted file mode 100644
index adebb06..0000000
--- a/spec/if/rtems/ratemon/period-status-define.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This constant is the interval passed to the ${period:/name} directive to
-  obtain status information.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/watchdog/no-timeout:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_PERIOD_STATUS
-notes: null
-type: interface
diff --git a/spec/if/rtems/ratemon/period-status.yml b/spec/if/rtems/ratemon/period-status.yml
deleted file mode 100644
index 5b1fd95..0000000
--- a/spec/if/rtems/ratemon/period-status.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-- default:
-    brief: |
-      This member is
-    definition: ${../types/id:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: owner
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${period-states:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: state
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/timespec:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: since_last_period
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/timespec:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: executed_since_last_period
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: postponed_jobs_count
-  variants: []
-definition-kind: typedef-only
-description: null
-enabled-by: true
-interface-type: struct
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_period_status
-notes: null
-type: interface
diff --git a/spec/if/rtems/ratemon/period.yml b/spec/if/rtems/ratemon/period.yml
deleted file mode 100644
index 991c2ba..0000000
--- a/spec/if/rtems/ratemon/period.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/interval:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_period
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: length
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/ratemon/printer.yml b/spec/if/rtems/ratemon/printer.yml
deleted file mode 100644
index 38e939f..0000000
--- a/spec/if/rtems/ratemon/printer.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-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
-interface-type: forward-declaration
-links:
-- role: interface-placement
-  uid: header
-- role: interface-target
-  uid: ../io/printer
-type: interface
diff --git a/spec/if/rtems/ratemon/reset-statistics.yml b/spec/if/rtems/ratemon/reset-statistics.yml
deleted file mode 100644
index 7765662..0000000
--- a/spec/if/rtems/ratemon/reset-statistics.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_rate_monotonic_reset_statistics
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/create.yml b/spec/if/rtems/region/create.yml
deleted file mode 100644
index 3eb4ae4..0000000
--- a/spec/if/rtems/region/create.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[2]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[3]/name}
-    - ${../attr/attribute:/name} ${.:/params[4]/name}
-    - ${../types/id:/name} *${.:/params[5]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_create
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: name
-- description: '%'
-  dir: null
-  name: starting_address
-- description: '%'
-  dir: null
-  name: length
-- description: '%'
-  dir: null
-  name: page_size
-- description: '%'
-  dir: null
-  name: attribute_set
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/delete.yml b/spec/if/rtems/region/delete.yml
deleted file mode 100644
index 3c046c7..0000000
--- a/spec/if/rtems/region/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/extend.yml b/spec/if/rtems/region/extend.yml
deleted file mode 100644
index 338e3a4..0000000
--- a/spec/if/rtems/region/extend.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_extend
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: starting_address
-- description: '%'
-  dir: null
-  name: length
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/get-free-information.yml b/spec/if/rtems/region/get-free-information.yml
deleted file mode 100644
index 929aadf..0000000
--- a/spec/if/rtems/region/get-free-information.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/impl/heap/information-block:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_get_free_information
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: the_info
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/get-information.yml b/spec/if/rtems/region/get-information.yml
deleted file mode 100644
index 4f65587..0000000
--- a/spec/if/rtems/region/get-information.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/impl/heap/information-block:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_get_information
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: the_info
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/get-segment-size.yml b/spec/if/rtems/region/get-segment-size.yml
deleted file mode 100644
index 993846e..0000000
--- a/spec/if/rtems/region/get-segment-size.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - ${/if/c/uintptr_t:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_get_segment_size
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: segment
-- description: '%'
-  dir: null
-  name: size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/get-segment.yml b/spec/if/rtems/region/get-segment.yml
deleted file mode 100644
index 382ea86..0000000
--- a/spec/if/rtems/region/get-segment.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[1]/name}
-    - ${../options/option:/name} ${.:/params[2]/name}
-    - ${../types/interval:/name} ${.:/params[3]/name}
-    - void **${.:/params[4]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_get_segment
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: size
-- description: '%'
-  dir: null
-  name: option_set
-- description: '%'
-  dir: null
-  name: timeout
-- description: '%'
-  dir: null
-  name: segment
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/group.yml b/spec/if/rtems/region/group.yml
deleted file mode 100644
index 4a058ea..0000000
--- a/spec/if/rtems/region/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Region Manager provides facilities to dynamically allocate memory in
-  variable sized units.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicRegion
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Region Manager
-text: |
-  The Classic API shall provide an interface to the Region Manager.
-type: interface
diff --git a/spec/if/rtems/region/header.yml b/spec/if/rtems/region/header.yml
deleted file mode 100644
index 0463cc1..0000000
--- a/spec/if/rtems/region/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Region Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/region.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/region/ident.yml b/spec/if/rtems/region/ident.yml
deleted file mode 100644
index 57b5ce9..0000000
--- a/spec/if/rtems/region/ident.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a region object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the region identifier associated with the region name
-  specified in ``${.:/params[0]/name}``.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_ident
-notes: |
-  If the region name is not unique, then the region identifier will match the
-  first region with that name in the search order.  However, this region
-  identifier is not guaranteed to correspond to the desired region.  The region
-  identifier is used with other region related directives to access the region.
-
-  The objects are searched from lowest to the highest index.  Only the local
-  node is searched.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the local node.
-    value: ${../status/invalid-name:/name}
-type: interface
diff --git a/spec/if/rtems/region/resize-segment.yml b/spec/if/rtems/region/resize-segment.yml
deleted file mode 100644
index cc02db0..0000000
--- a/spec/if/rtems/region/resize-segment.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    - ${/if/c/uintptr_t:/name} ${.:/params[2]/name}
-    - ${/if/c/uintptr_t:/name} *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_resize_segment
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: segment
-- description: '%'
-  dir: null
-  name: size
-- description: '%'
-  dir: null
-  name: old_size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/region/return-segment.yml b/spec/if/rtems/region/return-segment.yml
deleted file mode 100644
index 27eacee..0000000
--- a/spec/if/rtems/region/return-segment.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - void *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_region_return_segment
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: segment
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/scheduler/add-processor.yml b/spec/if/rtems/scheduler/add-processor.yml
deleted file mode 100644
index a13eb90..0000000
--- a/spec/if/rtems/scheduler/add-processor.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Adds the processor to the set of processors owned by the scheduler instance.
-copyrights:
-- Copyright (C) 2016, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_add_processor
-notes: |
-  This directive shall be called from task context.  It obtains and releases
-  the objects allocator lock.
-params:
-- description: is the scheduler instance identifier.
-  dir: null
-  name: scheduler_id
-- description: is the index of the processor to add.
-  dir: null
-  name: cpu_index
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The processor was configured to be used by the application, however, it
-      was not online.
-    value: ${../status/incorrect-state:/name}
-  - description: |
-      The scheduler instance identifier was invalid.
-    value: ${../status/invalid-id:/name}
-  - description: |
-      The processor was not configured to be used by the application.
-    value: ${../status/not-configured:/name}
-  - description: |
-      The processor was already assigned to a scheduler instance.
-    value: ${../status/resource-in-use:/name}
-type: interface
diff --git a/spec/if/rtems/scheduler/get-maximum-priority.yml b/spec/if/rtems/scheduler/get-maximum-priority.yml
deleted file mode 100644
index 60b67db..0000000
--- a/spec/if/rtems/scheduler/get-maximum-priority.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Gets the maximum task priority of the scheduler instance.
-copyrights:
-- Copyright (C) 2018, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../tasks/priority:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_get_maximum_priority
-notes: null
-params:
-- description: is the scheduler instance identifier.
-  dir: null
-  name: scheduler_id
-- description: |
-    is the pointer to a task priority variable.  The maximum priority of the
-    scheduler instance will be stored in this variable, if the operation is
-    successful.
-  dir: out
-  name: priority
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The scheduler instance identifier was invalid.
-    value: ${../status/invalid-id:/name}
-type: interface
diff --git a/spec/if/rtems/scheduler/get-processor-maximum.yml b/spec/if/rtems/scheduler/get-processor-maximum.yml
deleted file mode 100644
index 3c9f6ae..0000000
--- a/spec/if/rtems/scheduler/get-processor-maximum.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the processor maximum supported by the system.
-copyrights:
-- Copyright (C) 2013, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/smp/get-processor-maximum:/name}()
-  variants: []
-description: |
-  In uniprocessor configurations, this macro evaluates to a compile time
-  constant of one.
-
-  In SMP configurations, this macro returns the minimum of the processors
-  (physically or virtually) available by the platform and the configured
-  processor maximum.  Not all processors in the range from processor index zero
-  to the last processor index (which is the processor maximum minus one) may be
-  configured to be used by a scheduler or may be online (online processors have
-  a scheduler assigned).
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_get_processor_maximum
-notes: null
-params: []
-return:
-  return: |
-    The processor maximum supported by the system is returned.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/scheduler/get-processor-set.yml b/spec/if/rtems/scheduler/get-processor-set.yml
deleted file mode 100644
index d54af6e..0000000
--- a/spec/if/rtems/scheduler/get-processor-set.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Gets the set of processors owned by the scheduler instance.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    - ${/if/c/cpu_set_t:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_get_processor_set
-notes: null
-params:
-- description: is the scheduler instance identifier.
-  dir: null
-  name: scheduler_id
-- description: |
-    is the size of the referenced processor set variable in bytes.  This value
-    shall be positive.
-  dir: null
-  name: cpusetsize
-- description: |
-    is the pointer to a processor set variable.  The processor set of the
-    scheduler instance will be stored in this variable, in case of a successful
-    operation.  A set bit in the processor set means that the corresponding
-    processor is owned by the scheduler instance, otherwise the bit is cleared.
-  dir: out
-  name: cpuset
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[2]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The scheduler instance identifier was invalid.
-    value: ${../status/invalid-id:/name}
-  - description: |
-      The provided processor set was too small for the set of processors owned
-      by the scheduler instance.
-    value: ${../status/invalid-number:/name}
-type: interface
diff --git a/spec/if/rtems/scheduler/get-processor.yml b/spec/if/rtems/scheduler/get-processor.yml
deleted file mode 100644
index 52168a0..0000000
--- a/spec/if/rtems/scheduler/get-processor.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the index of the current processor.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/smp/get-current-processor:/name}()
-  variants: []
-description: |
-  In uniprocessor configurations, this macro evaluates to a compile time
-  constant of zero.
-
-  In SMP configurations, an architecture-specific method is used to obtain the
-  index of the current processor in the system.  The set of processor indices
-  is the range of integers starting with zero up to
-  ${get-processor-maximum:/name} minus one.
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_get_processor
-notes: |
-  Outside of sections with disabled thread dispatching the current processor
-  index may change after every instruction since the thread may migrate from
-  one processor to another.  Sections with disabled interrupts are sections
-  with thread dispatching disabled.
-params: []
-return:
-  return: |
-    The index of the current processor is returned.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/scheduler/ident-by-processor-set.yml b/spec/if/rtems/scheduler/ident-by-processor-set.yml
deleted file mode 100644
index bc9e9ff..0000000
--- a/spec/if/rtems/scheduler/ident-by-processor-set.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a scheduler instance by a processor set.
-copyrights:
-- Copyright (C) 2017, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/size_t:/name} ${.:/params[0]/name}
-    - const ${/if/c/cpu_set_t:/name} *${.:/params[1]/name}
-    - ${../types/id:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  The scheduler instance is selected according to the highest numbered online
-  processor in the specified processor set.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_ident_by_processor_set
-notes: null
-params:
-- description: |
-    is the size of the referenced processor set variable in bytes.  This value
-    shall be positive.
-  dir: null
-  name: cpusetsize
-- description: |
-    is the pointer to a processor set variable.  The referenced processor set
-    will be used to identify the scheduler instance.
-  dir: null
-  name: cpuset
-- description: |
-    is the pointer to an object identifier variable.  The identifier of the
-    scheduler instance will be stored in this variable, in case of a successful
-    operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The processor set was valid, however, the highest numbered online
-      processor in the processor set was not owned by a scheduler instance.
-    value: ${../status/incorrect-state:/name}
-  - description: |
-      The ${.:/params[2]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The processor set contained no online processor.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      The processor set size was invalid.
-    value: ${../status/invalid-size:/name}
-type: interface
diff --git a/spec/if/rtems/scheduler/ident-by-processor.yml b/spec/if/rtems/scheduler/ident-by-processor.yml
deleted file mode 100644
index 1c41f1e..0000000
--- a/spec/if/rtems/scheduler/ident-by-processor.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a scheduler instance by a processor index.
-copyrights:
-- Copyright (C) 2017, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/uint32_t:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_ident_by_processor
-notes: null
-params:
-- description: |
-    is the processor index to identify the scheduler instance.
-  dir: null
-  name: cpu_index
-- description: |
-    is the pointer to an object identifier variable.  The identifier of the
-    scheduler instance will be stored in this variable, in case of a successful
-    operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The processor index was valid, however, the corresponding processor was
-      not owned by a scheduler instance.
-    value: ${../status/incorrect-state:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The processor index was invalid.
-    value: ${../status/invalid-name:/name}
-type: interface
diff --git a/spec/if/rtems/scheduler/ident.yml b/spec/if/rtems/scheduler/ident.yml
deleted file mode 100644
index 8136bff..0000000
--- a/spec/if/rtems/scheduler/ident.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a scheduler instance by its name.
-copyrights:
-- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_ident
-notes: |
-  The scheduler name is determined by the scheduler configuration.
-params:
-- description: is the scheduler name.
-  dir: null
-  name: name
-- description: |
-    is the pointer to an object identifier variable.  The identifier of the
-    scheduler instance will be stored in this variable, in case of a successful
-    operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The scheduler name was invalid.
-    value: ${../status/invalid-name:/name}
-type: interface
diff --git a/spec/if/rtems/scheduler/map-priority-from-posix.yml b/spec/if/rtems/scheduler/map-priority-from-posix.yml
deleted file mode 100644
index 3280985..0000000
--- a/spec/if/rtems/scheduler/map-priority-from-posix.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Maps a POSIX thread priority to the corresponding Classic API task priority.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - int ${.:/params[1]/name}
-    - ${../tasks/priority:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_map_priority_from_posix
-notes: null
-params:
-- description: is the scheduler instance identifier.
-  dir: null
-  name: scheduler_id
-- description: is the POSIX thread priority to map.
-  dir: null
-  name: posix_priority
-- description: |
-    is the pointer to a Classic API task priority variable.  The Classic API
-    task priority value corresponding to the specified POSIX thread priority
-    value will be stored in this variable, in case of a successful operation.
-  dir: out
-  name: priority
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[2]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The scheduler instance identifier was invalid.
-    value: ${../status/invalid-id:/name}
-  - description: |
-      The POSIX thread priority was invalid.
-    value: ${../status/invalid-priority:/name}
-type: interface
diff --git a/spec/if/rtems/scheduler/map-priority-to-posix.yml b/spec/if/rtems/scheduler/map-priority-to-posix.yml
deleted file mode 100644
index ecd1d64..0000000
--- a/spec/if/rtems/scheduler/map-priority-to-posix.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Maps a Classic API task priority to the corresponding POSIX thread priority.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../tasks/priority:/name} ${.:/params[1]/name}
-    - int *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_map_priority_to_posix
-notes: null
-params:
-- description: is the scheduler instance identifier.
-  dir: null
-  name: scheduler_id
-- description: is the Classic API task priority to map.
-  dir: null
-  name: priority
-- description: |
-    is the pointer to a POSIX thread priority variable.  The POSIX thread
-    priority value corresponding to the specified Classic API task priority
-    value will be stored in this variable, in case of a successful operation.
-  dir: out
-  name: posix_priority
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[2]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The scheduler instance identifier was invalid.
-    value: ${../status/invalid-id:/name}
-  - description: |
-      The Classic API task priority was invalid.
-    value: ${../status/invalid-priority:/name}
-type: interface
diff --git a/spec/if/rtems/scheduler/remove-processor.yml b/spec/if/rtems/scheduler/remove-processor.yml
deleted file mode 100644
index 6fbbde1..0000000
--- a/spec/if/rtems/scheduler/remove-processor.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Removes a processor from set of processors owned by the scheduler instance.
-copyrights:
-- Copyright (C) 2016, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: ../tasks/header
-- role: interface-ingroup
-  uid: ../tasks/group
-name: rtems_scheduler_remove_processor
-notes: |
-  This directive shall be called from task context.  It obtains and releases
-  the objects allocator lock.  Removing a processor from a scheduler instance
-  is a complex operation that involves all tasks of the system.
-params:
-- description: is the scheduler instance identifier.
-  dir: null
-  name: scheduler_id
-- description: is the index of the processor to remove.
-  dir: null
-  name: cpu_index
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The scheduler instance identifier was invalid.
-    value: ${../status/invalid-id:/name}
-  - description: |
-      The processor was not owned by the specified scheduler instance.
-    value: ${../status/invalid-number:/name}
-  - description: |
-      The set of processors owned by the specified scheduler instance would
-      have been empty after the processor removal and there was at least one
-      non-idle task that used this scheduler instance as its home scheduler
-      instance.
-    value: ${../status/resource-in-use:/name}
-type: interface
diff --git a/spec/if/rtems/sem/create.yml b/spec/if/rtems/sem/create.yml
deleted file mode 100644
index 98aace3..0000000
--- a/spec/if/rtems/sem/create.yml
+++ /dev/null
@@ -1,182 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Creates a semaphore with the specified properties and returns its identifier.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[1]/name}
-    - ${../attr/attribute:/name} ${.:/params[2]/name}
-    - ${../tasks/priority:/name} ${.:/params[3]/name}
-    - ${../types/id:/name} *${.:/params[4]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive creates a semaphore which resides on the local node.  The new
-  semaphore has the user-defined name specified in ``name`` and the initial
-  count specified in ``count``.  For control and maintenance of the semaphore,
-  RTEMS allocates and initializes a ${/glossary/smcb:/term}.  The
-  RTEMS-assigned semaphore identifier is returned in ``id``.  This semaphore
-  identifier is used with other semaphore related directives to access the
-  semaphore.
-
-  The attribute set specified in ``attribute_set`` defines
-
-  * the scope of the semaphore (local or global),
-
-  * the discipline of the task wait queue used by the semaphore (FIFO or
-    priority),
-
-  * the class of the semaphore (counting, binary, or simple binary), and
-
-  * the locking protocol of a binary semaphore (priority inheritance, priority
-    ceiling or MrsP).
-
-  The attribute set is built through a *bitwise or* of the attribute constants
-  described below.  Not all combinations of attributes are allowed.  Some
-  attributes are mutually exclusive.  If mutually exclusive attributes are
-  combined, the behaviour is undefined.
-
-  The *scope of a semaphore* is either the local node only (local scope) or all
-  nodes in a multiprocessing network (global scope).  The scope is selected by
-  the mutually exclusive ${../attr/local:/name} and ${../attr/global:/name}
-  attributes.
-
-  * The local scope is the default and can be emphasized through use
-    of the ${../attr/local:/name} attribute.
-
-  * The global scope is selected by the ${../attr/global:/name} attribute.  In
-    a single node system and the local and global scope are identical.
-
-  The *task wait queue discipline* is selected by the mutually exclusive
-  ${../attr/fifo:/name} and ${../attr/priority:/name} attributes.
-
-  * The ${/glossary/fifo:/term} discipline is the default and can be emphasized
-    through use of the ${../attr/fifo:/name} attribute.
-
-  * The priority discipline is selected by the ${../attr/priority:/name}
-    attribute.  Some locking protocols require the priority discipline.
-
-  The *semaphore class* is selected by the mutually exclusive
-  ${../attr/counting-semaphore:/name}, ${../attr/binary-semaphore:/name}, and
-  ${../attr/simple-binary-semaphore:/name} attributes.
-
-  * Counting semaphores are the default and can be emphasized through use of
-    the ${../attr/counting-semaphore:/name} attribute.
-
-  * Binary semaphores are mutual exclusion (mutex) synchronization primitives
-    which may have an owner.  The count of a binary semaphore is restricted to
-    0 and 1.  The binary semaphore class is selected by the
-    ${../attr/binary-semaphore:/name} attribute.
-
-  * Simple binary semaphores have no owner.  The count of a simple binary
-    semaphore is restricted to 0 and 1.  They may be used for task and
-    interrupt synchronization.  The simple binary semaphore class is selected
-    by the ${../attr/simple-binary-semaphore:/name} attribute.
-
-  Binary semaphores may use a *locking protocol*.  If a locking protocol is
-  selected, then the scope shall be local and the priority task wait queue
-  discipline shall be selected.  The locking protocol is selected by the
-  mutually exclusive ${../attr/inherit-priority:/name},
-  ${../attr/priority-ceiling:/name}, and
-  ${../attr/multiprocessor-resource-sharing:/name} attributes.
-
-  * The default is to use no locking protocol.
-
-  * The ${../attr/inherit-priority:/name} attribute selects the priority
-    inheritance locking protocol.
-
-  * The ${../attr/priority-ceiling:/name} attribute selects the priority
-    ceiling locking protocol.  For this locking protocol a priority ceiling
-    shall be specified in ``priority_ceiling``.
-
-  * The ${../attr/multiprocessor-resource-sharing:/name} attribute selects the
-    MrsP locking protocol in SMP configurations, otherwise it selects the
-    priority ceiling protocol.  For this locking protocol a priority ceiling
-    shall be specified in ``priority_ceiling``.  This priority is used to set
-    the priority ceiling in all scheduler instances.  This can be changed later
-    with the ${set-priority:/name} directive using the returned semaphore
-    identifier.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_semaphore_create
-notes: |
-  This directive may cause the calling task to be preempted due to an obtain
-  and release of the object allocator mutex.
-
-  Semaphores should not be made global unless remote tasks must interact with
-  the new semaphore.  This is to avoid the system overhead incurred by the
-  creation of a global semaphore.  When a global semaphore is created, the
-  semaphore's name and identifier must be transmitted to every node in the
-  system for insertion in the local copy of the global object table.
-
-  The total number of global objects, including semaphores, is limited by the
-  ${/if/acfg/mp-max-global-objects:/name} application configuration option.
-
-  It is not allowed to create an initially locked MrsP semaphore and the
-  ${../status/invalid-number:/name} status code will be returned in SMP
-  configurations in this case.  This prevents lock order reversal problems
-  with the allocator mutex.
-params:
-- description: is the object name of the new semaphore.
-  dir: null
-  name: name
-- description: |
-    is the initial count of the new semaphore.  If the semaphore is a mutex,
-    then a count of 0 will make the calling task the owner of the new mutex and
-    a count of 1 will create a mutex without an owner.
-  dir: null
-  name: count
-- description: |
-    is the attribute set which defines the properties of the new semaphore.
-  dir: null
-  name: attribute_set
-- description: |
-    is the priority ceiling if the new semaphore is a binary semaphore with the
-    priority ceiling or MrsP semaphore locking protocol as defined by the
-    attribute set.
-  dir: null
-  name: priority_ceiling
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    the new semaphore will be stored in this variable, in case of a successful
-    operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[3]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The semaphore name was invalid.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      The priority ceiling was invalid.
-    value: ${../status/invalid-priority:/name}
-  - description: |
-      The attribute set was invalid.
-    value: ${../status/not-defined:/name}
-  - description: |
-      There was no inactive semaphore object available to create a new
-      semaphore.  The semaphore object maximum is defined by the
-      ${/if/acfg/max-semaphores:/name} application configuration option.
-    value: ${../status/too-many:/name}
-  - description: |
-      In multiprocessing configurations, there was no inactive global object
-      available to create a new global semaphore.
-    value: ${../status/too-many:/name}
-type: interface
diff --git a/spec/if/rtems/sem/delete.yml b/spec/if/rtems/sem/delete.yml
deleted file mode 100644
index c57b22c..0000000
--- a/spec/if/rtems/sem/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_semaphore_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/sem/flush.yml b/spec/if/rtems/sem/flush.yml
deleted file mode 100644
index 3662bc3..0000000
--- a/spec/if/rtems/sem/flush.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_semaphore_flush
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/sem/group.yml b/spec/if/rtems/sem/group.yml
deleted file mode 100644
index a0ad76f..0000000
--- a/spec/if/rtems/sem/group.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Semaphore Manager utilizes standard Dijkstra counting semaphores to
-  provide synchronization and mutual exclusion capabilities.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicSem
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Semaphore Manager
-text: |
-  The Classic API shall provide an interface to the Semaphore Manager.
-type: interface
diff --git a/spec/if/rtems/sem/header.yml b/spec/if/rtems/sem/header.yml
deleted file mode 100644
index 1e7c2c9..0000000
--- a/spec/if/rtems/sem/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Semaphore Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/sem.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/sem/ident.yml b/spec/if/rtems/sem/ident.yml
deleted file mode 100644
index 580679b..0000000
--- a/spec/if/rtems/sem/ident.yml
+++ /dev/null
@@ -1,86 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a semaphore object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[1]/name}
-    - ${../types/id:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the semaphore identifier associated with the semaphore
-  name specified in ``${.:/params[0]/name}``.
-
-  The node to search is specified in ``${.:/params[1]/name}``.  It shall be
-
-  * a valid node number,
-
-  * the constant ${../object/search-all-nodes:/name} to search in all nodes,
-
-  * the constant ${../object/search-local-node:/name} to search in the local
-    node only, or
-
-  * the constant ${../object/search-other-nodes:/name} to search in all nodes
-    except the local node.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_semaphore_ident
-notes: |
-  If the semaphore name is not unique, then the semaphore identifier will match
-  the first semaphore with that name in the search order.  However, this
-  semaphore identifier is not guaranteed to correspond to the desired
-  semaphore.  The semaphore identifier is used with other semaphore related
-  directives to access the semaphore.
-
-  If node is ${../object/search-all-nodes:/name}, all nodes are searched with
-  the local node being searched first.  All other nodes are searched with the
-  lowest numbered node searched first.
-
-  If node is a valid node number which does not represent the local node, then
-  only the semaphores exported by the designated node are searched.
-
-  This directive does not generate activity on remote nodes.  It accesses only
-  the local copy of the global object table.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: is the node or node set to search for a matching object.
-  dir: null
-  name: node
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[2]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the specified nodes.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      In multiprocessing configurations, the specified node was invalid.
-    value: ${../status/invalid-node:/name}
-type: interface
diff --git a/spec/if/rtems/sem/obtain.yml b/spec/if/rtems/sem/obtain.yml
deleted file mode 100644
index 1e87106..0000000
--- a/spec/if/rtems/sem/obtain.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../options/option:/name} ${.:/params[1]/name}
-    - ${../types/interval:/name} ${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_semaphore_obtain
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: option_set
-- description: '%'
-  dir: null
-  name: timeout
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/sem/release.yml b/spec/if/rtems/sem/release.yml
deleted file mode 100644
index 3cba85d..0000000
--- a/spec/if/rtems/sem/release.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_semaphore_release
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/sem/set-priority.yml b/spec/if/rtems/sem/set-priority.yml
deleted file mode 100644
index 7e01252..0000000
--- a/spec/if/rtems/sem/set-priority.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} ${.:/params[1]/name}
-    - ${../tasks/priority:/name} ${.:/params[2]/name}
-    - ${../tasks/priority:/name} *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_semaphore_set_priority
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: semaphore_id
-- description: '%'
-  dir: null
-  name: scheduler_id
-- description: '%'
-  dir: null
-  name: new_priority
-- description: '%'
-  dir: null
-  name: old_priority
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/signal/catch.yml b/spec/if/rtems/signal/catch.yml
deleted file mode 100644
index c4f07d9..0000000
--- a/spec/if/rtems/signal/catch.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${asr-entry:/name} ${.:/params[0]/name}
-    - ${../modes/mode:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_signal_catch
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: asr_handler
-- description: '%'
-  dir: null
-  name: mode_set
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/signal/group.yml b/spec/if/rtems/signal/group.yml
deleted file mode 100644
index 3c1719e..0000000
--- a/spec/if/rtems/signal/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Signal Manager provides the capabilities required for asynchronous
-  communication.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicSignal
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Signal Manager
-text: |
-  The Classic API shall provide an interface to the Signal Manager.
-type: interface
diff --git a/spec/if/rtems/signal/header-2.yml b/spec/if/rtems/signal/header-2.yml
deleted file mode 100644
index 6e6a854..0000000
--- a/spec/if/rtems/signal/header-2.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the parts of the Signal Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/asr.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/signal/header.yml b/spec/if/rtems/signal/header.yml
deleted file mode 100644
index 4f2ca30..0000000
--- a/spec/if/rtems/signal/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the parts of the Signal Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/signal.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/signal/send.yml b/spec/if/rtems/signal/send.yml
deleted file mode 100644
index c3d95d1..0000000
--- a/spec/if/rtems/signal/send.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${set:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_signal_send
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: signal_set
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/signal/set.yml b/spec/if/rtems/signal/set.yml
deleted file mode 100644
index c066a49..0000000
--- a/spec/if/rtems/signal/set.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header-2
-- role: interface-ingroup
-  uid: group
-name: rtems_signal_set
-notes: null
-type: interface
diff --git a/spec/if/rtems/status/group.yml b/spec/if/rtems/status/group.yml
deleted file mode 100644
index b3c8a9e..0000000
--- a/spec/if/rtems/status/group.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains the Classic API status codes and support functions.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicStatus
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Directive Status Codes
-text: |
-  The Classic API shall provide an interface to directive status codes.
-type: interface
diff --git a/spec/if/rtems/status/header.yml b/spec/if/rtems/status/header.yml
deleted file mode 100644
index 83cb2b3..0000000
--- a/spec/if/rtems/status/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the status codes provided by API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/status.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/status/is-equal.yml b/spec/if/rtems/status/is-equal.yml
deleted file mode 100644
index 5e6e5d0..0000000
--- a/spec/if/rtems/status/is-equal.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns true, if the left hand side status code is equal to the right hand
-  side status code, otherwise returns false.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: |
-      return ${.:/params[0]/name} == ${.:/params[1]/name};
-    params:
-    - ${code:/name} ${.:/params[0]/name}
-    - ${code:/name} ${.:/params[1]/name}
-    return: ${/if/c/bool:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_are_statuses_equal
-notes: null
-params:
-- description: is the left hand side status code.
-  dir: null
-  name: left_status_code
-- description: is the right hand side status code.
-  dir: null
-  name: right_status_code
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/status/is-successful.yml b/spec/if/rtems/status/is-successful.yml
deleted file mode 100644
index 78c8ac1..0000000
--- a/spec/if/rtems/status/is-successful.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns true, if the status code is ${successful:/name}, otherwise
-  returns false.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: |
-      return ${.:/params[0]/name} == ${successful:/name};
-    params:
-    - ${code:/name} ${.:/params[0]/name}
-    return: ${/if/c/bool:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_is_status_successful
-notes: null
-params:
-- description: is the status code.
-  dir: null
-  name: status_code
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/support/group.yml b/spec/if/rtems/support/group.yml
deleted file mode 100644
index dac46e8..0000000
--- a/spec/if/rtems/support/group.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Items of this group should move to other groups.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicSupport
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Support Services
-text: |
-  The Classic API should not provide this interface part.
-type: interface
diff --git a/spec/if/rtems/support/header.yml b/spec/if/rtems/support/header.yml
deleted file mode 100644
index f21a705..0000000
--- a/spec/if/rtems/support/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines support services of the API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/support.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/support/is-name-valid.yml b/spec/if/rtems/support/is-name-valid.yml
deleted file mode 100644
index b14ceb9..0000000
--- a/spec/if/rtems/support/is-name-valid.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns true, if the specified object name is valid, otherwise returns false.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: |
-      return ${.:/params[0]/name} != 0;
-    params:
-    - ${../status/code:/name} ${.:/params[0]/name}
-    return: ${/if/c/bool:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_is_name_valid
-notes: null
-params:
-- description: is the object name to check.
-  dir: null
-  name: name
-return:
-  return: null
-  return-values:
-  - description: The specified object name is valid.
-    value: 'true'
-  - description: Otherwise.
-    value: 'false'
-type: interface
diff --git a/spec/if/rtems/support/microseconds-to-ticks.yml b/spec/if/rtems/support/microseconds-to-ticks.yml
deleted file mode 100644
index ef12c59..0000000
--- a/spec/if/rtems/support/microseconds-to-ticks.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the number of clock ticks for the specified microseconds value.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ( ( ${.:/params[0]/name} ) / ${../config/get-microseconds-per-tick:/name}() )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_MICROSECONDS_TO_TICKS
-notes: |
-  The number of clock ticks per second is defined by the
-  ${/if/acfg/microseconds-per-tick:/name} application configuration option.
-params:
-- description: is the microseconds value to convert to clock ticks.
-  dir: null
-  name: _us
-return:
-  return: |
-    The number of clock ticks for the specified microseconds value is returned.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/support/milliseconds-to-ticks.yml b/spec/if/rtems/support/milliseconds-to-ticks.yml
deleted file mode 100644
index 4960593..0000000
--- a/spec/if/rtems/support/milliseconds-to-ticks.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the number of clock ticks for the specified milliseconds value.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${microseconds-to-ticks:/name}( ${milliseconds-to-microseconds:/name}( ${.:/params[0]/name} ) )
-  variants: []
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_MILLISECONDS_TO_TICKS
-notes: |
-  The number of clock ticks per second is defined by the
-  ${/if/acfg/microseconds-per-tick:/name} application configuration option.
-params:
-- description: is the milliseconds value to convert to clock ticks.
-  dir: null
-  name: _ms
-return:
-  return: |
-    The number of clock ticks for the specified milliseconds value is returned.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/support/name-to-characters.yml b/spec/if/rtems/support/name-to-characters.yml
deleted file mode 100644
index 8d4225a..0000000
--- a/spec/if/rtems/support/name-to-characters.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Breaks the object name into the four component characters.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: |
-      *${.:/params[1]/name} = (char) ( ${.:/params[0]/name} >> 24 );
-      *${.:/params[2]/name} = (char) ( ${.:/params[0]/name} >> 16 );
-      *${.:/params[3]/name} = (char) ( ${.:/params[0]/name} >> 8 );
-      *${.:/params[4]/name} = (char) ${.:/params[0]/name};
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - char *${.:/params[1]/name}
-    - char *${.:/params[2]/name}
-    - char *${.:/params[3]/name}
-    - char *${.:/params[4]/name}
-    return: void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_name_to_characters
-notes: null
-params:
-- description: is the object name to break into four component characters.
-  dir: null
-  name: name
-- description: is the first character of the object name.
-  dir: out
-  name: c1
-- description: is the second character of the object name.
-  dir: out
-  name: c2
-- description: is the third character of the object name.
-  dir: out
-  name: c3
-- description: is the fourth character of the object name.
-  dir: out
-  name: c4
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/support/workspace-allocate.yml b/spec/if/rtems/support/workspace-allocate.yml
deleted file mode 100644
index 530b71f..0000000
--- a/spec/if/rtems/support/workspace-allocate.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/size_t:/name} ${.:/params[0]/name}
-    - void **${.:/params[1]/name}
-    return: ${/if/c/bool:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_workspace_allocate
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: bytes
-- description: '%'
-  dir: null
-  name: pointer
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/support/workspace-free.yml b/spec/if/rtems/support/workspace-free.yml
deleted file mode 100644
index 58d184d..0000000
--- a/spec/if/rtems/support/workspace-free.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - void *${.:/params[0]/name}
-    return: ${/if/c/bool:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_workspace_free
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: pointer
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/support/workspace-get-information.yml b/spec/if/rtems/support/workspace-get-information.yml
deleted file mode 100644
index 8317f18..0000000
--- a/spec/if/rtems/support/workspace-get-information.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/impl/heap/information-block:/name} *${.:/params[0]/name}
-    return: ${/if/c/bool:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_workspace_get_information
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: the_info
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/support/workspace-greedy-allocate-all-except-largest.yml b/spec/if/rtems/support/workspace-greedy-allocate-all-except-largest.yml
deleted file mode 100644
index d1b74c5..0000000
--- a/spec/if/rtems/support/workspace-greedy-allocate-all-except-largest.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${/if/c/uintptr_t:/name} *${.:/params[0]/name}
-    return: void *
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_workspace_greedy_allocate_all_except_largest
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: allocatable_size
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/support/workspace-greedy-allocate.yml b/spec/if/rtems/support/workspace-greedy-allocate.yml
deleted file mode 100644
index b9a5d59..0000000
--- a/spec/if/rtems/support/workspace-greedy-allocate.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - const ${/if/c/uintptr_t:/name} *${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    return: void *
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_workspace_greedy_allocate
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: block_sizes
-- description: '%'
-  dir: null
-  name: block_count
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/argument.yml b/spec/if/rtems/tasks/argument.yml
deleted file mode 100644
index c152b9e..0000000
--- a/spec/if/rtems/tasks/argument.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type is used to represent task argument values.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/cpu/uint32ptr:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_argument
-notes: |
-  The type is an architecture-specific unsigned integer type which is large
-  enough to represent pointer values and 32-bit unsigned integers.
-type: interface
diff --git a/spec/if/rtems/tasks/config.yml b/spec/if/rtems/tasks/config.yml
deleted file mode 100644
index f09fc1a..0000000
--- a/spec/if/rtems/tasks/config.yml
+++ /dev/null
@@ -1,109 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This structure defines the configuration of a task constructed by
-  ${construct:/name}.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-- default:
-    brief: |
-      This member defines the name of the task.
-    definition: ${../types/name:/name} ${.:name}
-    description: null
-    kind: member
-    name: name
-  variants: []
-- default:
-    brief: |
-      This member defines the initial priority of the task.
-    definition: ${priority:/name} ${.:name}
-    description: null
-    kind: member
-    name: initial_priority
-  variants: []
-- default:
-    brief: |
-      This member shall point to the task storage area begin.
-    definition: void *${.:name}
-    description: |
-      The task storage area will contain the task stack, the thread-local
-      storage, and the floating-point context on architectures with a separate
-      floating-point context.
-
-      The task storage area begin address and size should be aligned by
-      ${storage-alignment:/name}.  To avoid memory waste, use
-      ${../basedefs/aligned:/name} and ${storage-alignment:/name} to enforce
-      the recommended alignment of a statically allocated task storage area.
-    kind: member
-    name: storage_area
-  variants: []
-- default:
-    brief: |
-      This member defines size of the task storage area in bytes.
-    definition: ${../../c/size_t:/name} ${.:name}
-    description: |
-      Use the ${storage-size:/name} macro to determine the recommended task
-      storage area size.
-    kind: member
-    name: storage_size
-  variants: []
-- default:
-    brief: |
-      This member defines the maximum thread-local storage size supported by the
-      task storage area.
-    definition: ${../../c/size_t:/name} ${.:name}
-    description: |
-      Use ${../basedefs/align-up:/name} and ${storage-alignment:/name} to
-      adjust the size to meet the minimum alignment requirement of a
-      thread-local storage area used to construct a task.
-
-      If the value is less than the actual thread-local storage size, then the
-      task construction by ${construct:/name} fails.
-
-      If the is less than the task storage area size, then the task
-      construction by ${construct:/name} fails.
-    kind: member
-    name: maximum_thread_local_storage_size
-  variants: []
-- default:
-    brief: |
-      This member defines the optional handler to free the task storage area.
-    definition: void ( *${.:name} )( void * )
-    description: |
-      It is called on exactly two mutually exclusive occasions.  Firstly, when
-      the task construction aborts due to a failed task create extension, or
-      secondly, when the task is deleted.  It is called from task context under
-      protection of the object allocator lock.  It is allowed to call free() in
-      this handler.  If handler is ${../../c/null:/name}, then no action will
-      be performed.
-    kind: member
-    name: storage_free
-  variants: []
-- default:
-    brief: |
-      This member defines the initial modes of the task.
-    definition: ${../modes/mode:/name} ${.:name}
-    description: null
-    kind: member
-    name: initial_modes
-  variants: []
-- default:
-    brief: |
-      This member defines the attributes of the task.
-    definition: ${../attr/attribute:/name} ${.:name}
-    description: null
-    kind: member
-    name: attributes
-  variants: []
-definition-kind: typedef-only
-description: null
-enabled-by: true
-interface-type: struct
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_config
-notes: null
-type: interface
diff --git a/spec/if/rtems/tasks/construct.yml b/spec/if/rtems/tasks/construct.yml
deleted file mode 100644
index 329b4b8..0000000
--- a/spec/if/rtems/tasks/construct.yml
+++ /dev/null
@@ -1,91 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Creates a task from the specified the task configuration.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default:
-    body: null
-    params:
-    - const ${config:/name} *${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_construct
-notes: |
-  In contrast to tasks created by ${create:/name}, the tasks constructed by
-  this directive use a user-provided task storage area.  The task storage area
-  contains the task stack, the thread-local storage, and the floating-point
-  context on architectures with a separate floating-point context.
-
-  It is not recommended to mix ${create:/name} and ${.:/name} in an
-  application.  This directive is intended for applications which do not want
-  to use the RTEMS Workspace and instead statically allocate all operating
-  system resources.  The stack space estimate done by <rtems/confdefs.h>
-  assumes that all tasks are created by ${create:/name}.  The estimate can be
-  adjusted to take user-provided task storage areas into account through the
-  ${../../acfg/min-tasks-with-user-provided-storage:/name} application
-  configuration option.
-params:
-- description: is the task configuration.
-  dir: null
-  name: config
-- description: |
-    is the pointer to an object identifier variable.  The identifier of the
-    constructed task object will be stored in this variable, in case of a
-    successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The task name was invalid.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      The initial task priority was invalid.
-    value: ${../status/invalid-priority:/name}
-  - description: |
-      The thread-local storage size is greater than the maximum thread-local
-      storage size specified in the task configuration.  The thread-local
-      storage size is determined by the thread-local variables used by the
-      application and ${../../acfg/max-thread-local-storage-size:/name}.
-    value: ${../status/invalid-size:/name}
-  - description: |
-      The task storage area was too small to provide a task stack of the
-      configured minimum size, see ${../../acfg/min-task-stack-size:/name}.
-      The task storage area contains the task stack, the thread-local storage,
-      and the floating-point context on architectures with a separate
-      floating-point context.
-    value: ${../status/invalid-size:/name}
-  - description: |
-      There was no inactive task object available to construct a task.
-    value: ${../status/too-many:/name}
-  - description: |
-      In multiprocessing configurations, there was no inactive global object
-      available to construct a global task.
-    value: ${../status/too-many:/name}
-  - description: |
-      One of the task create extensions failed during the task construction.
-    value: ${../status/unsatisfied:/name}
-  - description: |
-      In SMP configurations, the non-preemption mode was not supported.
-    value: ${../status/unsatisfied:/name}
-  - description: |
-      In SMP configurations, the interrupt level mode was not supported.
-    value: ${../status/unsatisfied:/name}
-type: interface
diff --git a/spec/if/rtems/tasks/create.yml b/spec/if/rtems/tasks/create.yml
deleted file mode 100644
index bed3c12..0000000
--- a/spec/if/rtems/tasks/create.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Creates a task object.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${priority:/name} ${.:/params[1]/name}
-    - ${/if/c/size_t:/name} ${.:/params[2]/name}
-    - ${../modes/mode:/name} ${.:/params[3]/name}
-    - ${../attr/attribute:/name} ${.:/params[4]/name}
-    - ${../types/id:/name} *${.:/params[5]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive creates a task which resides on the local node. It allocates
-  and initializes a TCB, a stack, and an optional floating point context area.
-  The mode parameter contains values which sets the task’s initial execution
-  mode. The RTEMS_FLOATING_POINT attribute should be specified if the created
-  task is to use a numeric coprocessor. For performance reasons, it is
-  recommended that tasks not using the numeric coprocessor should specify the
-  RTEMS_NO_FLOATING_POINT attribute. If the RTEMS_GLOBAL attribute is
-  specified, the task can be accessed from remote nodes. The task id, returned
-  in id, is used in other task related directives to access the task. When
-  created, a task is placed in the dormant state and can only be made ready to
-  execute using the directive rtems_task_start().
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_create
-notes: null
-params:
-- description: is the user-defined task name.
-  dir: null
-  name: name
-- description: is the initial task priority.
-  dir: null
-  name: initial_priority
-- description: is the task stack size in bytes.
-  dir: null
-  name: stack_size
-- description: is the initial task mode.
-  dir: null
-  name: initial_modes
-- description: is the task attribute set.
-  dir: null
-  name: attribute_set
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    the new task will be stored in this variable, in case of a successful
-    operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[5]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The task name was invalid.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      The initial task priority was invalid.
-    value: ${../status/invalid-priority:/name}
-  - description: |
-      The multiprocessing support was not configured.
-    value: ${../status/mp-not-configured:/name}
-  - description: |
-      There was no inactive task object available to create a new task.
-    value: ${../status/too-many:/name}
-  - description: |
-      In multiprocessing configurations, there was no inactive global object
-      available to create a new global task.
-    value: ${../status/too-many:/name}
-  - description: |
-      There was not enough memory to allocate the task storage area.  The task
-      storage area contains the task stack, the thread-local storage, and the
-      floating point context.
-    value: ${../status/unsatisfied:/name}
-  - description: |
-      One of the task create extensions failed to create the new task.
-    value: ${../status/unsatisfied:/name}
-  - description: |
-      In SMP configurations, the non-preemption mode was not supported.
-    value: ${../status/unsatisfied:/name}
-  - description: |
-      In SMP configurations, the interrupt level mode was not supported.
-    value: ${../status/unsatisfied:/name}
-type: interface
diff --git a/spec/if/rtems/tasks/delete.yml b/spec/if/rtems/tasks/delete.yml
deleted file mode 100644
index dc327d7..0000000
--- a/spec/if/rtems/tasks/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/exit.yml b/spec/if/rtems/tasks/exit.yml
deleted file mode 100644
index d518e9a..0000000
--- a/spec/if/rtems/tasks/exit.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${/if/rtems/basedefs/no-return:/name} void
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_exit
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/get-affinity.yml b/spec/if/rtems/tasks/get-affinity.yml
deleted file mode 100644
index 5c41755..0000000
--- a/spec/if/rtems/tasks/get-affinity.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    - ${/if/c/cpu_set_t:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_get_affinity
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: cpusetsize
-- description: '%'
-  dir: null
-  name: cpuset
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/get-priority.yml b/spec/if/rtems/tasks/get-priority.yml
deleted file mode 100644
index 0b28f3b..0000000
--- a/spec/if/rtems/tasks/get-priority.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} ${.:/params[1]/name}
-    - ${priority:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_get_priority
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: task_id
-- description: '%'
-  dir: null
-  name: scheduler_id
-- description: '%'
-  dir: null
-  name: priority
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/get-scheduler.yml b/spec/if/rtems/tasks/get-scheduler.yml
deleted file mode 100644
index 7a29952..0000000
--- a/spec/if/rtems/tasks/get-scheduler.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_get_scheduler
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: task_id
-- description: '%'
-  dir: null
-  name: scheduler_id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/group.yml b/spec/if/rtems/tasks/group.yml
deleted file mode 100644
index d3ee1d2..0000000
--- a/spec/if/rtems/tasks/group.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Task Manager provides a comprehensive set of directives to create,
-  delete, and administer tasks.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicTasks
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Task Manager
-text: |
-  The Classic API shall provide an interface to the Task Manager.
-type: interface
diff --git a/spec/if/rtems/tasks/header.yml b/spec/if/rtems/tasks/header.yml
deleted file mode 100644
index 2f0d15b..0000000
--- a/spec/if/rtems/tasks/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the main parts of the Tasks Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/tasks.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/tasks/ident.yml b/spec/if/rtems/tasks/ident.yml
deleted file mode 100644
index 3217c99..0000000
--- a/spec/if/rtems/tasks/ident.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a task object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${/if/c/uint32_t:/name} ${.:/params[1]/name}
-    - ${../types/id:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the task identifier associated with the task name
-  specified in ``${.:/params[0]/name}``.
-
-  A task may obtain its own identifier by specifying ${self-define:/name} for
-  the name.
-
-  The node to search is specified in ``${.:/params[1]/name}``.  It shall be
-
-  * a valid node number,
-
-  * the constant ${../object/search-all-nodes:/name} to search in all nodes,
-
-  * the constant ${../object/search-local-node:/name} to search in the local
-    node only, or
-
-  * the constant ${../object/search-other-nodes:/name} to search in all nodes
-    except the local node.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_ident
-notes: |
-  If the task name is not unique, then the task identifier will match the first
-  task with that name in the search order.  However, this task identifier is
-  not guaranteed to correspond to the desired task.  The task identifier is
-  used with other task related directives to access the task.
-
-  If node is ${../object/search-all-nodes:/name}, all nodes are searched with
-  the local node being searched first.  All other nodes are searched with the
-  lowest numbered node searched first.
-
-  If node is a valid node number which does not represent the local node, then
-  only the tasks exported by the designated node are searched.
-
-  This directive does not generate activity on remote nodes.  It accesses only
-  the local copy of the global object table.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: is the node or node set to search for a matching object.
-  dir: null
-  name: node
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[2]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      There was no object with the specified name on the specified nodes.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      In multiprocessing configurations, the specified node was invalid.
-    value: ${../status/invalid-node:/name}
-type: interface
diff --git a/spec/if/rtems/tasks/initialization-table.yml b/spec/if/rtems/tasks/initialization-table.yml
deleted file mode 100644
index 075a8c2..0000000
--- a/spec/if/rtems/tasks/initialization-table.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-- default:
-    brief: '%'
-    definition: ${../types/name:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: name
-  variants: []
-- default:
-    brief: '%'
-    definition: ${/if/c/size_t:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: stack_size
-  variants: []
-- default:
-    brief: '%'
-    definition: ${priority:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: initial_priority
-  variants: []
-- default:
-    brief: '%'
-    definition: ${../attr/attribute:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: attribute_set
-  variants: []
-- default:
-    brief: '%'
-    definition: ${entry:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: entry_point
-  variants: []
-- default:
-    brief: '%'
-    definition: ${../modes/mode:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: mode_set
-  variants: []
-- default:
-    brief: '%'
-    definition: ${argument:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: argument
-  variants: []
-definition-kind: typedef-only
-description: null
-enabled-by: true
-interface-type: struct
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_initialization_tasks_table
-notes: null
-type: interface
diff --git a/spec/if/rtems/tasks/is-suspended.yml b/spec/if/rtems/tasks/is-suspended.yml
deleted file mode 100644
index 38b0679..0000000
--- a/spec/if/rtems/tasks/is-suspended.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_is_suspended
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/maximum-priority.yml b/spec/if/rtems/tasks/maximum-priority.yml
deleted file mode 100644
index 18d7866..0000000
--- a/spec/if/rtems/tasks/maximum-priority.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/maximum-priority:/name}()
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_MAXIMUM_PRIORITY
-notes: null
-type: interface
diff --git a/spec/if/rtems/tasks/minimum-stack-size.yml b/spec/if/rtems/tasks/minimum-stack-size.yml
deleted file mode 100644
index 07934da..0000000
--- a/spec/if/rtems/tasks/minimum-stack-size.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/stack/minimum-size:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_MINIMUM_STACK_SIZE
-notes: null
-type: interface
diff --git a/spec/if/rtems/tasks/mode.yml b/spec/if/rtems/tasks/mode.yml
deleted file mode 100644
index 5674431..0000000
--- a/spec/if/rtems/tasks/mode.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../modes/mode:/name} ${.:/params[0]/name}
-    - ${../modes/mode:/name} ${.:/params[1]/name}
-    - ${../modes/mode:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_mode
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: mode_set
-- description: '%'
-  dir: null
-  name: mask
-- description: '%'
-  dir: null
-  name: previous_mode_set
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/priority.yml b/spec/if/rtems/tasks/priority.yml
deleted file mode 100644
index 9c5d58b..0000000
--- a/spec/if/rtems/tasks/priority.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/uint32_t:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_priority
-notes: null
-type: interface
diff --git a/spec/if/rtems/tasks/restart.yml b/spec/if/rtems/tasks/restart.yml
deleted file mode 100644
index 7822c74..0000000
--- a/spec/if/rtems/tasks/restart.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${argument:/name} ${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_restart
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: argument
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/resume.yml b/spec/if/rtems/tasks/resume.yml
deleted file mode 100644
index a783647..0000000
--- a/spec/if/rtems/tasks/resume.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_resume
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/self-define.yml b/spec/if/rtems/tasks/self-define.yml
deleted file mode 100644
index 00ae665..0000000
--- a/spec/if/rtems/tasks/self-define.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/object/id-of-self:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_SELF
-notes: null
-type: interface
diff --git a/spec/if/rtems/tasks/self.yml b/spec/if/rtems/tasks/self.yml
deleted file mode 100644
index 92eef6d..0000000
--- a/spec/if/rtems/tasks/self.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params: []
-    return: ${../types/id:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_self
-notes: null
-params: []
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/set-affinity.yml b/spec/if/rtems/tasks/set-affinity.yml
deleted file mode 100644
index 6072856..0000000
--- a/spec/if/rtems/tasks/set-affinity.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    - const ${/if/c/cpu_set_t:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_set_affinity
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: cpusetsize
-- description: '%'
-  dir: null
-  name: cpuset
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/set-priority.yml b/spec/if/rtems/tasks/set-priority.yml
deleted file mode 100644
index 8406918..0000000
--- a/spec/if/rtems/tasks/set-priority.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${priority:/name} ${.:/params[1]/name}
-    - ${priority:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_set_priority
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: new_priority
-- description: '%'
-  dir: null
-  name: old_priority
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/set-scheduler.yml b/spec/if/rtems/tasks/set-scheduler.yml
deleted file mode 100644
index 8157f21..0000000
--- a/spec/if/rtems/tasks/set-scheduler.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} ${.:/params[1]/name}
-    - ${priority:/name} ${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_set_scheduler
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: task_id
-- description: '%'
-  dir: null
-  name: scheduler_id
-- description: '%'
-  dir: null
-  name: priority
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/start.yml b/spec/if/rtems/tasks/start.yml
deleted file mode 100644
index 4cca4eb..0000000
--- a/spec/if/rtems/tasks/start.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${entry:/name} ${.:/params[1]/name}
-    - ${argument:/name} ${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_start
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: entry_point
-- description: '%'
-  dir: null
-  name: argument
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/storage-alignment.yml b/spec/if/rtems/tasks/storage-alignment.yml
deleted file mode 100644
index 6a8f677..0000000
--- a/spec/if/rtems/tasks/storage-alignment.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This constant defines the recommended alignment of a task storage area in
-  bytes.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${../../impl/cpu/heap-alignment:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_TASK_STORAGE_ALIGNMENT
-notes: |
-  Use it with ${../basedefs/aligned:/name} to define the alignment of a
-  statically allocated task storage area.
-type: interface
diff --git a/spec/if/rtems/tasks/storage-size.yml b/spec/if/rtems/tasks/storage-size.yml
deleted file mode 100644
index 3ae8583..0000000
--- a/spec/if/rtems/tasks/storage-size.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Returns the recommended task storage area size for the specified size and task
-  attributes.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: |
-    ( ( ${.:/params[0]/name} ) +
-      ( ( ( ${.:/params[1]/name} ) & ${../attr/floating-point:/name} ) != 0 ?
-        ${../../impl/context/fp-size:/name} : 0 ) )
-  variants:
-  - definition: |
-      ( ( ${.:/params[0]/name} ) + ${../../impl/context/fp-size:/name} )
-    enabled-by:
-    - ${../../impl/cpu/all-tasks-are-fp:/name} == ${../basedefs/true:/name}
-description: null
-enabled-by: true
-interface-type: macro
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_TASK_STORAGE_SIZE
-notes: null
-params:
-- description: |
-    is the size dedicated to the task stack and thread-local storage in bytes.
-  dir: null
-  name: _size
-- description: |
-    is the attribute set of the task using the storage area.
-  dir: null
-  name: _attributes
-return:
-  return: |
-    The recommended task storage area size calculated from the input parameters
-    is returned.
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/suspend.yml b/spec/if/rtems/tasks/suspend.yml
deleted file mode 100644
index 6b24ae1..0000000
--- a/spec/if/rtems/tasks/suspend.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_suspend
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/visitor.yml b/spec/if/rtems/tasks/visitor.yml
deleted file mode 100644
index a127b8a..0000000
--- a/spec/if/rtems/tasks/visitor.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/c/bool:/name}( *${.:/name} )( ${tcb:/name} *, void * )
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_visitor
-notes: null
-type: interface
diff --git a/spec/if/rtems/tasks/wake-after.yml b/spec/if/rtems/tasks/wake-after.yml
deleted file mode 100644
index 9e5b435..0000000
--- a/spec/if/rtems/tasks/wake-after.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/interval:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_wake_after
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: ticks
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/wake-when.yml b/spec/if/rtems/tasks/wake-when.yml
deleted file mode 100644
index 15e336a..0000000
--- a/spec/if/rtems/tasks/wake-when.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/time-of-day:/name} *${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_wake_when
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: time_buffer
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/tasks/yield-processor.yml b/spec/if/rtems/tasks/yield-processor.yml
deleted file mode 100644
index 9909fb4..0000000
--- a/spec/if/rtems/tasks/yield-processor.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/watchdog/no-timeout:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_YIELD_PROCESSOR
-notes: null
-type: interface
diff --git a/spec/if/rtems/timer/cancel.yml b/spec/if/rtems/timer/cancel.yml
deleted file mode 100644
index 4b7d906..0000000
--- a/spec/if/rtems/timer/cancel.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_cancel
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/create.yml b/spec/if/rtems/timer/create.yml
deleted file mode 100644
index 913b172..0000000
--- a/spec/if/rtems/timer/create.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_create
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: name
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/delete.yml b/spec/if/rtems/timer/delete.yml
deleted file mode 100644
index 4af7527..0000000
--- a/spec/if/rtems/timer/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/fire-after.yml b/spec/if/rtems/timer/fire-after.yml
deleted file mode 100644
index 675cf98..0000000
--- a/spec/if/rtems/timer/fire-after.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/interval:/name} ${.:/params[1]/name}
-    - ${service-routine-entry:/name} ${.:/params[2]/name}
-    - void *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_fire_after
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: ticks
-- description: '%'
-  dir: null
-  name: routine
-- description: '%'
-  dir: null
-  name: user_data
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/fire-when.yml b/spec/if/rtems/timer/fire-when.yml
deleted file mode 100644
index bfffc93..0000000
--- a/spec/if/rtems/timer/fire-when.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/time-of-day:/name} *${.:/params[1]/name}
-    - ${service-routine-entry:/name} ${.:/params[2]/name}
-    - void *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_fire_when
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: wall_time
-- description: '%'
-  dir: null
-  name: routine
-- description: '%'
-  dir: null
-  name: user_data
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/get-information.yml b/spec/if/rtems/timer/get-information.yml
deleted file mode 100644
index 9ec1c59..0000000
--- a/spec/if/rtems/timer/get-information.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${information:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_get_information
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: the_info
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/group.yml b/spec/if/rtems/timer/group.yml
deleted file mode 100644
index bfccfee..0000000
--- a/spec/if/rtems/timer/group.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The Timer Manager provides support for timer facilities.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicTimer
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Timer Manager
-text: |
-  The Classic API shall provide an interface to the Timer Manager.
-type: interface
diff --git a/spec/if/rtems/timer/header.yml b/spec/if/rtems/timer/header.yml
deleted file mode 100644
index aee0329..0000000
--- a/spec/if/rtems/timer/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the Timer Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/timer.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/timer/ident.yml b/spec/if/rtems/timer/ident.yml
deleted file mode 100644
index ade9ffc..0000000
--- a/spec/if/rtems/timer/ident.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies a timer object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the timer identifier associated with the timer name
-  specified in ``${.:/params[0]/name}``.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_ident
-notes: |
-  If the timer name is not unique, then the timer identifier will match the
-  first timer with that name in the search order.  However, this timer
-  identifier is not guaranteed to correspond to the desired timer.  The timer
-  identifier is used with other timer related directives to access the timer.
-
-  The objects are searched from lowest to the highest index.  Only the local
-  node is searched.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the local node.
-    value: ${../status/invalid-name:/name}
-type: interface
diff --git a/spec/if/rtems/timer/information.yml b/spec/if/rtems/timer/information.yml
deleted file mode 100644
index e71cfd2..0000000
--- a/spec/if/rtems/timer/information.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-- default:
-    brief: |
-      This member is
-    definition: ${classes:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: the_class
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/impl/watchdog/interval:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: initial
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/impl/watchdog/interval:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: start_time
-  variants: []
-- default:
-    brief: |
-      This member is
-    definition: ${/if/impl/watchdog/interval:/name} ${.:name}
-    description: '%'
-    kind: member
-    name: stop_time
-  variants: []
-definition-kind: typedef-only
-description: null
-enabled-by: true
-interface-type: struct
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_information
-notes: null
-type: interface
diff --git a/spec/if/rtems/timer/initiate-server.yml b/spec/if/rtems/timer/initiate-server.yml
deleted file mode 100644
index 872fb96..0000000
--- a/spec/if/rtems/timer/initiate-server.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../tasks/priority:/name} ${.:/params[0]/name}
-    - ${/if/c/size_t:/name} ${.:/params[1]/name}
-    - ${../attr/attribute:/name} ${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_initiate_server
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: priority
-- description: '%'
-  dir: null
-  name: stack_size
-- description: '%'
-  dir: null
-  name: attribute_set
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/reset.yml b/spec/if/rtems/timer/reset.yml
deleted file mode 100644
index 75c49ef..0000000
--- a/spec/if/rtems/timer/reset.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_reset
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/server-default-priority.yml b/spec/if/rtems/timer/server-default-priority.yml
deleted file mode 100644
index 6d49d20..0000000
--- a/spec/if/rtems/timer/server-default-priority.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ( (${../tasks/priority:/name}) -1 )
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_TIMER_SERVER_DEFAULT_PRIORITY
-notes: null
-type: interface
diff --git a/spec/if/rtems/timer/server-fire-after.yml b/spec/if/rtems/timer/server-fire-after.yml
deleted file mode 100644
index dc250be..0000000
--- a/spec/if/rtems/timer/server-fire-after.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/interval:/name} ${.:/params[1]/name}
-    - ${service-routine-entry:/name} ${.:/params[2]/name}
-    - void *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_server_fire_after
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: ticks
-- description: '%'
-  dir: null
-  name: routine
-- description: '%'
-  dir: null
-  name: user_data
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/server-fire-when.yml b/spec/if/rtems/timer/server-fire-when.yml
deleted file mode 100644
index 906350d..0000000
--- a/spec/if/rtems/timer/server-fire-when.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    - ${../types/time-of-day:/name} *${.:/params[1]/name}
-    - ${service-routine-entry:/name} ${.:/params[2]/name}
-    - void *${.:/params[3]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_server_fire_when
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-- description: '%'
-  dir: null
-  name: wall_time
-- description: '%'
-  dir: null
-  name: routine
-- description: '%'
-  dir: null
-  name: user_data
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/timer/service-routine-entry.yml b/spec/if/rtems/timer/service-routine-entry.yml
deleted file mode 100644
index 580f86c..0000000
--- a/spec/if/rtems/timer/service-routine-entry.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ${service-routine:/name} ( *${.:/name} )( ${../types/id:/name}, void * )
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_timer_service_routine_entry
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/group.yml b/spec/if/rtems/types/group.yml
deleted file mode 100644
index d7a1aa7..0000000
--- a/spec/if/rtems/types/group.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This group contains basic types of the Classic API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicTypes
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: Basic Types
-text: |
-  The Classic API shall provide an interface to basic types.
-type: interface
diff --git a/spec/if/rtems/types/header.yml b/spec/if/rtems/types/header.yml
deleted file mode 100644
index 3a6774a..0000000
--- a/spec/if/rtems/types/header.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines types provided by the API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- enabled-by: true
-  role: interface-include
-  uid: /if/c/sys-cpuset
-- enabled-by: true
-  role: interface-include
-  uid: /if/c/sys-impl-timespec
-- enabled-by: true
-  role: interface-include
-  uid: /if/c/sys-impl-timeval
-- enabled-by: true
-  role: interface-include
-  uid: /if/rtems/modes/header
-- enabled-by: RTEMS_MULTIPROCESSING
-  role: interface-include
-  uid: /if/impl/mpci/header
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/rtems/types.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/types/id-none.yml b/spec/if/rtems/types/id-none.yml
deleted file mode 100644
index 1c51dcc..0000000
--- a/spec/if/rtems/types/id-none.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This is an invalid object identifier.
-copyrights:
-- Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/object/id-none:/name}
-  variants: []
-description: |
-  No object can have this identifier.
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_ID_NONE
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/id.yml b/spec/if/rtems/types/id.yml
deleted file mode 100644
index 8c5489e..0000000
--- a/spec/if/rtems/types/id.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Values of this type identify an object.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/object/id:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_id
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/interval.yml b/spec/if/rtems/types/interval.yml
deleted file mode 100644
index da47e8e..0000000
--- a/spec/if/rtems/types/interval.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type is used to represent clock tick intervals.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/watchdog/interval:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_interval
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/minimum-packet-size.yml b/spec/if/rtems/types/minimum-packet-size.yml
deleted file mode 100644
index 3709927..0000000
--- a/spec/if/rtems/types/minimum-packet-size.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/mpci/packet-minimum-size:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_MINIMUM_PACKET_SIZE
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/minimun-hetero-conversion.yml b/spec/if/rtems/types/minimun-hetero-conversion.yml
deleted file mode 100644
index 2425751..0000000
--- a/spec/if/rtems/types/minimun-hetero-conversion.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/mpci/packet-minimum-hetero-conversion:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_MINIMUN_HETERO_CONVERSION
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/mp-packet-classes.yml b/spec/if/rtems/types/mp-packet-classes.yml
deleted file mode 100644
index 7fe7646..0000000
--- a/spec/if/rtems/types/mp-packet-classes.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This enumerated type defines the packet classes.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/mpci/packet-classes:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_mp_packet_classes
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/mpci-get-packet-entry.yml b/spec/if/rtems/types/mpci-get-packet-entry.yml
deleted file mode 100644
index 1ad253b..0000000
--- a/spec/if/rtems/types/mpci-get-packet-entry.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the prototype for the get packet entry point in an MPCI.
-copyrights:
-- Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/mpci/get-packet-entry:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_mpci_get_packet_entry
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/mpci-initialization-entry.yml b/spec/if/rtems/types/mpci-initialization-entry.yml
deleted file mode 100644
index 8e41ca4..0000000
--- a/spec/if/rtems/types/mpci-initialization-entry.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the prototype for the initialization entry point in an
-  MPCI.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/mpci/initialization-entry:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_mpci_initialization_entry
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/mpci-receive-packet-entry.yml b/spec/if/rtems/types/mpci-receive-packet-entry.yml
deleted file mode 100644
index af6ef08..0000000
--- a/spec/if/rtems/types/mpci-receive-packet-entry.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the prototype for the receive packet entry point in an
-  MPCI.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/mpci/receive-entry:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_mpci_receive_packet_entry
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/mpci-return-packet-entry.yml b/spec/if/rtems/types/mpci-return-packet-entry.yml
deleted file mode 100644
index 2406721..0000000
--- a/spec/if/rtems/types/mpci-return-packet-entry.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the prototype for the return packet entry point in an MPCI.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/mpci/return-packet-entry:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_mpci_return_packet_entry
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/mpci-send-packet-entry.yml b/spec/if/rtems/types/mpci-send-packet-entry.yml
deleted file mode 100644
index cfef334..0000000
--- a/spec/if/rtems/types/mpci-send-packet-entry.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the prototype for the send packet entry point in an MPCI.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/mpci/send-entry:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_mpci_send_packet_entry
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/mpci-table.yml b/spec/if/rtems/types/mpci-table.yml
deleted file mode 100644
index d0fe943..0000000
--- a/spec/if/rtems/types/mpci-table.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the MPCI control.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/mpci/control:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_mpci_table
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/multiprocessing-table.yml b/spec/if/rtems/types/multiprocessing-table.yml
deleted file mode 100644
index 0f61fad..0000000
--- a/spec/if/rtems/types/multiprocessing-table.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the MPCI configuration table.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/mpci/configuration-type:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_multiprocessing_table
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/name.yml b/spec/if/rtems/types/name.yml
deleted file mode 100644
index 7c47ef3..0000000
--- a/spec/if/rtems/types/name.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type is used to represent an Classic API object name.
-copyrights:
-- Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/c/uint32_t:/name} rtems_name
-  variants: []
-description: |
-  It is an unsigned 32-bit integer which can be treated as a numeric value or
-  initialized using rtems_build_name() to encode four ASCII characters.  A
-  value of zero may have a special meaning in some directives.
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_name
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/no-timeout.yml b/spec/if/rtems/types/no-timeout.yml
deleted file mode 100644
index 92aef0a..0000000
--- a/spec/if/rtems/types/no-timeout.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: |
-    ( (${interval:/name}) ${/if/impl/watchdog/no-timeout:/name} )
-  variants: []
-description: null
-enabled-by: true
-interface-type: define
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: RTEMS_NO_TIMEOUT
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/packet-prefix.yml b/spec/if/rtems/types/packet-prefix.yml
deleted file mode 100644
index 4959a84..0000000
--- a/spec/if/rtems/types/packet-prefix.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type defines the prefix found at the beginning of each MPCI packet sent
-  between nodes.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-  default: ${/if/impl/mpci/packet-prefix:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: RTEMS_MULTIPROCESSING
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_packet_prefix
-notes: null
-type: interface
diff --git a/spec/if/rtems/types/time-of-day.yml b/spec/if/rtems/types/time-of-day.yml
deleted file mode 100644
index 73a134b..0000000
--- a/spec/if/rtems/types/time-of-day.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  This type is used to represent the calendar time in the Classic API.
-copyrights:
-- Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
-definition:
-- default:
-    brief: |
-      This member represents the year A.D.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: year
-  variants: []
-- default:
-    brief: |
-      This member represents the month of the year with values from 1 to 12.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: month
-  variants: []
-- default:
-    brief: |
-      This member represents the day of the month with values from 1 to 31.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: day
-  variants: []
-- default:
-    brief: |
-      This member represents the hour of the day with values from 0 to 23.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: hour
-  variants: []
-- default:
-    brief: |
-      This member represents the minute of the hour with values from 0 to 59.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: minute
-  variants: []
-- default:
-    brief: |
-      This member represents the second of the minute with values from 0 to 59.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: second
-  variants: []
-- default:
-    brief: |
-      This member represents the clock tick of the second with values from 0 to
-      rtems_clock_get_ticks_per_second() minus one.
-    definition: ${/if/c/uint32_t:/name} ${.:name}
-    description: null
-    kind: member
-    name: ticks
-  variants: []
-definition-kind: typedef-only
-description: null
-enabled-by: true
-interface-type: struct
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_time_of_day
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/create.yml b/spec/if/rtems/userext/create.yml
deleted file mode 100644
index c27385b..0000000
--- a/spec/if/rtems/userext/create.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - const ${table:/name} *${.:/params[1]/name}
-    - ${../types/id:/name} *${.:/params[2]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_extension_create
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: name
-- description: '%'
-  dir: null
-  name: extension_table
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/userext/delete.yml b/spec/if/rtems/userext/delete.yml
deleted file mode 100644
index e8ec0f1..0000000
--- a/spec/if/rtems/userext/delete.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/id:/name} ${.:/params[0]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_extension_delete
-notes: null
-params:
-- description: '%'
-  dir: null
-  name: id
-return:
-  return: null
-  return-values: []
-type: interface
diff --git a/spec/if/rtems/userext/fatal-code.yml b/spec/if/rtems/userext/fatal-code.yml
deleted file mode 100644
index 6420269..0000000
--- a/spec/if/rtems/userext/fatal-code.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/interr/code:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_fatal_code
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/fatal-source.yml b/spec/if/rtems/userext/fatal-source.yml
deleted file mode 100644
index 0fbb36d..0000000
--- a/spec/if/rtems/userext/fatal-source.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/interr/source:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_fatal_source
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/fatal.yml b/spec/if/rtems/userext/fatal.yml
deleted file mode 100644
index ada72a9..0000000
--- a/spec/if/rtems/userext/fatal.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/fatal:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_fatal_extension
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/group.yml b/spec/if/rtems/userext/group.yml
deleted file mode 100644
index 827b234..0000000
--- a/spec/if/rtems/userext/group.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  The User Extensions Manager allows the application developer to augment the
-  executive by allowing them to supply extension routines which are invoked at
-  critical system events.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-description: null
-enabled-by: true
-identifier: RTEMSAPIClassicUserext
-interface-type: group
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: ../group
-name: User Extensions Manager
-text: |
-  The Classic API shall provide an interface to the User Extensions Manager.
-type: interface
diff --git a/spec/if/rtems/userext/header.yml b/spec/if/rtems/userext/header.yml
deleted file mode 100644
index f0d29cf..0000000
--- a/spec/if/rtems/userext/header.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: This header file defines the User Extensions Manager API.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-interface-type: header-file
-links:
-- role: interface-placement
-  uid: /if/domains/api
-path: rtems/extension.h
-prefix: cpukit/include
-type: interface
diff --git a/spec/if/rtems/userext/ident.yml b/spec/if/rtems/userext/ident.yml
deleted file mode 100644
index d52e6b3..0000000
--- a/spec/if/rtems/userext/ident.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: |
-  Identifies an extension set object by the specified object name.
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default:
-    body: null
-    params:
-    - ${../types/name:/name} ${.:/params[0]/name}
-    - ${../types/id:/name} *${.:/params[1]/name}
-    return: ${../status/code:/name}
-  variants: []
-description: |
-  This directive obtains the extension set identifier associated with the
-  extension set name specified in ``${.:/params[0]/name}``.
-enabled-by: true
-interface-type: function
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_extension_ident
-notes: |
-  If the extension set name is not unique, then the extension set identifier
-  will match the first extension set with that name in the search order.
-  However, this extension set identifier is not guaranteed to correspond to the
-  desired extension set.  The extension set identifier is used with other
-  extension related directives to access the extension set.
-
-  The objects are searched from lowest to the highest index.  Only the local
-  node is searched.
-params:
-- description: is the object name to look up.
-  dir: null
-  name: name
-- description: |
-    is the pointer to an object identifier variable.  The object identifier of
-    an object with the specified name will be stored in this variable, in case
-    of a successful operation.
-  dir: out
-  name: id
-return:
-  return: null
-  return-values:
-  - description: |
-      The requested operation was successful.
-    value: ${../status/successful:/name}
-  - description: |
-      The ${.:/params[1]/name} parameter was ${/if/c/null:/name}.
-    value: ${../status/invalid-address:/name}
-  - description: |
-      The ${.:/params[0]/name} parameter was 0.
-    value: ${../status/invalid-name:/name}
-  - description: |
-      There was no object with the specified name on the local node.
-    value: ${../status/invalid-name:/name}
-type: interface
diff --git a/spec/if/rtems/userext/table.yml b/spec/if/rtems/userext/table.yml
deleted file mode 100644
index 4318f1d..0000000
--- a/spec/if/rtems/userext/table.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/table:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_extensions_table
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/task-begin.yml b/spec/if/rtems/userext/task-begin.yml
deleted file mode 100644
index 7d12a9d..0000000
--- a/spec/if/rtems/userext/task-begin.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/thread-begin:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_begin_extension
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/task-create.yml b/spec/if/rtems/userext/task-create.yml
deleted file mode 100644
index 44ffe5d..0000000
--- a/spec/if/rtems/userext/task-create.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/thread-create:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_create_extension
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/task-delete.yml b/spec/if/rtems/userext/task-delete.yml
deleted file mode 100644
index e22a588..0000000
--- a/spec/if/rtems/userext/task-delete.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/thread-delete:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_delete_extension
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/task-exitted.yml b/spec/if/rtems/userext/task-exitted.yml
deleted file mode 100644
index 1978027..0000000
--- a/spec/if/rtems/userext/task-exitted.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/thread-exitted:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_exitted_extension
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/task-restart.yml b/spec/if/rtems/userext/task-restart.yml
deleted file mode 100644
index 28cb85d..0000000
--- a/spec/if/rtems/userext/task-restart.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/thread-restart:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_restart_extension
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/task-start.yml b/spec/if/rtems/userext/task-start.yml
deleted file mode 100644
index 3ace092..0000000
--- a/spec/if/rtems/userext/task-start.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/thread-start:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_start_extension
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/task-switch.yml b/spec/if/rtems/userext/task-switch.yml
deleted file mode 100644
index ca132cc..0000000
--- a/spec/if/rtems/userext/task-switch.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/thread-switch:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_switch_extension
-notes: null
-type: interface
diff --git a/spec/if/rtems/userext/task-terminate.yml b/spec/if/rtems/userext/task-terminate.yml
deleted file mode 100644
index 1da33a7..0000000
--- a/spec/if/rtems/userext/task-terminate.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-brief: '%'
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
-definition:
-  default: ${/if/impl/userext/thread-terminate:/name} ${.:/name}
-  variants: []
-description: null
-enabled-by: true
-interface-type: typedef
-links:
-- role: interface-placement
-  uid: header
-- role: interface-ingroup
-  uid: group
-name: rtems_task_terminate_extension
-notes: null
-type: interface
diff --git a/spec/if/use/container.yml b/spec/if/use/container.yml
deleted file mode 100644
index 66eded4..0000000
--- a/spec/if/use/container.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-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
-interface-type: container
-links:
-- role: interface-placement
-  uid: /if/domains/use
-type: interface
diff --git a/spec/req/applconfig.yml b/spec/req/applconfig.yml
new file mode 100644
index 0000000..a8ec5ea
--- /dev/null
+++ b/spec/req/applconfig.yml
@@ -0,0 +1,15 @@
+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:
+- role: requirement-refinement
+  uid: ../if/api
+non-functional-type: interface-requirement
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The system shall provide configuration options to the application to set
+  configurable system parameters at link time.
+type: requirement
diff --git a/spec/req/rtems/attr/bit-set.yml b/spec/req/rtems/attr/bit-set.yml
deleted file mode 100644
index a3711c4..0000000
--- a/spec/req/rtems/attr/bit-set.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/attr/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  Each non-default directive attribute constant shall be a power of two
-  representable as an integer of type ${/if/rtems/attr/attribute}.
-type: requirement
diff --git a/spec/req/rtems/attr/default.yml b/spec/req/rtems/attr/default.yml
deleted file mode 100644
index 5a628b8..0000000
--- a/spec/req/rtems/attr/default.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/attr/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  Each default directive attribute constant shall have a value of zero.
-type: requirement
diff --git a/spec/req/rtems/attr/semaphore-class.yml b/spec/req/rtems/attr/semaphore-class.yml
deleted file mode 100644
index fa85d7b..0000000
--- a/spec/req/rtems/attr/semaphore-class.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/attr/semaphore-class
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  The ${/if/rtems/attr/semaphore-class:/name} constant shall be equal to the
-  bitwise or of ${/if/rtems/attr/binary-semaphore:/name},
-  ${/if/rtems/attr/counting-semaphore:/name}, and
-  ${/if/rtems/attr/simple-binary-semaphore:/name}.
-type: requirement
diff --git a/spec/req/rtems/attr/unique.yml b/spec/req/rtems/attr/unique.yml
deleted file mode 100644
index d8da776..0000000
--- a/spec/req/rtems/attr/unique.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/attr/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  The non-default directive attribute constants shall have unique values.
-type: requirement
diff --git a/spec/req/rtems/attr/val/attr.yml b/spec/req/rtems/attr/val/attr.yml
deleted file mode 100644
index 22594b1..0000000
--- a/spec/req/rtems/attr/val/attr.yml
+++ /dev/null
@@ -1,278 +0,0 @@
-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: []
-test-actions:
-- action: |
-    /* No action */
-  checks:
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_BARRIER_MANUAL_RELEASE ) );
-    description: |
-      Check that RTEMS_BARRIER_MANUAL_RELEASE is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/barrier-manual-release
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_BINARY_SEMAPHORE ) );
-    description: |
-      Check that RTEMS_BINARY_SEMAPHORE is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/binary-semaphore
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_FLOATING_POINT ) );
-    description: |
-      Check that RTEMS_FLOATING_POINT is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/floating-point
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_GLOBAL ) );
-    description: |
-      Check that RTEMS_GLOBAL is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/global
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_INHERIT_PRIORITY ) );
-    description: |
-      Check that RTEMS_INHERIT_PRIORITY is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/inherit-priority
-  - check: |
-      T_step_true(
-        ${step},
-        IsPowerOfTwo( RTEMS_MULTIPROCESSOR_RESOURCE_SHARING )
-      );
-    description: |
-      Check that RTEMS_MULTIPROCESSOR_RESOURCE_SHARING is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/multiprocessor-resource-sharing
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PRIORITY ) );
-    description: |
-      Check that RTEMS_PRIORITY is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/priority
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PRIORITY_CEILING ) );
-    description: |
-      Check that RTEMS_PRIORITY_CEILING is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/priority-ceiling
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_SIMPLE_BINARY_SEMAPHORE ) );
-    description: |
-      Check that RTEMS_SIMPLE_BINARY_SEMAPHORE is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/simple-binary-semaphore
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_SYSTEM_TASK ) );
-    description: |
-      Check that RTEMS_SYSTEM_TASK is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/attr/system-task
-  description: |
-    Validate the non-default attribute constants.
-  links: []
-- action: |
-    /* No action */
-  checks:
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_APPLICATION_TASK, 0 );
-    description: |
-      Check that RTEMS_APPLICATION_TASK is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/application-task
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_BARRIER_MANUAL_RELEASE, 0 );
-    description: |
-      Check that RTEMS_BARRIER_MANUAL_RELEASE is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/barrier-manual-release
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_COUNTING_SEMAPHORE, 0 );
-    description: |
-      Check that RTEMS_COUNTING_SEMAPHORE is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/counting-semaphore
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_DEFAULT_ATTRIBUTES, 0 );
-    description: |
-      Check that RTEMS_DEFAULT_ATTRIBUTES is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/default
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_FIFO, 0 );
-    description: |
-      Check that RTEMS_FIFO is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/fifo
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_LOCAL, 0 );
-    description: |
-      Check that RTEMS_LOCAL is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/local
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_NO_FLOATING_POINT, 0 );
-    description: |
-      Check that RTEMS_NO_FLOATING_POINT is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/no-floating-point
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_NO_INHERIT_PRIORITY, 0 );
-    description: |
-      Check that RTEMS_NO_INHERIT_PRIORITY is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/no-inherit-priority
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING, 0 );
-    description: |
-      Check that RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/no-multiprocessor-resource-sharing
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_NO_PRIORITY_CEILING, 0 );
-    description: |
-      Check that RTEMS_NO_PRIORITY_CEILING is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/attr/no-priority-ceiling
-  description: |
-    Validate the default attribute constants.
-  links: []
-- action: |
-    attributes = 0;
-    attributes |= RTEMS_BARRIER_AUTOMATIC_RELEASE;
-    attributes |= RTEMS_BINARY_SEMAPHORE;
-    attributes |= RTEMS_FLOATING_POINT;
-    attributes |= RTEMS_GLOBAL;
-    attributes |= RTEMS_INHERIT_PRIORITY;
-    attributes |= RTEMS_MULTIPROCESSOR_RESOURCE_SHARING;
-    attributes |= RTEMS_PRIORITY;
-    attributes |= RTEMS_PRIORITY_CEILING;
-    attributes |= RTEMS_SEMAPHORE_CLASS;
-    attributes |= RTEMS_SIMPLE_BINARY_SEMAPHORE;
-    attributes |= RTEMS_SYSTEM_TASK;
-  checks:
-  - check: |
-      T_step_eq_int( ${step}, PopCount( attributes ), 10 );
-    description: |
-      Check that the count of set bits in the calculated value is equal to the
-      count of non-default attribute constants.  Since each non-default
-      attribute constant is a power of two, this proves that each constant has
-      a unique value.
-    links:
-    - role: validation
-      uid: ../unique
-  description: |
-    Calculate the bitwise or of all non-default attribute constants.
-  links: []
-- action: |
-    attributes = 0;
-    attributes |= RTEMS_BINARY_SEMAPHORE;
-    attributes |= RTEMS_COUNTING_SEMAPHORE;
-    attributes |= RTEMS_SIMPLE_BINARY_SEMAPHORE;
-  checks:
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_SEMAPHORE_CLASS, attributes );
-    description: |
-      Check that the calculated value is equal to RTEMS_SEMAPHORE_CLASS.
-    links:
-    - role: validation
-      uid: ../semaphore-class
-  description: |
-    Calculate the bitwise or of the RTEMS_BINARY_SEMAPHORE,
-    RTEMS_COUNTING_SEMAPHORE, and RTEMS_SIMPLE_BINARY_SEMAPHORE attribute
-    constants.
-  links: []
-test-brief: |
-  Tests the attribute constants of the Classic API.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes:
-- rtems.h
-test-local-includes: []
-test-prologue: |
-  rtems_attribute attributes;
-test-support: |
-  static bool IsPowerOfTwo( rtems_attribute attribute )
-  {
-    return attribute != 0 && ( attribute & ( attribute - 1 ) ) == 0;
-  }
-
-  static int PopCount( rtems_attribute attributes )
-  {
-    int count;
-
-    count = 0;
-
-    while ( attributes != 0 ) {
-      ++count;
-      attributes &= attributes - 1;
-    }
-
-    return count;
-  }
-test-target: testsuites/validation/tc-attr.c
-type: test-case
diff --git a/spec/req/rtems/barrier/ident.yml b/spec/req/rtems/barrier/ident.yml
deleted file mode 100644
index 502f35b..0000000
--- a/spec/req/rtems/barrier/ident.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/barrier/ident
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/barrier/ident:/name} directive shall identify an Classic API
-  barrier class object by its name as specified by ${../ident-local}.
-type: requirement
diff --git a/spec/req/rtems/barrier/val/ident.yml b/spec/req/rtems/barrier/val/ident.yml
deleted file mode 100644
index 3272ff6..0000000
--- a/spec/req/rtems/barrier/val/ident.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-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:
-- role: validation
-  uid: ../ident
-test-actions:
-- action: |
-    ${../../ident-local:/test-run}(
-      id_local_object,
-      ClassicBarrierIdentAction
-    );
-  checks: []
-  description: |
-    Run the generic object identification tests for Classic API partition class
-    objects defined by ${../../ident-local}.
-  links: []
-test-brief: Test the ${/if/rtems/barrier/ident:/name} directive.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes: []
-test-local-includes:
-- tr-object-ident-local.h
-test-prologue: |
-  rtems_status_code sc;
-  rtems_id id_local_object;
-
-  sc = rtems_barrier_create(
-    ClassicObjectLocalIdentName,
-    RTEMS_DEFAULT_ATTRIBUTES,
-    1,
-    &id_local_object
-  );
-  T_assert_rsc_success( sc );
-test-support: |
-  static rtems_status_code ClassicBarrierIdentAction(
-    rtems_name name,
-    rtems_id  *id
-  )
-  {
-    return rtems_barrier_ident( name, id );
-  }
-test-target: testsuites/validation/tc-barrier-ident.c
-type: test-case
diff --git a/spec/req/rtems/event/receive.yml b/spec/req/rtems/event/receive.yml
deleted file mode 100644
index a880dac..0000000
--- a/spec/req/rtems/event/receive.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/event/receive
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/event/receive:/name} directive shall receive events from the
-  application event set of a task as specified by ${send-receive}.
-type: requirement
diff --git a/spec/req/rtems/event/send.yml b/spec/req/rtems/event/send.yml
deleted file mode 100644
index 1c43c6b..0000000
--- a/spec/req/rtems/event/send.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/event/send
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/event/send:/name} directive shall send events to the
-  application event set of a task as specified by ${send-receive}.
-type: requirement
diff --git a/spec/req/rtems/event/system-receive.yml b/spec/req/rtems/event/system-receive.yml
deleted file mode 100644
index 14c5505..0000000
--- a/spec/req/rtems/event/system-receive.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/event/system-receive
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/event/system-receive:/name} directive shall receive events
-  from the system event set of a task as specified by ${send-receive}.
-type: requirement
diff --git a/spec/req/rtems/event/system-send.yml b/spec/req/rtems/event/system-send.yml
deleted file mode 100644
index 3b1df17..0000000
--- a/spec/req/rtems/event/system-send.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/event/system-send
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/event/system-send:/name} directive shall send events to the
-  system event set of a task as specified by ${send-receive}.
-type: requirement
diff --git a/spec/req/rtems/event/val/send-receive.yml b/spec/req/rtems/event/val/send-receive.yml
deleted file mode 100644
index bca154b..0000000
--- a/spec/req/rtems/event/val/send-receive.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-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:
-- role: validation
-  uid: ../receive
-- role: validation
-  uid: ../send
-test-actions:
-- action: |
-    ${../send-receive:/test-run}(
-      EventSend,
-      EventReceive,
-      GetPendingEvents,
-      THREAD_WAIT_CLASS_EVENT,
-      STATES_WAITING_FOR_EVENT
-    );
-  checks: []
-  description: |
-    Run the event send and receive tests for the application event set defined
-    by ${../send-receive}.
-  links: []
-test-brief: |
-  Tests the ${/if/rtems/event/send:/name} and ${/if/rtems/event/receive:/name}
-  directives.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes:
-- rtems/rtems/eventimpl.h
-- rtems/rtems/tasksdata.h
-- rtems/score/statesimpl.h
-- rtems/score/threadimpl.h
-test-local-includes:
-- tr-event-send-receive.h
-test-prologue: null
-test-support: |
-  static rtems_status_code EventSend(
-    rtems_id        id,
-    rtems_event_set event_in
-  )
-  {
-    return rtems_event_send( id, event_in );
-  }
-
-  static rtems_status_code EventReceive(
-    rtems_id         event_in,
-    rtems_option     option_set,
-    rtems_interval   ticks,
-    rtems_event_set *event_out
-  )
-  {
-    return rtems_event_receive( event_in, option_set, ticks, event_out );
-  }
-
-  static rtems_event_set GetPendingEvents( Thread_Control *thread )
-  {
-    RTEMS_API_Control *api;
-
-    api = thread->API_Extensions[ THREAD_API_RTEMS ];
-    return api->Event.pending_events;
-  }
-test-target: testsuites/validation/tc-event-send-receive.c
-type: test-case
diff --git a/spec/req/rtems/event/val/system-send-receive.yml b/spec/req/rtems/event/val/system-send-receive.yml
deleted file mode 100644
index a683f56..0000000
--- a/spec/req/rtems/event/val/system-send-receive.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-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:
-- role: validation
-  uid: ../system-receive
-- role: validation
-  uid: ../system-send
-test-actions:
-- action: |
-    ${../send-receive:/test-run}(
-      EventSystemSend,
-      EventSystemReceive,
-      GetPendingSystemEvents,
-      THREAD_WAIT_CLASS_SYSTEM_EVENT,
-      STATES_WAITING_FOR_SYSTEM_EVENT
-    );
-  checks: []
-  description: |
-    Run the event send and receive tests for the system event set defined
-    by ${../send-receive}.
-  links: []
-test-brief: |
-  Tests the ${/if/rtems/event/system-send:/name} and
-  ${/if/rtems/event/system-receive:/name} directives.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes:
-- rtems/rtems/eventimpl.h
-- rtems/rtems/tasksdata.h
-- rtems/score/statesimpl.h
-- rtems/score/threadimpl.h
-test-local-includes:
-- tr-event-send-receive.h
-test-prologue: null
-test-support: |
-  static rtems_status_code EventSystemSend(
-    rtems_id        id,
-    rtems_event_set event_in
-  )
-  {
-    return rtems_event_system_send( id, event_in );
-  }
-
-  static rtems_status_code EventSystemReceive(
-    rtems_id         event_in,
-    rtems_option     option_set,
-    rtems_interval   ticks,
-    rtems_event_set *event_out
-  )
-  {
-    return rtems_event_system_receive(
-      event_in,
-      option_set,
-      ticks,
-      event_out
-    );
-  }
-
-  static rtems_event_set GetPendingSystemEvents( Thread_Control *thread )
-  {
-    RTEMS_API_Control *api;
-
-    api = thread->API_Extensions[ THREAD_API_RTEMS ];
-    return api->System_event.pending_events;
-  }
-test-target: testsuites/validation/tc-event-send-receive.c
-type: test-case
diff --git a/spec/req/rtems/message/ident.yml b/spec/req/rtems/message/ident.yml
deleted file mode 100644
index 04daf90..0000000
--- a/spec/req/rtems/message/ident.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/message/ident
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/message/ident:/name} directive shall identify an Classic API
-  message queue class object by its name as specified by ${../ident}.
-type: requirement
diff --git a/spec/req/rtems/message/val/ident.yml b/spec/req/rtems/message/val/ident.yml
deleted file mode 100644
index 436c1b9..0000000
--- a/spec/req/rtems/message/val/ident.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-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:
-- role: validation
-  uid: ../ident
-test-actions:
-- action: |
-    ${../../ident:/test-run}(
-      id_local_object,
-      ClassicMessageIdentAction
-    );
-  checks: []
-  description: |
-    Run the generic object identification tests for Classic API message queue
-    class objects defined by ${../../ident}.
-  links: []
-test-brief: Test the ${/if/rtems/message/ident:/name} directive.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes: []
-test-local-includes:
-- tr-object-ident.h
-test-prologue: |
-  rtems_status_code sc;
-  rtems_id id_local_object;
-
-  sc = rtems_message_queue_create(
-    ClassicObjectIdentName,
-    1,
-    1,
-    RTEMS_DEFAULT_ATTRIBUTES,
-    &id_local_object
-  );
-  T_assert_rsc_success( sc );
-test-support: |
-  static rtems_status_code ClassicMessageIdentAction(
-    rtems_name name,
-    uint32_t   node,
-    rtems_id  *id
-  )
-  {
-    return rtems_message_queue_ident( name, node, id );
-  }
-test-target: testsuites/validation/tc-message-ident.c
-type: test-case
diff --git a/spec/req/rtems/modes/bit-set.yml b/spec/req/rtems/modes/bit-set.yml
deleted file mode 100644
index 0492865..0000000
--- a/spec/req/rtems/modes/bit-set.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/modes/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  Each non-default task mode constant shall be a power of two representable as
-  an integer of type ${/if/rtems/modes/mode:/name}.
-type: requirement
diff --git a/spec/req/rtems/modes/default.yml b/spec/req/rtems/modes/default.yml
deleted file mode 100644
index 3eb1c0c..0000000
--- a/spec/req/rtems/modes/default.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/modes/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  Each default task mode constant shall have a value of zero.
-type: requirement
diff --git a/spec/req/rtems/modes/masks-all.yml b/spec/req/rtems/modes/masks-all.yml
deleted file mode 100644
index ceb0a07..0000000
--- a/spec/req/rtems/modes/masks-all.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/modes/all-mode-masks
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  The bitwise and of a task mode mask constant and
-  ${/if/rtems/modes/all-mode-masks:/name} shall be equal to the task mode mask
-  constant.
-type: requirement
diff --git a/spec/req/rtems/modes/masks-unique.yml b/spec/req/rtems/modes/masks-unique.yml
deleted file mode 100644
index 770faf6..0000000
--- a/spec/req/rtems/modes/masks-unique.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/modes/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  The task mode mask constants and 0xff shall have unique values.
-type: requirement
diff --git a/spec/req/rtems/modes/masks.yml b/spec/req/rtems/modes/masks.yml
deleted file mode 100644
index 9b06688..0000000
--- a/spec/req/rtems/modes/masks.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/modes/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  Each task mode mask constant except ${/if/rtems/modes/interrupt-mask} shall
-  be a power of two representable as an integer of type
-  ${/if/rtems/modes/mode:/name}.
-type: requirement
diff --git a/spec/req/rtems/modes/unique.yml b/spec/req/rtems/modes/unique.yml
deleted file mode 100644
index 39a39b0..0000000
--- a/spec/req/rtems/modes/unique.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/modes/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  The non-default task mode constants shall have unique values.
-type: requirement
diff --git a/spec/req/rtems/modes/val/modes.yml b/spec/req/rtems/modes/val/modes.yml
deleted file mode 100644
index cdb6796..0000000
--- a/spec/req/rtems/modes/val/modes.yml
+++ /dev/null
@@ -1,242 +0,0 @@
-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: []
-test-actions:
-- action: |
-    /* No action */
-  checks:
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_ASR ) );
-    description: |
-      Check that RTEMS_NO_ASR is a power of two representable as an integer of
-      type rtems_mode.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/modes/no-asr
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_PREEMPT ) );
-    description: |
-      Check that RTEMS_NO_PREEMPT is a power of two representable as an integer
-      of type rtems_mode.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/modes/no-preempt
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_TIMESLICE ) );
-    description: |
-      Check that RTEMS_TIMESLICE is a power of two representable as an integer
-      of type rtems_mode.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/modes/timeslice
-  description: |
-    Validate the non-default task mode constants.
-  links: []
-- action: |
-    /* No action */
-  checks:
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_ASR, 0 );
-    description: |
-      Check that RTEMS_ASR is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/modes/asr
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_DEFAULT_MODES, 0 );
-    description: |
-      Check that RTEMS_DEFAULT_MODES is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/modes/default
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_NO_TIMESLICE, 0 );
-    description: |
-      Check that RTEMS_NO_TIMESLICE is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/modes/no-timeslice
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_PREEMPT, 0 );
-    description: |
-      Check that RTEMS_PREEMPT is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/modes/preempt
-  description: |
-    Validate the default task mode constants.
-  links: []
-- action: |
-    /* No action */
-  checks:
-  - check: |
-      T_step_eq_u32(
-        ${step},
-        RTEMS_ASR_MASK & RTEMS_ALL_MODE_MASKS,
-        RTEMS_ASR_MASK
-      );
-    description: |
-      Check that the bitwise and of RTEMS_ASR_MASK and RTEMS_ALL_MODE_MASKS is
-      equal to RTEMS_ASR_MASK.
-    links:
-    - role: validation
-      uid: ../masks-all
-    - role: validation
-      uid: /if/rtems/modes/asr-mask
-  - check: |
-      T_step_eq_u32(
-        ${step},
-        RTEMS_PREEMPT_MASK & RTEMS_ALL_MODE_MASKS,
-        RTEMS_PREEMPT_MASK
-      );
-    description: |
-      Check that the bitwise and of RTEMS_PREEMPT_MASK and RTEMS_ALL_MODE_MASKS
-      is equal to RTEMS_PREEMPT_MASK.
-    links:
-    - role: validation
-      uid: ../masks-all
-    - role: validation
-      uid: /if/rtems/modes/preempt-mask
-  - check: |
-      T_step_eq_u32(
-        ${step},
-        RTEMS_TIMESLICE_MASK & RTEMS_ALL_MODE_MASKS,
-        RTEMS_TIMESLICE_MASK
-      );
-    description: |
-      Check that the bitwise and of RTEMS_TIMESLICE_MASK and
-      RTEMS_ALL_MODE_MASKS is equal to RTEMS_TIMESLICE_MASK.
-    links:
-    - role: validation
-      uid: ../masks-all
-    - role: validation
-      uid: /if/rtems/modes/timeslice-mask
-  - check: |
-      T_step_eq_u32(
-        ${step},
-        RTEMS_INTERRUPT_MASK & RTEMS_ALL_MODE_MASKS,
-        RTEMS_INTERRUPT_MASK
-      );
-    description: |
-      Check that the bitwise and of RTEMS_INTERRUPT_MASK and
-      RTEMS_ALL_MODE_MASKS is equal to RTEMS_INTERRUPT_MASK.
-    links:
-    - role: validation
-      uid: ../masks-all
-    - role: validation
-      uid: /if/rtems/modes/interrupt-mask
-  description: |
-    Validate RTEMS_ALL_MODE_MASKS.
-  links: []
-- action: |
-    /* No action */
-  checks:
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_ASR_MASK ) );
-    description: |
-      Check that RTEMS_ASR_MASK is a power of two representable as an integer
-      of type rtems_mode.
-    links:
-    - role: validation
-      uid: ../masks
-    - role: validation
-      uid: /if/rtems/modes/asr-mask
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PREEMPT_MASK ) );
-    description: |
-      Check that RTEMS_PREEMPT_MASK is a power of two representable as an
-      integer of type rtems_mode.
-    links:
-    - role: validation
-      uid: ../masks
-    - role: validation
-      uid: /if/rtems/modes/preempt-mask
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_TIMESLICE_MASK ) );
-    description: |
-      Check that RTEMS_TIMESLICE_MASK is a power of two representable as an
-      integer of type rtems_mode.
-    links:
-    - role: validation
-      uid: ../masks
-    - role: validation
-      uid: /if/rtems/modes/timeslice-mask
-  description: |
-    Validate the task mode mask constants except RTEMS_INTERRUPT_MASK.
-  links: []
-- action: |
-    modes = 0;
-    modes |= 0xff;
-    modes |= RTEMS_ASR_MASK;
-    modes |= RTEMS_PREEMPT_MASK;
-    modes |= RTEMS_TIMESLICE_MASK;
-  checks:
-  - check: |
-      T_step_eq_int( ${step}, PopCount( modes ), 11 );
-    description: |
-      Check that the count of set bits in the calculated value is equal to the
-      count of task mode mask constants except RTEMS_INTERRUPT_MASK plus eight.
-      Since each task mode mask constants except RTEMS_INTERRUPT_MASK is a
-      power of two and the bitwise and of 0xff and RTEMS_INTERRUPT_MASK is
-      equal to RTEMS_INTERRUPT_MASK this proves that each constant and 0xff has
-      a unique value.
-    links:
-    - role: validation
-      uid: ../unique
-    - role: validation
-      uid: /if/rtems/modes/asr-mask
-    - role: validation
-      uid: /if/rtems/modes/preempt-mask
-    - role: validation
-      uid: /if/rtems/modes/timeslice-mask
-  description: |
-    Calculate the bitwise or of all task mode mask constants and 0xff.
-  links: []
-test-brief: |
-  Tests the task mode constants and function-like macros of the Classic API.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes:
-- rtems.h
-test-local-includes: []
-test-prologue: |
-  rtems_mode modes;
-test-support: |
-  static bool IsPowerOfTwo( rtems_mode mode )
-  {
-    return mode != 0 && ( mode & ( mode - 1 ) ) == 0;
-  }
-
-  static int PopCount( rtems_mode modes )
-  {
-    int count;
-
-    count = 0;
-
-    while ( modes != 0 ) {
-      ++count;
-      modes &= modes - 1;
-    }
-
-    return count;
-  }
-test-target: testsuites/validation/tc-modes.c
-type: test-case
diff --git a/spec/req/rtems/options/bit-set.yml b/spec/req/rtems/options/bit-set.yml
deleted file mode 100644
index 21b3c84..0000000
--- a/spec/req/rtems/options/bit-set.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/options/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  Each non-default directive option constant shall be a power of two
-  representable as an integer of type ${/if/rtems/options/option}.
-type: requirement
diff --git a/spec/req/rtems/options/default.yml b/spec/req/rtems/options/default.yml
deleted file mode 100644
index 3f268b3..0000000
--- a/spec/req/rtems/options/default.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/options/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  Each default directive option constant shall have a value of zero.
-type: requirement
diff --git a/spec/req/rtems/options/unique.yml b/spec/req/rtems/options/unique.yml
deleted file mode 100644
index 7dd37b2..0000000
--- a/spec/req/rtems/options/unique.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: requirement-refinement
-  uid: /if/rtems/options/group
-non-functional-type: interface
-rationale: null
-references: []
-requirement-type: non-functional
-text: |
-  The non-default directive option constants shall have unique values.
-type: requirement
diff --git a/spec/req/rtems/options/val/options.yml b/spec/req/rtems/options/val/options.yml
deleted file mode 100644
index 108d302..0000000
--- a/spec/req/rtems/options/val/options.yml
+++ /dev/null
@@ -1,117 +0,0 @@
-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: []
-test-actions:
-- action: |
-    /* No action */
-  checks:
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_EVENT_ANY ) );
-    description: |
-      Check that RTEMS_EVENT_ANY is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/options/event-any
-  - check: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_WAIT ) );
-    description: |
-      Check that RTEMS_NO_WAIT is a power of two.
-    links:
-    - role: validation
-      uid: ../bit-set
-    - role: validation
-      uid: /if/rtems/options/no-wait
-  description: |
-    Validate the non-default option constants.
-  links: []
-- action: |
-    /* No action */
-  checks:
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_DEFAULT_OPTIONS, 0 );
-    description: |
-      Check that RTEMS_DEFAULT_OPTIONS is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/options/default
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_EVENT_ALL, 0 );
-    description: |
-      Check that RTEMS_EVENT_ALL is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/options/event-all
-  - check: |
-      T_step_eq_u32( ${step}, RTEMS_WAIT, 0 );
-    description: |
-      Check that RTEMS_WAIT is equal to zero.
-    links:
-    - role: validation
-      uid: ../default
-    - role: validation
-      uid: /if/rtems/options/wait
-  description: |
-    Validate the default option constants.
-  links: []
-- action: |
-    options = 0;
-    options |= RTEMS_EVENT_ANY;
-    options |= RTEMS_NO_WAIT;
-  checks:
-  - check: |
-      T_step_eq_int( ${step}, PopCount( options ), 2 );
-    description: |
-      Check that the count of set bits in the calculated value is equal to the
-      count of non-default option constants.  Since each non-default option
-      constant is a power of two, this proves that each constant has a unique
-      value.
-    links:
-    - role: validation
-      uid: ../unique
-    - role: validation
-      uid: /if/rtems/options/event-any
-    - role: validation
-      uid: /if/rtems/options/no-wait
-  description: |
-    Calculate the bitwise or of all non-default option constants.
-  links: []
-test-brief: |
-  Tests the option constants of the Classic API.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes:
-- rtems.h
-test-local-includes: []
-test-prologue: |
-  rtems_option options;
-test-support: |
-  static bool IsPowerOfTwo( rtems_option option )
-  {
-    return option != 0 && ( option & ( option - 1 ) ) == 0;
-  }
-
-  static int PopCount( rtems_option options )
-  {
-    int count;
-
-    count = 0;
-
-    while ( options != 0 ) {
-      ++count;
-      options &= options - 1;
-    }
-
-    return count;
-  }
-test-target: testsuites/validation/tc-options.c
-type: test-case
diff --git a/spec/req/rtems/part/ident.yml b/spec/req/rtems/part/ident.yml
deleted file mode 100644
index eb78d34..0000000
--- a/spec/req/rtems/part/ident.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/part/ident
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/part/ident:/name} directive shall identify an Classic API
-  partition class object by its name as specified by ${../ident}.
-type: requirement
diff --git a/spec/req/rtems/part/val/ident.yml b/spec/req/rtems/part/val/ident.yml
deleted file mode 100644
index a991900..0000000
--- a/spec/req/rtems/part/val/ident.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-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:
-- role: validation
-  uid: ../ident
-test-actions:
-- action: |
-    ${../../ident:/test-run}(
-      id_local_object,
-      ClassicPartIdentAction
-    );
-  checks: []
-  description: |
-    Run the generic object identification tests for Classic API partition class
-    objects defined by ${../../ident}.
-  links: []
-test-brief: Test the ${/if/rtems/part/ident:/name} directive.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes: []
-test-local-includes:
-- tr-object-ident.h
-test-prologue: |
-  static long area[32];
-  rtems_status_code sc;
-  rtems_id id_local_object;
-
-  sc = rtems_partition_create(
-    ClassicObjectIdentName,
-    area,
-    sizeof( area ),
-    sizeof( area ),
-    RTEMS_DEFAULT_ATTRIBUTES,
-    &id_local_object
-  );
-  T_assert_rsc_success( sc );
-test-support: |
-  static rtems_status_code ClassicPartIdentAction(
-    rtems_name name,
-    uint32_t   node,
-    rtems_id  *id
-  )
-  {
-    return rtems_partition_ident( name, node, id );
-  }
-test-target: testsuites/validation/tc-part-ident.c
-type: test-case
diff --git a/spec/req/rtems/ratemon/ident.yml b/spec/req/rtems/ratemon/ident.yml
deleted file mode 100644
index 592c765..0000000
--- a/spec/req/rtems/ratemon/ident.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/ratemon/ident
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/ratemon/ident:/name} directive shall identify an Classic API
-  rate monotonic class object by its name as specified by ${../ident-local}.
-type: requirement
diff --git a/spec/req/rtems/ratemon/val/ident.yml b/spec/req/rtems/ratemon/val/ident.yml
deleted file mode 100644
index 8022b8d..0000000
--- a/spec/req/rtems/ratemon/val/ident.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-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:
-- role: validation
-  uid: ../ident
-test-actions:
-- action: |
-    ${../../ident-local:/test-run}(
-      id_local_object,
-      ClassicRatemonIdentAction
-    );
-  checks: []
-  description: |
-    Run the generic object identification tests for Classic API rate monotonic
-    class objects defined by ${../../ident-local}.
-  links: []
-test-brief: Test the ${/if/rtems/part/ident:/name} directive.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes: []
-test-local-includes:
-- tr-object-ident-local.h
-test-prologue: |
-  rtems_status_code sc;
-  rtems_id id_local_object;
-
-  sc = rtems_rate_monotonic_create(
-    ClassicObjectLocalIdentName,
-    &id_local_object
-  );
-  T_assert_rsc_success( sc );
-test-support: |
-  static rtems_status_code ClassicRatemonIdentAction(
-    rtems_name name,
-    rtems_id  *id
-  )
-  {
-    return rtems_rate_monotonic_ident( name, id );
-  }
-test-target: testsuites/validation/tc-ratemon-ident.c
-type: test-case
diff --git a/spec/req/rtems/sem/ident.yml b/spec/req/rtems/sem/ident.yml
deleted file mode 100644
index fb37c32..0000000
--- a/spec/req/rtems/sem/ident.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/sem/ident
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/sem/ident:/name} directive shall identify an Classic API
-  semaphore class object by its name as specified by ${../ident}.
-type: requirement
diff --git a/spec/req/rtems/sem/val/ident.yml b/spec/req/rtems/sem/val/ident.yml
deleted file mode 100644
index 616e32e..0000000
--- a/spec/req/rtems/sem/val/ident.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-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:
-- role: validation
-  uid: ../ident
-test-actions:
-- action: |
-    ${../../ident:/test-run}(
-      id_local_object,
-      ClassicSemIdentAction
-    );
-  checks: []
-  description: |
-    Run the generic object identification tests for Classic API semaphore class
-    objects defined by ${../../ident}.
-  links: []
-test-brief: Test the ${/if/rtems/sem/ident:/name} directive.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes: []
-test-local-includes:
-- tr-object-ident.h
-test-prologue: |
-  rtems_status_code sc;
-  rtems_id id_local_object;
-
-  sc = rtems_semaphore_create(
-    ClassicObjectIdentName,
-    0,
-    RTEMS_DEFAULT_ATTRIBUTES,
-    0,
-    &id_local_object
-  );
-  T_assert_rsc_success( sc );
-test-support: |
-  static rtems_status_code ClassicSemIdentAction(
-    rtems_name name,
-    uint32_t   node,
-    rtems_id  *id
-  )
-  {
-    return rtems_semaphore_ident( name, node, id );
-  }
-test-target: testsuites/validation/tc-sem-ident.c
-type: test-case
diff --git a/spec/req/rtems/tasks/construct-errors.yml b/spec/req/rtems/tasks/construct-errors.yml
deleted file mode 100644
index 2e24ac9..0000000
--- a/spec/req/rtems/tasks/construct-errors.yml
+++ /dev/null
@@ -1,499 +0,0 @@
-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
-functional-type: action
-links:
-- role: interface-function
-  uid: /if/rtems/tasks/construct
-post-conditions:
-- name: Status
-  states:
-  - name: Ok
-    test-code: |
-      T_rsc_success( ctx->status );
-      T_eq_ptr( ctx->id, &ctx->id_value );
-      T_ne_u32( ctx->id_value, 0xffffffff );
-
-      sc = rtems_task_delete( ctx->id_value );
-      T_rsc_success( sc );
-    text: |
-      The status shall be RTEMS_SUCCESSFUL.  The value of the object identifier
-      referenced by the id parameter shall identify the constructed task.
-  - name: InvAddress
-    test-code: |
-      T_rsc( ctx->status, RTEMS_INVALID_ADDRESS );
-      T_null( ctx->id );
-      T_eq_u32( ctx->id_value, 0xffffffff );
-    text: |
-      The status shall be RTEMS_INVALID_ADDRESS.
-  - name: InvName
-    test-code: |
-      T_rsc( ctx->status, RTEMS_INVALID_NAME );
-      T_eq_u32( ctx->id_value, 0xffffffff );
-    text: |
-      The status shall be RTEMS_INVALID_NAME.  If the id parameter is not NULL,
-      then the value of the object identifier referenced by the id parameter
-      shall be unchanged.
-  - name: InvPrio
-    test-code: |
-      T_rsc( ctx->status, RTEMS_INVALID_PRIORITY );
-      T_eq_u32( ctx->id_value, 0xffffffff );
-    text: |
-      The status shall be RTEMS_INVALID_PRIORITY.  If the id parameter is not
-      NULL, then the value of the object identifier referenced by the id
-      parameter shall be unchanged.
-  - name: InvSize
-    test-code: |
-      T_rsc( ctx->status, RTEMS_INVALID_SIZE );
-      T_eq_u32( ctx->id_value, 0xffffffff );
-    text: |
-      The status shall be RTEMS_INVALID_SIZE.  If the id parameter is not NULL,
-      then the value of the object identifier referenced by the id parameter
-      shall be unchanged.
-  - name: TooMany
-    test-code: |
-      T_rsc( ctx->status, RTEMS_TOO_MANY );
-      T_eq_u32( ctx->id_value, 0xffffffff );
-    text: |
-      The status shall be RTEMS_TOO_MANY.  If the id parameter is not NULL,
-      then the value of the object identifier referenced by the id parameter
-      shall be unchanged.
-  - name: Unsatisfied
-    test-code: |
-      T_rsc( ctx->status, RTEMS_UNSATISFIED  );
-      T_eq_u32( ctx->id_value, 0xffffffff );
-    text: |
-      The status shall be RTEMS_UNSATISFIED.  If the id parameter is not NULL,
-      then the value of the object identifier referenced by the id parameter
-      shall be unchanged.
-  test-epilogue: null
-  test-prologue: |
-    rtems_status_code sc;
-pre-conditions:
-- name: Id
-  states:
-  - name: Id
-    test-code: |
-      ctx->id = &ctx->id_value;
-    text: |
-      The id parameter shall reference an object identifier value.
-  - name: 'Null'
-    test-code: |
-      ctx->id = NULL;
-    text: |
-      The id parameter shall be NULL.
-  test-epilogue: null
-  test-prologue: null
-- name: Name
-  states:
-  - name: Valid
-    test-code: |
-      ctx->config.name = rtems_build_name( 'N', 'A', 'M', 'E' );
-    text: |
-      The name of the task configuration shall be valid.
-  - name: Inv
-    test-code: |
-      ctx->config.name = 0;
-    text: |
-      The name of the task configuration shall be invalid.
-  test-epilogue: null
-  test-prologue: null
-- name: Prio
-  states:
-  - name: Valid
-    test-code: |
-      ctx->config.initial_priority = 254;
-    text: |
-      The initial priority of the task configuration shall be valid.
-  - name: Zero
-    test-code: |
-      ctx->config.initial_priority = 0;
-    text: |
-      The initial priority of the task configuration shall be zero.
-  - name: Inv
-    test-code: |
-      ctx->config.initial_priority = 0xffffffff;
-    text: |
-      The initial priority of the task configuration shall be invalid.
-  test-epilogue: null
-  test-prologue: null
-- name: Tasks
-  states:
-  - name: Avail
-    test-code: |
-      /* Nothing to do */
-    text: |
-      There shall be at least one inactive task object available.
-  - name: None
-    test-code: |
-      create_extension_status = ctx->create_extension_status;
-      ctx->create_extension_status = true;
-
-      while ( true ) {
-        rtems_status_code sc;
-        rtems_id id;
-
-        sc = rtems_task_construct( &valid_task_config, &id );
-
-        if ( sc == RTEMS_SUCCESSFUL ) {
-          Objects_Control           *obj;
-          const Objects_Information *info;
-
-          info = _Objects_Get_information_id( id );
-          T_quiet_assert_not_null( info );
-          obj = _Objects_Get_no_protection( id, info );
-          T_quiet_assert_not_null( obj );
-          _Chain_Append_unprotected( &ctx->tasks, &obj->Node );
-        } else {
-          T_quiet_rsc( sc, RTEMS_TOO_MANY );
-          break;
-        }
-      }
-
-      ctx->create_extension_status = create_extension_status;
-    text: |
-      There shall be no inactive task object available.
-  test-epilogue: null
-  test-prologue: |
-    bool create_extension_status;
-- name: TLS
-  states:
-  - name: Enough
-    test-code: |
-      ctx->config.maximum_thread_local_storage_size = MAX_TLS_SIZE;
-    text: |
-      The maximum thread-local storage size of the task configuration shall be
-      greater than or equal to the thread-local storage size.
-  - name: Small
-    test-code: |
-      ctx->config.maximum_thread_local_storage_size = 0;
-    text: |
-      The maximum thread-local storage size of the task configuration shall be
-      less than the thread-local storage size.
-  test-epilogue: null
-  test-prologue: null
-- name: Stack
-  states:
-  - name: Enough
-    test-code: |
-      ctx->stack_size = RTEMS_MINIMUM_STACK_SIZE;
-    text: |
-      The task stack size of the task configuration shall be greater than or
-      equal to the configured minimum size.
-  - name: Small
-    test-code: |
-      ctx->stack_size = 0;
-    text: |
-      The task stack size of the task configuration shall be less than to the
-      configured minimum size.
-  test-epilogue: null
-  test-prologue: null
-- name: Ext
-  states:
-  - name: Ok
-    test-code: |
-      ctx->create_extension_status = true;
-    text: |
-      None of the task create extensions shall fail.
-  - name: Err
-    test-code: |
-      ctx->create_extension_status = false;
-    text: |
-      At least one of the task create extensions shall fail.
-  test-epilogue: null
-  test-prologue: null
-- name: Preempt
-  states:
-  - name: 'Yes'
-    test-code: |
-      ctx->config.initial_modes &= ~RTEMS_PREEMPT_MASK;
-      ctx->config.initial_modes |= RTEMS_PREEMPT;
-    text: |
-      The preemptible mode in the initial modes of the task configuration shall
-      be set to preemptible.
-  - name: 'No'
-    test-code: |
-      ctx->config.initial_modes &= ~RTEMS_PREEMPT_MASK;
-      ctx->config.initial_modes |= RTEMS_NO_PREEMPT;
-    text: |
-      The preemptible mode in the initial modes of the task configuration shall
-      be set to non-preemptible.
-  test-epilogue: null
-  test-prologue: null
-rationale: null
-references: []
-requirement-type: functional
-skip-reasons: {}
-test-action: |
-  ctx->config.storage_size = RTEMS_TASK_STORAGE_SIZE(
-    ctx->config.maximum_thread_local_storage_size + ctx->stack_size,
-    ctx->config.attributes
-  );
-  ctx->status = rtems_task_construct( &ctx->config, ctx->id );
-test-brief: null
-test-cleanup: |
-  Chain_Node *node;
-
-  while ( ( node = _Chain_Get_unprotected( &ctx->tasks ) ) ) {
-    Objects_Control   *obj;
-    rtems_status_code  sc;
-
-    obj = (Objects_Control *) node;
-    sc = rtems_task_delete( obj->id );
-    T_quiet_rsc_success( sc );
-  }
-test-context:
-- brief: null
-  description: null
-  member: rtems_status_code status
-- brief: null
-  description: null
-  member: rtems_task_config config
-- brief: null
-  description: null
-  member: rtems_id *id
-- brief: null
-  description: null
-  member: rtems_id id_value
-- brief: null
-  description: null
-  member: bool create_extension_status
-- brief: null
-  description: null
-  member: size_t stack_size
-- brief: null
-  description: null
-  member: rtems_id extension_id
-- brief: null
-  description: null
-  member: Chain_Control tasks
-test-context-support: null
-test-description: null
-test-header: null
-test-includes:
-- rtems.h
-- rtems/score/chainimpl.h
-- rtems/score/objectimpl.h
-- string.h
-test-local-includes: []
-test-prepare: |
-  ctx->id_value = 0xffffffff;
-  memset( &ctx->config, 0, sizeof( ctx->config ) );
-test-setup:
-  brief: null
-  code: |
-    rtems_status_code sc;
-    int var;
-
-    var = tls_variable;
-    RTEMS_OBFUSCATE_VARIABLE( var );
-    tls_variable = var;
-
-    sc = rtems_extension_create(
-      rtems_build_name( 'T', 'C', 'F', 'C' ),
-      &extensions,
-      &ctx->extension_id
-    );
-    T_rsc_success( sc );
-
-    _Chain_Initialize_empty( &ctx->tasks );
-  description: null
-test-stop: null
-test-support: |
-  static _Thread_local int tls_variable;
-
-  #define MAX_TLS_SIZE RTEMS_ALIGN_UP( 128, RTEMS_TASK_STORAGE_ALIGNMENT )
-
-  RTEMS_ALIGNED( RTEMS_TASK_STORAGE_ALIGNMENT ) static char task_storage[
-    RTEMS_TASK_STORAGE_SIZE(
-      MAX_TLS_SIZE + RTEMS_MINIMUM_STACK_SIZE,
-      RTEMS_FLOATING_POINT
-    )
-  ];
-
-  static const rtems_task_config valid_task_config = {
-    .name = rtems_build_name( 'T', 'A', 'S', 'K' ),
-    .initial_priority = 1,
-    .storage_area = task_storage,
-    .storage_size = sizeof( task_storage ),
-    .maximum_thread_local_storage_size = MAX_TLS_SIZE,
-    .initial_modes = RTEMS_DEFAULT_MODES,
-    .attributes = RTEMS_DEFAULT_MODES
-  };
-
-  static bool ThreadCreate( rtems_tcb *executing, rtems_tcb *created )
-  {
-    (void) executing;
-    (void) created;
-
-    return ReqRtemsTasksConstructErrors_Instance.create_extension_status;
-  }
-
-  static const rtems_extensions_table extensions = {
-    .thread_create = ThreadCreate
-  };
-test-target: testsuites/validation/tc-task-construct-errors.c
-test-teardown:
-  brief: null
-  code: |
-    rtems_status_code sc;
-
-    sc = rtems_extension_delete( ctx->extension_id );
-    T_rsc_success( sc );
-  description: null
-text: ${.:text-template}
-transition-map:
-- enabled-by: true
-  post-conditions:
-    Status: Ok
-  pre-conditions:
-    Id:
-    - Id
-    Name:
-    - Valid
-    Prio:
-    - Valid
-    Tasks:
-    - Avail
-    TLS:
-    - Enough
-    Stack:
-    - Enough
-    Ext:
-    - Ok
-    Preempt: all
-- enabled-by: true
-  post-conditions:
-    Status: InvAddress
-  pre-conditions:
-    Id:
-    - 'Null'
-    Name: all
-    Prio: all
-    Tasks: all
-    TLS: all
-    Stack: all
-    Ext: all
-    Preempt: all
-- enabled-by: true
-  post-conditions:
-    Status: InvName
-  pre-conditions:
-    Id:
-    - Id
-    Name:
-    - Inv
-    Prio: all
-    Tasks: all
-    TLS: all
-    Stack: all
-    Ext: all
-    Preempt: all
-- enabled-by: true
-  post-conditions:
-    Status: InvPrio
-  pre-conditions:
-    Id:
-    - Id
-    Name:
-    - Valid
-    Prio:
-    - Zero
-    - Inv
-    Tasks: all
-    TLS: all
-    Stack: all
-    Ext: all
-    Preempt: all
-- enabled-by: true
-  post-conditions:
-    Status: TooMany
-  pre-conditions:
-    Id:
-    - Id
-    Name:
-    - Valid
-    Prio:
-    - Valid
-    Tasks:
-    - None
-    TLS: all
-    Stack: all
-    Ext: all
-    Preempt: all
-- enabled-by: true
-  post-conditions:
-    Status: InvSize
-  pre-conditions:
-    Id:
-    - Id
-    Name:
-    - Valid
-    Prio:
-    - Valid
-    Tasks:
-    - Avail
-    TLS:
-    - Small
-    Stack: all
-    Ext: all
-    Preempt: all
-- enabled-by: true
-  post-conditions:
-    Status: InvSize
-  pre-conditions:
-    Id:
-    - Id
-    Name:
-    - Valid
-    Prio:
-    - Valid
-    Tasks:
-    - Avail
-    TLS:
-    - Enough
-    Stack:
-    - Small
-    Ext: all
-    Preempt: all
-- enabled-by: true
-  post-conditions:
-    Status: Unsatisfied
-  pre-conditions:
-    Id:
-    - Id
-    Name:
-    - Valid
-    Prio:
-    - Valid
-    Tasks:
-    - Avail
-    TLS:
-    - Enough
-    Stack:
-    - Enough
-    Ext:
-    - Err
-    Preempt: all
-- enabled-by: RTEMS_SMP
-  post-conditions:
-    Status: Unsatisfied
-  pre-conditions:
-    Id:
-    - Id
-    Name:
-    - Valid
-    Prio:
-    - Valid
-    Tasks:
-    - Avail
-    TLS:
-    - Enough
-    Stack:
-    - Enough
-    Ext:
-    - Ok
-    Preempt:
-    - 'No'
-type: requirement
diff --git a/spec/req/rtems/tasks/ident.yml b/spec/req/rtems/tasks/ident.yml
deleted file mode 100644
index 9b4df1d..0000000
--- a/spec/req/rtems/tasks/ident.yml
+++ /dev/null
@@ -1,123 +0,0 @@
-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
-functional-type: action
-links:
-- role: interface-function
-  uid: /if/rtems/tasks/ident
-post-conditions:
-- name: Post
-  states:
-  - name: OkAndSelfId
-    test-code: |
-      T_rsc(ctx->status, RTEMS_SUCCESSFUL);
-      T_eq_ptr(ctx->id, &ctx->id_value);
-      T_eq_u32(ctx->id_value, rtems_task_self());
-    text: |
-      The status shall be RTEMS_SUCCESSFUL.  The value of the object identifier
-      referenced by the id parameter shall be the identifier of the executing
-      thread.
-  - name: Generic
-    test-code: |
-      /* Checks performed by ${../ident:/test-run}() */
-    text: |
-      The post-condition status shall be specified by ${../ident}.
-  test-epilogue: null
-  test-prologue: null
-pre-conditions:
-- name: Pre
-  states:
-  - name: Self
-    test-code: |
-      ctx->id_value = 0xffffffff;
-      ctx->id = &ctx->id_value;
-    text: |
-      The name parameter shall be RTEMS_SELF.
-  - name: Generic
-    test-code: |
-      ctx->id = NULL;
-      /* Preparation performed by ${../ident:/test-run}() */
-    text: |
-      The pre-condition status shall be specified by ${../ident}.
-  test-epilogue: null
-  test-prologue: null
-rationale: null
-references: []
-requirement-type: functional
-skip-reasons: {}
-test-action: |
-  if ( ctx->id != NULL ) {
-    ctx->status = rtems_task_ident( RTEMS_SELF, 0xdeadbeef, ctx->id );
-  } else {
-    ${../ident:/test-run}(
-      ctx->id_local_object,
-      ClassicTaskIdentAction
-    );
-  }
-test-brief: null
-test-cleanup: null
-test-context:
-- brief: null
-  description: null
-  member: rtems_status_code status
-- brief: null
-  description: null
-  member: rtems_id *id
-- brief: null
-  description: null
-  member: rtems_id id_value
-- brief: null
-  description: null
-  member: rtems_id id_local_object
-test-context-support: null
-test-description: null
-test-header: null
-test-includes: []
-test-local-includes:
-- tr-object-ident.h
-test-prepare: null
-test-setup:
-  brief: null
-  code: |
-    static char task_storage[ RTEMS_MINIMUM_STACK_SIZE ];
-    static const rtems_task_config task_config = {
-      .name = ClassicObjectIdentName,
-      .initial_priority = 1,
-      .storage_area = task_storage,
-      .storage_size = sizeof( task_storage ),
-      .initial_modes = RTEMS_DEFAULT_MODES,
-      .attributes = RTEMS_DEFAULT_ATTRIBUTES
-    };
-    rtems_status_code sc;
-
-    sc = rtems_task_build( &task_config, &ctx->id_local_object );
-    T_assert_rsc_success( sc );
-  description: null
-test-stop: null
-test-support: |
-  static rtems_status_code ClassicTaskIdentAction(
-    rtems_name name,
-    uint32_t   node,
-    rtems_id  *id
-  )
-  {
-    return rtems_task_ident( name, node, id );
-  }
-test-target: testsuites/validation/tc-task-ident.c
-test-teardown: null
-text: ${.:text-template}
-transition-map:
-- enabled-by: true
-  post-conditions:
-    Post: OkAndSelfId
-  pre-conditions:
-    Pre:
-    - Self
-- enabled-by: true
-  post-conditions:
-    Post: Generic
-  pre-conditions:
-    Pre:
-    - Generic
-type: requirement
diff --git a/spec/req/rtems/timer/ident.yml b/spec/req/rtems/timer/ident.yml
deleted file mode 100644
index 1391e8b..0000000
--- a/spec/req/rtems/timer/ident.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/timer/ident
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/timer/ident:/name} directive shall identify an Classic API
-  timer class object by its name as specified by ${../ident-local}.
-type: requirement
diff --git a/spec/req/rtems/timer/val/ident.yml b/spec/req/rtems/timer/val/ident.yml
deleted file mode 100644
index 16c2591..0000000
--- a/spec/req/rtems/timer/val/ident.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-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:
-- role: validation
-  uid: ../ident
-test-actions:
-- action: |
-    ${../../ident-local:/test-run}(
-      id_local_object,
-      ClassicTimerIdentAction
-    );
-  checks: []
-  description: |
-    Run the generic object identification tests for Classic API timer class
-    objects defined by ${../../ident-local}.
-  links: []
-test-brief: Test the ${/if/rtems/timer/ident:/name} directive.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes: []
-test-local-includes:
-- tr-object-ident-local.h
-test-prologue: |
-  rtems_status_code sc;
-  rtems_id id_local_object;
-
-  sc = rtems_timer_create(
-    ClassicObjectLocalIdentName,
-    &id_local_object
-  );
-  T_assert_rsc_success( sc );
-test-support: |
-  static rtems_status_code ClassicTimerIdentAction(
-    rtems_name name,
-    rtems_id  *id
-  )
-  {
-    return rtems_timer_ident( name, id );
-  }
-test-target: testsuites/validation/tc-timer-ident.c
-type: test-case
diff --git a/spec/req/rtems/userext/ident.yml b/spec/req/rtems/userext/ident.yml
deleted file mode 100644
index e9d0986..0000000
--- a/spec/req/rtems/userext/ident.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
-  uid: /if/rtems/userext/ident
-rationale: null
-references: []
-requirement-type: functional
-text: |
-  The ${/if/rtems/userext/ident:/name} directive shall identify an Classic API
-  user extension class object by its name as specified by ${../ident-local}.
-type: requirement
diff --git a/spec/req/rtems/userext/val/ident.yml b/spec/req/rtems/userext/val/ident.yml
deleted file mode 100644
index 6da57c5..0000000
--- a/spec/req/rtems/userext/val/ident.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-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:
-- role: validation
-  uid: ../ident
-test-actions:
-- action: |
-    ${../../ident-local:/test-run}(
-      id_local_object,
-      ClassicUserExtIdentAction
-    );
-  checks: []
-  description: |
-    Run the generic object identification tests for Classic API user extension
-    class objects defined by ${../../ident-local}.
-  links: []
-test-brief: Test the ${/if/rtems/userext/ident:/name} directive.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes: []
-test-local-includes:
-- tr-object-ident-local.h
-test-prologue: |
-  static const rtems_extensions_table table;
-  rtems_status_code sc;
-  rtems_id id_local_object;
-
-  sc = rtems_extension_create(
-    ClassicObjectLocalIdentName,
-    &table,
-    &id_local_object
-  );
-  T_assert_rsc_success( sc );
-test-support: |
-  static rtems_status_code ClassicUserExtIdentAction(
-    rtems_name name,
-    rtems_id  *id
-  )
-  {
-    return rtems_extension_ident( name, id );
-  }
-test-target: testsuites/validation/tc-userext-ident.c
-type: test-case
diff --git a/spec/system.yml b/spec/req/system.yml
similarity index 100%
rename from spec/system.yml
rename to spec/req/system.yml
diff --git a/spec/if/rtems/attr/application-task.yml b/spec/rtems/attr/if/application-task.yml
similarity index 100%
rename from spec/if/rtems/attr/application-task.yml
rename to spec/rtems/attr/if/application-task.yml
diff --git a/spec/rtems/attr/if/attribute.yml b/spec/rtems/attr/if/attribute.yml
new file mode 100644
index 0000000..18054d5
--- /dev/null
+++ b/spec/rtems/attr/if/attribute.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type is used to represent Classic API attributes.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_attribute
+notes: |
+  Attributes are primarily used when creating objects.
+type: interface
diff --git a/spec/if/rtems/attr/barrier-automatic-release.yml b/spec/rtems/attr/if/barrier-automatic-release.yml
similarity index 100%
rename from spec/if/rtems/attr/barrier-automatic-release.yml
rename to spec/rtems/attr/if/barrier-automatic-release.yml
diff --git a/spec/if/rtems/attr/barrier-manual-release.yml b/spec/rtems/attr/if/barrier-manual-release.yml
similarity index 100%
rename from spec/if/rtems/attr/barrier-manual-release.yml
rename to spec/rtems/attr/if/barrier-manual-release.yml
diff --git a/spec/if/rtems/attr/binary-semaphore.yml b/spec/rtems/attr/if/binary-semaphore.yml
similarity index 100%
rename from spec/if/rtems/attr/binary-semaphore.yml
rename to spec/rtems/attr/if/binary-semaphore.yml
diff --git a/spec/if/rtems/attr/counting-semaphore.yml b/spec/rtems/attr/if/counting-semaphore.yml
similarity index 100%
rename from spec/if/rtems/attr/counting-semaphore.yml
rename to spec/rtems/attr/if/counting-semaphore.yml
diff --git a/spec/if/rtems/attr/default.yml b/spec/rtems/attr/if/default.yml
similarity index 100%
rename from spec/if/rtems/attr/default.yml
rename to spec/rtems/attr/if/default.yml
diff --git a/spec/if/rtems/attr/fifo.yml b/spec/rtems/attr/if/fifo.yml
similarity index 100%
rename from spec/if/rtems/attr/fifo.yml
rename to spec/rtems/attr/if/fifo.yml
diff --git a/spec/if/rtems/attr/floating-point.yml b/spec/rtems/attr/if/floating-point.yml
similarity index 100%
rename from spec/if/rtems/attr/floating-point.yml
rename to spec/rtems/attr/if/floating-point.yml
diff --git a/spec/if/rtems/attr/global.yml b/spec/rtems/attr/if/global.yml
similarity index 100%
rename from spec/if/rtems/attr/global.yml
rename to spec/rtems/attr/if/global.yml
diff --git a/spec/rtems/attr/if/group.yml b/spec/rtems/attr/if/group.yml
new file mode 100644
index 0000000..d28fd5d
--- /dev/null
+++ b/spec/rtems/attr/if/group.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains the Classic API directive attributes.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicAttr
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Directive Attributes
+text: |
+  The Classic API shall provide an interface to directive attributes.
+type: interface
diff --git a/spec/rtems/attr/if/header.yml b/spec/rtems/attr/if/header.yml
new file mode 100644
index 0000000..ae4340e
--- /dev/null
+++ b/spec/rtems/attr/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines attributes provided by the API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/attr.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/rtems/attr/inherit-priority.yml b/spec/rtems/attr/if/inherit-priority.yml
similarity index 100%
rename from spec/if/rtems/attr/inherit-priority.yml
rename to spec/rtems/attr/if/inherit-priority.yml
diff --git a/spec/if/rtems/attr/local.yml b/spec/rtems/attr/if/local.yml
similarity index 100%
rename from spec/if/rtems/attr/local.yml
rename to spec/rtems/attr/if/local.yml
diff --git a/spec/if/rtems/attr/multiprocessor-resource-sharing.yml b/spec/rtems/attr/if/multiprocessor-resource-sharing.yml
similarity index 100%
rename from spec/if/rtems/attr/multiprocessor-resource-sharing.yml
rename to spec/rtems/attr/if/multiprocessor-resource-sharing.yml
diff --git a/spec/if/rtems/attr/no-floating-point.yml b/spec/rtems/attr/if/no-floating-point.yml
similarity index 100%
rename from spec/if/rtems/attr/no-floating-point.yml
rename to spec/rtems/attr/if/no-floating-point.yml
diff --git a/spec/if/rtems/attr/no-inherit-priority.yml b/spec/rtems/attr/if/no-inherit-priority.yml
similarity index 100%
rename from spec/if/rtems/attr/no-inherit-priority.yml
rename to spec/rtems/attr/if/no-inherit-priority.yml
diff --git a/spec/if/rtems/attr/no-multiprocessor-resource-sharing.yml b/spec/rtems/attr/if/no-multiprocessor-resource-sharing.yml
similarity index 100%
rename from spec/if/rtems/attr/no-multiprocessor-resource-sharing.yml
rename to spec/rtems/attr/if/no-multiprocessor-resource-sharing.yml
diff --git a/spec/if/rtems/attr/no-priority-ceiling.yml b/spec/rtems/attr/if/no-priority-ceiling.yml
similarity index 100%
rename from spec/if/rtems/attr/no-priority-ceiling.yml
rename to spec/rtems/attr/if/no-priority-ceiling.yml
diff --git a/spec/if/rtems/attr/priority-ceiling.yml b/spec/rtems/attr/if/priority-ceiling.yml
similarity index 100%
rename from spec/if/rtems/attr/priority-ceiling.yml
rename to spec/rtems/attr/if/priority-ceiling.yml
diff --git a/spec/if/rtems/attr/priority.yml b/spec/rtems/attr/if/priority.yml
similarity index 100%
rename from spec/if/rtems/attr/priority.yml
rename to spec/rtems/attr/if/priority.yml
diff --git a/spec/if/rtems/attr/semaphore-class.yml b/spec/rtems/attr/if/semaphore-class.yml
similarity index 100%
rename from spec/if/rtems/attr/semaphore-class.yml
rename to spec/rtems/attr/if/semaphore-class.yml
diff --git a/spec/if/rtems/attr/simple-binary-semaphore.yml b/spec/rtems/attr/if/simple-binary-semaphore.yml
similarity index 100%
rename from spec/if/rtems/attr/simple-binary-semaphore.yml
rename to spec/rtems/attr/if/simple-binary-semaphore.yml
diff --git a/spec/if/rtems/attr/system-task.yml b/spec/rtems/attr/if/system-task.yml
similarity index 100%
rename from spec/if/rtems/attr/system-task.yml
rename to spec/rtems/attr/if/system-task.yml
diff --git a/spec/rtems/attr/req/bit-set.yml b/spec/rtems/attr/req/bit-set.yml
new file mode 100644
index 0000000..fee7224
--- /dev/null
+++ b/spec/rtems/attr/req/bit-set.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  Each non-default directive attribute constant shall be a power of two
+  representable as an integer of type ${../if/attribute}.
+type: requirement
diff --git a/spec/rtems/attr/req/default.yml b/spec/rtems/attr/req/default.yml
new file mode 100644
index 0000000..f3f0e32
--- /dev/null
+++ b/spec/rtems/attr/req/default.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  Each default directive attribute constant shall have a value of zero.
+type: requirement
diff --git a/spec/rtems/attr/req/semaphore-class.yml b/spec/rtems/attr/req/semaphore-class.yml
new file mode 100644
index 0000000..0323dd2
--- /dev/null
+++ b/spec/rtems/attr/req/semaphore-class.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/semaphore-class
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The ${../if/semaphore-class:/name} constant shall be equal to the bitwise or
+  of ${../if/binary-semaphore:/name}, ${../if/counting-semaphore:/name}, and
+  ${../if/simple-binary-semaphore:/name}.
+type: requirement
diff --git a/spec/rtems/attr/req/unique.yml b/spec/rtems/attr/req/unique.yml
new file mode 100644
index 0000000..30e7346
--- /dev/null
+++ b/spec/rtems/attr/req/unique.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The non-default directive attribute constants shall have unique values.
+type: requirement
diff --git a/spec/rtems/attr/val/attr.yml b/spec/rtems/attr/val/attr.yml
new file mode 100644
index 0000000..8389436
--- /dev/null
+++ b/spec/rtems/attr/val/attr.yml
@@ -0,0 +1,278 @@
+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: []
+test-actions:
+- action: |
+    /* No action */
+  checks:
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_BARRIER_MANUAL_RELEASE ) );
+    description: |
+      Check that RTEMS_BARRIER_MANUAL_RELEASE is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/barrier-manual-release
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_BINARY_SEMAPHORE ) );
+    description: |
+      Check that RTEMS_BINARY_SEMAPHORE is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/binary-semaphore
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_FLOATING_POINT ) );
+    description: |
+      Check that RTEMS_FLOATING_POINT is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/floating-point
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_GLOBAL ) );
+    description: |
+      Check that RTEMS_GLOBAL is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/global
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_INHERIT_PRIORITY ) );
+    description: |
+      Check that RTEMS_INHERIT_PRIORITY is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/inherit-priority
+  - check: |
+      T_step_true(
+        ${step},
+        IsPowerOfTwo( RTEMS_MULTIPROCESSOR_RESOURCE_SHARING )
+      );
+    description: |
+      Check that RTEMS_MULTIPROCESSOR_RESOURCE_SHARING is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/multiprocessor-resource-sharing
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PRIORITY ) );
+    description: |
+      Check that RTEMS_PRIORITY is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/priority
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PRIORITY_CEILING ) );
+    description: |
+      Check that RTEMS_PRIORITY_CEILING is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/priority-ceiling
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_SIMPLE_BINARY_SEMAPHORE ) );
+    description: |
+      Check that RTEMS_SIMPLE_BINARY_SEMAPHORE is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/simple-binary-semaphore
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_SYSTEM_TASK ) );
+    description: |
+      Check that RTEMS_SYSTEM_TASK is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/system-task
+  description: |
+    Validate the non-default attribute constants.
+  links: []
+- action: |
+    /* No action */
+  checks:
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_APPLICATION_TASK, 0 );
+    description: |
+      Check that RTEMS_APPLICATION_TASK is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/application-task
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_BARRIER_MANUAL_RELEASE, 0 );
+    description: |
+      Check that RTEMS_BARRIER_MANUAL_RELEASE is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/barrier-manual-release
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_COUNTING_SEMAPHORE, 0 );
+    description: |
+      Check that RTEMS_COUNTING_SEMAPHORE is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/counting-semaphore
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_DEFAULT_ATTRIBUTES, 0 );
+    description: |
+      Check that RTEMS_DEFAULT_ATTRIBUTES is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/default
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_FIFO, 0 );
+    description: |
+      Check that RTEMS_FIFO is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/fifo
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_LOCAL, 0 );
+    description: |
+      Check that RTEMS_LOCAL is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/local
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_NO_FLOATING_POINT, 0 );
+    description: |
+      Check that RTEMS_NO_FLOATING_POINT is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/no-floating-point
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_NO_INHERIT_PRIORITY, 0 );
+    description: |
+      Check that RTEMS_NO_INHERIT_PRIORITY is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/no-inherit-priority
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING, 0 );
+    description: |
+      Check that RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/no-multiprocessor-resource-sharing
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_NO_PRIORITY_CEILING, 0 );
+    description: |
+      Check that RTEMS_NO_PRIORITY_CEILING is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/no-priority-ceiling
+  description: |
+    Validate the default attribute constants.
+  links: []
+- action: |
+    attributes = 0;
+    attributes |= RTEMS_BARRIER_AUTOMATIC_RELEASE;
+    attributes |= RTEMS_BINARY_SEMAPHORE;
+    attributes |= RTEMS_FLOATING_POINT;
+    attributes |= RTEMS_GLOBAL;
+    attributes |= RTEMS_INHERIT_PRIORITY;
+    attributes |= RTEMS_MULTIPROCESSOR_RESOURCE_SHARING;
+    attributes |= RTEMS_PRIORITY;
+    attributes |= RTEMS_PRIORITY_CEILING;
+    attributes |= RTEMS_SEMAPHORE_CLASS;
+    attributes |= RTEMS_SIMPLE_BINARY_SEMAPHORE;
+    attributes |= RTEMS_SYSTEM_TASK;
+  checks:
+  - check: |
+      T_step_eq_int( ${step}, PopCount( attributes ), 10 );
+    description: |
+      Check that the count of set bits in the calculated value is equal to the
+      count of non-default attribute constants.  Since each non-default
+      attribute constant is a power of two, this proves that each constant has
+      a unique value.
+    links:
+    - role: validation
+      uid: ../req/unique
+  description: |
+    Calculate the bitwise or of all non-default attribute constants.
+  links: []
+- action: |
+    attributes = 0;
+    attributes |= RTEMS_BINARY_SEMAPHORE;
+    attributes |= RTEMS_COUNTING_SEMAPHORE;
+    attributes |= RTEMS_SIMPLE_BINARY_SEMAPHORE;
+  checks:
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_SEMAPHORE_CLASS, attributes );
+    description: |
+      Check that the calculated value is equal to RTEMS_SEMAPHORE_CLASS.
+    links:
+    - role: validation
+      uid: ../req/semaphore-class
+  description: |
+    Calculate the bitwise or of the RTEMS_BINARY_SEMAPHORE,
+    RTEMS_COUNTING_SEMAPHORE, and RTEMS_SIMPLE_BINARY_SEMAPHORE attribute
+    constants.
+  links: []
+test-brief: |
+  Tests the attribute constants of the Classic API.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-prologue: |
+  rtems_attribute attributes;
+test-support: |
+  static bool IsPowerOfTwo( rtems_attribute attribute )
+  {
+    return attribute != 0 && ( attribute & ( attribute - 1 ) ) == 0;
+  }
+
+  static int PopCount( rtems_attribute attributes )
+  {
+    int count;
+
+    count = 0;
+
+    while ( attributes != 0 ) {
+      ++count;
+      attributes &= attributes - 1;
+    }
+
+    return count;
+  }
+test-target: testsuites/validation/tc-attr.c
+type: test-case
diff --git a/spec/rtems/barrier/if/create.yml b/spec/rtems/barrier/if/create.yml
new file mode 100644
index 0000000..b0dabd1
--- /dev/null
+++ b/spec/rtems/barrier/if/create.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../attr/if/attribute:/name} ${.:/params[1]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[2]/name}
+    - ${../../type/if/id:/name} *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_barrier_create
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: name
+- description: '%'
+  dir: null
+  name: attribute_set
+- description: '%'
+  dir: null
+  name: maximum_waiters
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/barrier/if/delete.yml b/spec/rtems/barrier/if/delete.yml
new file mode 100644
index 0000000..50bcfd8
--- /dev/null
+++ b/spec/rtems/barrier/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_barrier_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/barrier/if/group.yml b/spec/rtems/barrier/if/group.yml
new file mode 100644
index 0000000..b46c474
--- /dev/null
+++ b/spec/rtems/barrier/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Barrier Manager provides a unique synchronization capability which can be
+  used to have a set of tasks block and be unblocked as a set.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicBarrier
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Barrier Manager
+text: |
+  The Classic API shall provide an interface to the Barrier Manager.
+type: interface
diff --git a/spec/rtems/barrier/if/header.yml b/spec/rtems/barrier/if/header.yml
new file mode 100644
index 0000000..0c34ed6
--- /dev/null
+++ b/spec/rtems/barrier/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Barrier Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/barrier.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/barrier/if/ident.yml b/spec/rtems/barrier/if/ident.yml
new file mode 100644
index 0000000..5fba710
--- /dev/null
+++ b/spec/rtems/barrier/if/ident.yml
@@ -0,0 +1,60 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a barrier object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the barrier identifier associated with the barrier
+  name specified in ``${.:/params[0]/name}``.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_barrier_ident
+notes: |
+  If the barrier name is not unique, then the barrier identifier will match the
+  first barrier with that name in the search order.  However, this barrier
+  identifier is not guaranteed to correspond to the desired barrier.  The
+  barrier identifier is used with other barrier related directives to access
+  the barrier.
+
+  The objects are searched from lowest to the highest index.  Only the local
+  node is searched.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the local node.
+    value: ${../../status/if/invalid-name:/name}
+type: interface
diff --git a/spec/rtems/barrier/if/release.yml b/spec/rtems/barrier/if/release.yml
new file mode 100644
index 0000000..1aa1915
--- /dev/null
+++ b/spec/rtems/barrier/if/release.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_barrier_release
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: released
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/barrier/if/wait.yml b/spec/rtems/barrier/if/wait.yml
new file mode 100644
index 0000000..acc51cb
--- /dev/null
+++ b/spec/rtems/barrier/if/wait.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/interval:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_barrier_wait
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: timeout
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/barrier/req/ident.yml b/spec/rtems/barrier/req/ident.yml
new file mode 100644
index 0000000..b228179
--- /dev/null
+++ b/spec/rtems/barrier/req/ident.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/ident
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/ident:/name} directive shall identify an Classic API
+  barrier class object by its name as specified by ${../req/ident-local}.
+type: requirement
diff --git a/spec/rtems/barrier/val/ident.yml b/spec/rtems/barrier/val/ident.yml
new file mode 100644
index 0000000..2db5bdc
--- /dev/null
+++ b/spec/rtems/barrier/val/ident.yml
@@ -0,0 +1,47 @@
+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:
+- role: validation
+  uid: ../req/ident
+test-actions:
+- action: |
+    ${../../req/ident-local:/test-run}(
+      id_local_object,
+      ClassicBarrierIdentAction
+    );
+  checks: []
+  description: |
+    Run the generic object identification tests for Classic API partition class
+    objects defined by ${../../req/ident-local}.
+  links: []
+test-brief: Test the ${../if/ident:/name} directive.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes: []
+test-local-includes:
+- tr-object-ident-local.h
+test-prologue: |
+  rtems_status_code sc;
+  rtems_id id_local_object;
+
+  sc = rtems_barrier_create(
+    ClassicObjectLocalIdentName,
+    RTEMS_DEFAULT_ATTRIBUTES,
+    1,
+    &id_local_object
+  );
+  T_assert_rsc_success( sc );
+test-support: |
+  static rtems_status_code ClassicBarrierIdentAction(
+    rtems_name name,
+    rtems_id  *id
+  )
+  {
+    return rtems_barrier_ident( name, id );
+  }
+test-target: testsuites/validation/tc-barrier-ident.c
+type: test-case
diff --git a/spec/rtems/basedefs/if/alias.yml b/spec/rtems/basedefs/if/alias.yml
new file mode 100644
index 0000000..dcd8827
--- /dev/null
+++ b/spec/rtems/basedefs/if/alias.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Instructs the compiler to generate an alias to the specified target function.
+copyrights:
+- Copyright (C) 2016 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__alias__(#_target)))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_ALIAS
+notes: null
+params:
+- description: |
+    is the target function name.
+  dir: null
+  name: _target
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/basedefs/align-down.yml b/spec/rtems/basedefs/if/align-down.yml
similarity index 100%
rename from spec/if/rtems/basedefs/align-down.yml
rename to spec/rtems/basedefs/if/align-down.yml
diff --git a/spec/if/rtems/basedefs/align-up.yml b/spec/rtems/basedefs/if/align-up.yml
similarity index 100%
rename from spec/if/rtems/basedefs/align-up.yml
rename to spec/rtems/basedefs/if/align-up.yml
diff --git a/spec/rtems/basedefs/if/aligned.yml b/spec/rtems/basedefs/if/aligned.yml
new file mode 100644
index 0000000..9dfc84a
--- /dev/null
+++ b/spec/rtems/basedefs/if/aligned.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Instructs the compiler in a declaration or definition to enforce the
+  specified alignment.
+copyrights:
+- Copyright (C) 2016 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__aligned__(_alignment)))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_ALIGNED
+notes: null
+params:
+- description: |
+    is the desired alignment in bytes.
+  dir: null
+  name: _alignment
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/alloc-align.yml b/spec/rtems/basedefs/if/alloc-align.yml
new file mode 100644
index 0000000..32a39b7
--- /dev/null
+++ b/spec/rtems/basedefs/if/alloc-align.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a declaration that the memory allocation alignment
+  parameter of this function is similar to aligned_alloc().
+copyrights:
+- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__alloc_align__(_index)))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_ALLOC_ALIGN
+notes: null
+params:
+- description: |
+    is the allocation alignment parameter index (starting with one).
+  dir: null
+  name: _index
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/alloc-size-2.yml b/spec/rtems/basedefs/if/alloc-size-2.yml
new file mode 100644
index 0000000..08791bf
--- /dev/null
+++ b/spec/rtems/basedefs/if/alloc-size-2.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a declaration that the memory allocation item count and
+  item size parameter of this function is similar to calloc().
+copyrights:
+- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__alloc_size__(_count_index, _size_index)))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_ALLOC_SIZE_2
+notes: null
+params:
+- description: |
+    is the allocation item count parameter index (starting with one).
+  dir: null
+  name: _count_index
+- description: |
+    is the allocation item size parameter index (starting with one).
+  dir: null
+  name: _size_index
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/alloc-size.yml b/spec/rtems/basedefs/if/alloc-size.yml
new file mode 100644
index 0000000..76a52ba
--- /dev/null
+++ b/spec/rtems/basedefs/if/alloc-size.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a declaration that the memory allocation size parameter
+  of this function is similar to malloc().
+copyrights:
+- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__alloc_size__(_index)))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_ALLOC_SIZE
+notes: null
+params:
+- description: |
+    is the allocation size parameter index (starting with one).
+  dir: null
+  name: _index
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/basedefs/array-size.yml b/spec/rtems/basedefs/if/array-size.yml
similarity index 100%
rename from spec/if/rtems/basedefs/array-size.yml
rename to spec/rtems/basedefs/if/array-size.yml
diff --git a/spec/if/rtems/basedefs/compiler-deprecated-attribute.yml b/spec/rtems/basedefs/if/compiler-deprecated-attribute.yml
similarity index 100%
rename from spec/if/rtems/basedefs/compiler-deprecated-attribute.yml
rename to spec/rtems/basedefs/if/compiler-deprecated-attribute.yml
diff --git a/spec/rtems/basedefs/if/compiler-memory-barrier.yml b/spec/rtems/basedefs/if/compiler-memory-barrier.yml
new file mode 100644
index 0000000..709eb35
--- /dev/null
+++ b/spec/rtems/basedefs/if/compiler-memory-barrier.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This macro forbids the compiler to reorder read and write commands around it.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    do { } while ( 0 )
+  variants:
+  - definition: |
+      ${/compiler/if/asm:/name} volatile( "" ::: "memory" )
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_COMPILER_MEMORY_BARRIER
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/basedefs/compiler-no-return-attribute.yml b/spec/rtems/basedefs/if/compiler-no-return-attribute.yml
similarity index 100%
rename from spec/if/rtems/basedefs/compiler-no-return-attribute.yml
rename to spec/rtems/basedefs/if/compiler-no-return-attribute.yml
diff --git a/spec/if/rtems/basedefs/compiler-packed-attribute.yml b/spec/rtems/basedefs/if/compiler-packed-attribute.yml
similarity index 100%
rename from spec/if/rtems/basedefs/compiler-packed-attribute.yml
rename to spec/rtems/basedefs/if/compiler-packed-attribute.yml
diff --git a/spec/if/rtems/basedefs/compiler-pure-attribute.yml b/spec/rtems/basedefs/if/compiler-pure-attribute.yml
similarity index 100%
rename from spec/if/rtems/basedefs/compiler-pure-attribute.yml
rename to spec/rtems/basedefs/if/compiler-pure-attribute.yml
diff --git a/spec/if/rtems/basedefs/compiler-used-attribute.yml b/spec/rtems/basedefs/if/compiler-used-attribute.yml
similarity index 100%
rename from spec/if/rtems/basedefs/compiler-used-attribute.yml
rename to spec/rtems/basedefs/if/compiler-used-attribute.yml
diff --git a/spec/if/rtems/basedefs/concat.yml b/spec/rtems/basedefs/if/concat.yml
similarity index 100%
rename from spec/if/rtems/basedefs/concat.yml
rename to spec/rtems/basedefs/if/concat.yml
diff --git a/spec/rtems/basedefs/if/const.yml b/spec/rtems/basedefs/if/const.yml
new file mode 100644
index 0000000..adbe611
--- /dev/null
+++ b/spec/rtems/basedefs/if/const.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a function declaration that this function has no effect
+  except the return value and that the return value depends only on the value
+  of parameters.
+copyrights:
+- Copyright (C) 2019 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__const__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_CONST
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/container-of.yml b/spec/rtems/basedefs/if/container-of.yml
new file mode 100644
index 0000000..4a7b7a8
--- /dev/null
+++ b/spec/rtems/basedefs/if/container-of.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the pointer to the container of a specified member pointer.
+copyrights:
+- Copyright (C) 2014 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    ( (_type *) ( (${/c/if/uintptr_t:/name}) ( _m ) - ${/c/if/offsetof:/name}( _type, _member_name ) ) )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_CONTAINER_OF
+notes: null
+params:
+- description: |
+    is the pointer to a member of the container.
+  dir: null
+  name: _m
+- description: |
+    is the type of the container.
+  dir: null
+  name: _type
+- description: |
+    is the designator name of the container member.
+  dir: null
+  name: _member_name
+return:
+  return: |
+    Returns the pointer to the container of a specified member pointer.
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/basedefs/declare-global-symbol.yml b/spec/rtems/basedefs/if/declare-global-symbol.yml
similarity index 100%
rename from spec/if/rtems/basedefs/declare-global-symbol.yml
rename to spec/rtems/basedefs/if/declare-global-symbol.yml
diff --git a/spec/if/rtems/basedefs/deconst.yml b/spec/rtems/basedefs/if/deconst.yml
similarity index 100%
rename from spec/if/rtems/basedefs/deconst.yml
rename to spec/rtems/basedefs/if/deconst.yml
diff --git a/spec/rtems/basedefs/if/define-global-symbol.yml b/spec/rtems/basedefs/if/define-global-symbol.yml
new file mode 100644
index 0000000..ae3116f
--- /dev/null
+++ b/spec/rtems/basedefs/if/define-global-symbol.yml
@@ -0,0 +1,44 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Defines a global symbol with the specified name and value.
+copyrights:
+- Copyright (C) 2018, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      ${/compiler/if/asm:/name}(
+        "\t.globl " ${xstring:/name}( ${symbol-name:/name}( _name ) )
+        "\n\t.set " ${xstring:/name}( ${symbol-name:/name}( _name ) )
+        ", " ${string:/name}( _value ) "\n"
+      )
+    enabled-by:
+    - defined(${/compiler/if/user-label-prefix:/name})
+description: |
+  This macro shall be placed at file scope.
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_DEFINE_GLOBAL_SYMBOL
+notes: null
+params:
+- description: |
+    is the user defined name of the symbol.  The name shall be a valid
+    designator.  On the name a macro expansion is performed and afterwards it
+    is stringified.
+  dir: null
+  name: _name
+- description: |
+    is the value of the symbol.  On the value a macro expansion is performed
+    and afterwards it is stringified.  It shall expand to an integer expression
+    understood by the assembler.
+  dir: null
+  name: _value
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/deprecated.yml b/spec/rtems/basedefs/if/deprecated.yml
new file mode 100644
index 0000000..ca7e213
--- /dev/null
+++ b/spec/rtems/basedefs/if/deprecated.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Instructs the compiler in a declaration to issue a warning whenever a
+  variable, function, or type using this declaration will be used.
+copyrights:
+- Copyright (C) 2009 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__deprecated__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_DEPRECATED
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/dequalify-depthx.yml b/spec/rtems/basedefs/if/dequalify-depthx.yml
new file mode 100644
index 0000000..a3ad7ce
--- /dev/null
+++ b/spec/rtems/basedefs/if/dequalify-depthx.yml
@@ -0,0 +1,50 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Performs a type cast which removes qualifiers without warnings to the
+  specified type for the specified variable.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2014 Paval Pisa
+definition:
+  default: ((_type)(${/c/if/uintptr_t:/name})(const volatile void *)(_var))
+  variants:
+  - definition: |
+      (const_cast<_type>(_var))
+    enabled-by:
+    - defined(${/compiler/if/cplusplus:/name})
+  - definition: |
+      ${/compiler/if/builtin-choose-expr:/name}(${/compiler/if/builtin-types-compatible-p:/name}(
+          ${typeof-refx:/name}(_ptr_level, _var),
+          ${typeof-refx:/name}(_ptr_level, _type)
+        ) || ${/compiler/if/builtin-types-compatible-p:/name}(_type, void *),
+      (_type)(_var),
+      ${/score/if/dequalify-types-not-compatible:/name}())
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_DEQUALIFY_DEPTHX
+notes: null
+params:
+- description: |
+    is the pointer indirection level expressed in *.
+  dir: null
+  name: _ptr_level
+- description: |
+    is the target type of the cast.
+  dir: null
+  name: _type
+- description: |
+    is the variable.
+  dir: null
+  name: _var
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/basedefs/dequalify.yml b/spec/rtems/basedefs/if/dequalify.yml
similarity index 100%
rename from spec/if/rtems/basedefs/dequalify.yml
rename to spec/rtems/basedefs/if/dequalify.yml
diff --git a/spec/if/rtems/basedefs/devolatile.yml b/spec/rtems/basedefs/if/devolatile.yml
similarity index 100%
rename from spec/if/rtems/basedefs/devolatile.yml
rename to spec/rtems/basedefs/if/devolatile.yml
diff --git a/spec/if/rtems/basedefs/expand.yml b/spec/rtems/basedefs/if/expand.yml
similarity index 100%
rename from spec/if/rtems/basedefs/expand.yml
rename to spec/rtems/basedefs/if/expand.yml
diff --git a/spec/if/rtems/basedefs/false.yml b/spec/rtems/basedefs/if/false.yml
similarity index 100%
rename from spec/if/rtems/basedefs/false.yml
rename to spec/rtems/basedefs/if/false.yml
diff --git a/spec/rtems/basedefs/if/group.yml b/spec/rtems/basedefs/if/group.yml
new file mode 100644
index 0000000..87218ed
--- /dev/null
+++ b/spec/rtems/basedefs/if/group.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains basic macros and defines to give access to
+  compiler-specific features.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIBaseDefs
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: /if/api
+name: Base Definitions
+text: |
+  The API shall provide an interface to compiler-specific features.
+type: interface
diff --git a/spec/rtems/basedefs/if/have-member-same-type.yml b/spec/rtems/basedefs/if/have-member-same-type.yml
new file mode 100644
index 0000000..ba099a2
--- /dev/null
+++ b/spec/rtems/basedefs/if/have-member-same-type.yml
@@ -0,0 +1,48 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Evaluates to true if the specified members of two types have compatible
+  types, otherwise to false.
+copyrights:
+- Copyright (C) 2017 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    ${/c/if/true:/name}
+  variants:
+  - definition: |
+      ${/compiler/if/builtin-types-compatible-p:/name}(
+        ${/compiler/if/typeof:/name}( ( (_t_lhs *) 0 )->_m_lhs ),
+        ${/compiler/if/typeof:/name}( ( (_t_rhs *) 0 )->_m_rhs )
+      )
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_HAVE_MEMBER_SAME_TYPE
+notes: null
+params:
+- description: |
+    is the left hand side type.
+  dir: null
+  name: _t_lhs
+- description: |
+    is the left hand side member.
+  dir: null
+  name: _m_lhs
+- description: |
+    is the right hand side type.
+  dir: null
+  name: _t_rhs
+- description: |
+    is the right hand side member.
+  dir: null
+  name: _m_rhs
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/header.yml b/spec/rtems/basedefs/if/header.yml
new file mode 100644
index 0000000..2fc39dc
--- /dev/null
+++ b/spec/rtems/basedefs/if/header.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file provides basic definitions used by the API and
+  the implementation.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- enabled-by: true
+  role: interface-include
+  uid: /build-options/if/cpuopts
+- enabled-by:
+    not: ASM
+  role: interface-include
+  uid: /c/if/stddef
+- enabled-by:
+    not: ASM
+  role: interface-include
+  uid: /c/if/stdbool
+- enabled-by:
+    not: ASM
+  role: interface-include
+  uid: /c/if/stdint
+- role: interface-placement
+  uid: /if/domain
+path: rtems/score/basedefs.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/basedefs/if/inline-routine.yml b/spec/rtems/basedefs/if/inline-routine.yml
new file mode 100644
index 0000000..d06c1bf
--- /dev/null
+++ b/spec/rtems/basedefs/if/inline-routine.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Gives a hint to the compiler in a function declaration to inline this
+  function.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: static inline
+  variants:
+  - definition: static __inline__
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_INLINE_ROUTINE
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/malloclike.yml b/spec/rtems/basedefs/if/malloclike.yml
new file mode 100644
index 0000000..01d6026
--- /dev/null
+++ b/spec/rtems/basedefs/if/malloclike.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a declaration that this function is a memory allocation
+  function similar to malloc().
+copyrights:
+- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__malloc__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_MALLOCLIKE
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/no-inline.yml b/spec/rtems/basedefs/if/no-inline.yml
new file mode 100644
index 0000000..85c0ac0
--- /dev/null
+++ b/spec/rtems/basedefs/if/no-inline.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Instructs the compiler in a function declaration to not inline this function.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__noinline__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_NO_INLINE
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/no-return.yml b/spec/rtems/basedefs/if/no-return.yml
new file mode 100644
index 0000000..614ad15
--- /dev/null
+++ b/spec/rtems/basedefs/if/no-return.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a function declaration that this function does not
+  return.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__noreturn__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_NO_RETURN
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/obfuscate-variable.yml b/spec/rtems/basedefs/if/obfuscate-variable.yml
new file mode 100644
index 0000000..7ad18be
--- /dev/null
+++ b/spec/rtems/basedefs/if/obfuscate-variable.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Obfuscates the variable so that the compiler cannot perform optimizations
+  based on the variable value.
+copyrights:
+- Copyright (C) 2016, 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    (void) (_var)
+  variants:
+  - definition: |
+      ${/compiler/if/asm:/name}( "" : "+r" ( _var ) )
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: |
+  The variable must be simple enough to fit into a register.
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_OBFUSCATE_VARIABLE
+notes: null
+params:
+- description: |
+    is the variable to obfuscate.
+  dir: null
+  name: _var
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/packed.yml b/spec/rtems/basedefs/if/packed.yml
new file mode 100644
index 0000000..a575a77
--- /dev/null
+++ b/spec/rtems/basedefs/if/packed.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Instructs the compiler in a type definition to place members of a structure
+  or union so that the memory required is minimized.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__packed__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_PACKED
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/predict-false.yml b/spec/rtems/basedefs/if/predict-false.yml
new file mode 100644
index 0000000..5bf1356
--- /dev/null
+++ b/spec/rtems/basedefs/if/predict-false.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the value of the specified integral expression and tells the compiler
+  that the predicted value is false (1).
+copyrights:
+- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    ( _exp )
+  variants:
+  - definition: |
+      ${/compiler/if/builtin-expect:/name}( ( _exp ), 0 )
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_PREDICT_FALSE
+notes: null
+params:
+- description: |
+    is the expression.
+  dir: null
+  name: _exp
+return:
+  return: The value of the expression.
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/predict-true.yml b/spec/rtems/basedefs/if/predict-true.yml
new file mode 100644
index 0000000..47bea31
--- /dev/null
+++ b/spec/rtems/basedefs/if/predict-true.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the value of the specified integral expression and tells the compiler
+  that the predicted value is true (1).
+copyrights:
+- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    ( _exp )
+  variants:
+  - definition: |
+      ${/compiler/if/builtin-expect:/name}( ( _exp ), 1 )
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_PREDICT_TRUE
+notes: null
+params:
+- description: |
+    is the expression.
+  dir: null
+  name: _exp
+return:
+  return: The value of the expression.
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/printflike.yml b/spec/rtems/basedefs/if/printflike.yml
new file mode 100644
index 0000000..07ba944
--- /dev/null
+++ b/spec/rtems/basedefs/if/printflike.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a declaration that this function expects printf()-like
+  arguments.
+copyrights:
+- Copyright (C) 2016 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__format__(__printf__, _format_pos, _ap_pos)))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_PRINTFLIKE
+notes: null
+params:
+- description: |
+    is the position of the format parameter index (starting with one).
+  dir: null
+  name: _format_pos
+- description: |
+    is the position of the argument pointer parameter index (starting with
+    one).
+  dir: null
+  name: _ap_pos
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/pure.yml b/spec/rtems/basedefs/if/pure.yml
new file mode 100644
index 0000000..f5c946a
--- /dev/null
+++ b/spec/rtems/basedefs/if/pure.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a function declaration that this function has no effect
+  except the return value and that the return value depends only on the value
+  of parameters and/or global variables.
+copyrights:
+- Copyright (C) 2011 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__pure__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_PURE
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/return-address.yml b/spec/rtems/basedefs/if/return-address.yml
new file mode 100644
index 0000000..6ce9469
--- /dev/null
+++ b/spec/rtems/basedefs/if/return-address.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the return address of the current function.
+copyrights:
+- Copyright (C) 2019 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/c/if/null:/name}
+  variants:
+  - definition: |
+      ${/compiler/if/builtin-return-address:/name}(0)
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_RETURN_ADDRESS
+notes: null
+params: []
+return:
+  return: The return address of the current function.
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/section.yml b/spec/rtems/basedefs/if/section.yml
new file mode 100644
index 0000000..12a6c20
--- /dev/null
+++ b/spec/rtems/basedefs/if/section.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Instructs the compiler to place a specific variable or function in the
+  specified section.
+copyrights:
+- Copyright (C) 2015 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__section__(_section)))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_SECTION
+notes: null
+params:
+- description: |
+    is the section name as a string.
+  dir: null
+  name: _section
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/static-assert.yml b/spec/rtems/basedefs/if/static-assert.yml
new file mode 100644
index 0000000..fd95fc0
--- /dev/null
+++ b/spec/rtems/basedefs/if/static-assert.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Asserts at compile time that the specified condition is satisfied.
+copyrights:
+- Copyright (C) 2011, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    struct rtems_static_assert_ ## _msg
+      { int rtems_static_assert_ ## _msg : (_cond) ? 1 : -1; }
+  variants:
+  - definition: |
+      static_assert(_cond, # _msg)
+    enabled-by:
+    - ${/compiler/if/cplusplus:/name} >= 201103L
+  - definition: |
+      _Static_assert(_cond, # _msg)
+    enabled-by:
+    - ${/compiler/if/stdc-version:/name} >= 201112L
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_STATIC_ASSERT
+notes: null
+params:
+- description: |
+    is the condition this static assertion shall satisfy.
+  dir: null
+  name: _cond
+- description: |
+    is the error message in case the static assertion fails.
+  dir: null
+  name: _msg
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/basedefs/string.yml b/spec/rtems/basedefs/if/string.yml
similarity index 100%
rename from spec/if/rtems/basedefs/string.yml
rename to spec/rtems/basedefs/if/string.yml
diff --git a/spec/rtems/basedefs/if/symbol-name.yml b/spec/rtems/basedefs/if/symbol-name.yml
new file mode 100644
index 0000000..f06ed9d
--- /dev/null
+++ b/spec/rtems/basedefs/if/symbol-name.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Constructs a symbol name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    ${expand:/name}(_name)
+  variants:
+  - definition: |
+      ${xconcat:/name}(${/compiler/if/user-label-prefix:/name}, _name)
+    enabled-by:
+    - defined(${/compiler/if/user-label-prefix:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_SYMBOL_NAME
+notes: null
+params:
+- description: |
+    is the user defined name of the symbol.  The name shall be a valid
+    designator.  On the name a macro expansion is performed.
+  dir: null
+  name: _name
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/basedefs/true.yml b/spec/rtems/basedefs/if/true.yml
similarity index 100%
rename from spec/if/rtems/basedefs/true.yml
rename to spec/rtems/basedefs/if/true.yml
diff --git a/spec/rtems/basedefs/if/typeof-refx.yml b/spec/rtems/basedefs/if/typeof-refx.yml
new file mode 100644
index 0000000..7532ffe
--- /dev/null
+++ b/spec/rtems/basedefs/if/typeof-refx.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the type of a pointer reference of the specified level to the specified type.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2014 Paval Pisa
+definition:
+  default: ''
+  variants:
+  - definition: |
+      ${/compiler/if/typeof:/name}(_level(union { int z; ${/compiler/if/typeof:/name}(_target) x; }){0}.x)
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: |
+  The reference type idea is based on libHX by Jan Engelhardt.
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_TYPEOF_REFX
+notes: null
+params:
+- description: |
+    is the pointer indirection level expressed in *.
+  dir: null
+  name: _level
+- description: |
+    is the reference target type.
+  dir: null
+  name: _target
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/unreachable.yml b/spec/rtems/basedefs/if/unreachable.yml
new file mode 100644
index 0000000..3a86be7
--- /dev/null
+++ b/spec/rtems/basedefs/if/unreachable.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler that this program point is unreachable.
+copyrights:
+- Copyright (C) 2016 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    ${/score/if/assert-unreachable:/name}()
+  variants:
+  - definition: |
+      do {
+        ${/compiler/if/builtin-unreachable:/name}();
+        ${/score/if/assert-unreachable:/name}();
+      } while ( 0 )
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+name: RTEMS_UNREACHABLE
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/unused.yml b/spec/rtems/basedefs/if/unused.yml
new file mode 100644
index 0000000..44ffe02
--- /dev/null
+++ b/spec/rtems/basedefs/if/unused.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler that a specific variable or function is deliberately
+  unused.
+copyrights:
+- Copyright (C) 2013 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__unused__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_UNUSED
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/used.yml b/spec/rtems/basedefs/if/used.yml
new file mode 100644
index 0000000..ea8a4c3
--- /dev/null
+++ b/spec/rtems/basedefs/if/used.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler that a specific variable or function is used.
+copyrights:
+- Copyright (C) 2009 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__used__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_USED
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/warn-unused-result.yml b/spec/rtems/basedefs/if/warn-unused-result.yml
new file mode 100644
index 0000000..df17643
--- /dev/null
+++ b/spec/rtems/basedefs/if/warn-unused-result.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a declaration that the result of this function should
+  be used.
+copyrights:
+- Copyright (C) 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__warn_unused_result__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_WARN_UNUSED_RESULT
+notes: null
+type: interface
diff --git a/spec/rtems/basedefs/if/weak-alias.yml b/spec/rtems/basedefs/if/weak-alias.yml
new file mode 100644
index 0000000..b23dec8
--- /dev/null
+++ b/spec/rtems/basedefs/if/weak-alias.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Instructs the compiler to generate a weak alias to the specified target
+  function.
+copyrights:
+- Copyright (C) 2017 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__weak__, __alias__(#_target)))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_WEAK_ALIAS
+notes: null
+params:
+- description: |
+    is the target function name.
+  dir: null
+  name: _target
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/basedefs/if/weak.yml b/spec/rtems/basedefs/if/weak.yml
new file mode 100644
index 0000000..ebd60fb
--- /dev/null
+++ b/spec/rtems/basedefs/if/weak.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Tells the compiler in a function definition that this function should be
+  weak.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ''
+  variants:
+  - definition: |
+      __attribute__((__weak__))
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: |
+  Use this attribute for function definitions.  Do not use it for function
+  declarations.
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_WEAK
+notes: null
+type: interface
diff --git a/spec/if/rtems/basedefs/xconcat.yml b/spec/rtems/basedefs/if/xconcat.yml
similarity index 100%
rename from spec/if/rtems/basedefs/xconcat.yml
rename to spec/rtems/basedefs/if/xconcat.yml
diff --git a/spec/if/rtems/basedefs/xstring.yml b/spec/rtems/basedefs/if/xstring.yml
similarity index 100%
rename from spec/if/rtems/basedefs/xstring.yml
rename to spec/rtems/basedefs/if/xstring.yml
diff --git a/spec/rtems/basedefs/if/zero-length-array.yml b/spec/rtems/basedefs/if/zero-length-array.yml
new file mode 100644
index 0000000..e69a17a
--- /dev/null
+++ b/spec/rtems/basedefs/if/zero-length-array.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This is a constant to declare zero-length arrays.
+copyrights:
+- Copyright (C) 2014 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: '0'
+  variants:
+  - definition: null
+    enabled-by:
+    - ${/compiler/if/stdc-version:/name} >= 199409L
+description: |
+  Zero-length arrays are valid in C99 as flexible array members.  C++11 does
+  not allow flexible array members.  Use the GNU extension which is also
+  supported by other compilers.
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_ZERO_LENGTH_ARRAY
+notes: null
+type: interface
diff --git a/spec/rtems/cache/if/aligned-malloc.yml b/spec/rtems/cache/if/aligned-malloc.yml
new file mode 100644
index 0000000..f7443a3
--- /dev/null
+++ b/spec/rtems/cache/if/aligned-malloc.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/size_t:/name} ${.:/params[0]/name}
+    return: void *
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_aligned_malloc
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: nbytes
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/cache/if/coherent-add-area.yml b/spec/rtems/cache/if/coherent-add-area.yml
new file mode 100644
index 0000000..677902d
--- /dev/null
+++ b/spec/rtems/cache/if/coherent-add-area.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - void *${.:/params[0]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[1]/name}
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_coherent_add_area
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: area_begin
+- description: '%'
+  dir: null
+  name: area_size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/cache/if/coherent-allocate.yml b/spec/rtems/cache/if/coherent-allocate.yml
new file mode 100644
index 0000000..23fc4a0
--- /dev/null
+++ b/spec/rtems/cache/if/coherent-allocate.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/size_t:/name} ${.:/params[0]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[1]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[2]/name}
+    return: void *
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_coherent_allocate
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: size
+- description: '%'
+  dir: null
+  name: alignment
+- description: '%'
+  dir: null
+  name: boundary
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/cache/coherent-free.yml b/spec/rtems/cache/if/coherent-free.yml
similarity index 100%
rename from spec/if/rtems/cache/coherent-free.yml
rename to spec/rtems/cache/if/coherent-free.yml
diff --git a/spec/if/rtems/cache/disable-data.yml b/spec/rtems/cache/if/disable-data.yml
similarity index 100%
rename from spec/if/rtems/cache/disable-data.yml
rename to spec/rtems/cache/if/disable-data.yml
diff --git a/spec/if/rtems/cache/disable-instruction.yml b/spec/rtems/cache/if/disable-instruction.yml
similarity index 100%
rename from spec/if/rtems/cache/disable-instruction.yml
rename to spec/rtems/cache/if/disable-instruction.yml
diff --git a/spec/if/rtems/cache/enable-data.yml b/spec/rtems/cache/if/enable-data.yml
similarity index 100%
rename from spec/if/rtems/cache/enable-data.yml
rename to spec/rtems/cache/if/enable-data.yml
diff --git a/spec/if/rtems/cache/enable-instruction.yml b/spec/rtems/cache/if/enable-instruction.yml
similarity index 100%
rename from spec/if/rtems/cache/enable-instruction.yml
rename to spec/rtems/cache/if/enable-instruction.yml
diff --git a/spec/if/rtems/cache/flush-entire-data.yml b/spec/rtems/cache/if/flush-entire-data.yml
similarity index 100%
rename from spec/if/rtems/cache/flush-entire-data.yml
rename to spec/rtems/cache/if/flush-entire-data.yml
diff --git a/spec/rtems/cache/if/flush-multiple-data-lines.yml b/spec/rtems/cache/if/flush-multiple-data-lines.yml
new file mode 100644
index 0000000..4d56208
--- /dev/null
+++ b/spec/rtems/cache/if/flush-multiple-data-lines.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const void *${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_flush_multiple_data_lines
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: addr
+- description: '%'
+  dir: null
+  name: size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/cache/freeze-data.yml b/spec/rtems/cache/if/freeze-data.yml
similarity index 100%
rename from spec/if/rtems/cache/freeze-data.yml
rename to spec/rtems/cache/if/freeze-data.yml
diff --git a/spec/if/rtems/cache/freeze-instruction.yml b/spec/rtems/cache/if/freeze-instruction.yml
similarity index 100%
rename from spec/if/rtems/cache/freeze-instruction.yml
rename to spec/rtems/cache/if/freeze-instruction.yml
diff --git a/spec/rtems/cache/if/get-data-line-size.yml b/spec/rtems/cache/if/get-data-line-size.yml
new file mode 100644
index 0000000..bfd469a
--- /dev/null
+++ b/spec/rtems/cache/if/get-data-line-size.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/size_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_get_data_line_size
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/cache/if/get-data-size.yml b/spec/rtems/cache/if/get-data-size.yml
new file mode 100644
index 0000000..aed9181
--- /dev/null
+++ b/spec/rtems/cache/if/get-data-size.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/uint32_t:/name} ${.:/params[0]/name}
+    return: ${/c/if/size_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_get_data_cache_size
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: level
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/cache/if/get-instruction-line-size.yml b/spec/rtems/cache/if/get-instruction-line-size.yml
new file mode 100644
index 0000000..1cf80bd
--- /dev/null
+++ b/spec/rtems/cache/if/get-instruction-line-size.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/size_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_get_instruction_line_size
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/cache/if/get-instruction-size.yml b/spec/rtems/cache/if/get-instruction-size.yml
new file mode 100644
index 0000000..eb23ed2
--- /dev/null
+++ b/spec/rtems/cache/if/get-instruction-size.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/uint32_t:/name} ${.:/params[0]/name}
+    return: ${/c/if/size_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_get_instruction_cache_size
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: level
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/cache/if/get-maximal-line-size.yml b/spec/rtems/cache/if/get-maximal-line-size.yml
new file mode 100644
index 0000000..4d3957a
--- /dev/null
+++ b/spec/rtems/cache/if/get-maximal-line-size.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/size_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_get_maximal_line_size
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/cache/if/group.yml b/spec/rtems/cache/if/group.yml
new file mode 100644
index 0000000..d3da44c
--- /dev/null
+++ b/spec/rtems/cache/if/group.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Cache Manager provides functions to perform maintenance operations for
+  data and instruction caches.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicCache
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Cache Manager
+text: |
+  The Classic API shall provide an interface to the Cache Manager.
+type: interface
diff --git a/spec/rtems/cache/if/header.yml b/spec/rtems/cache/if/header.yml
new file mode 100644
index 0000000..1833d83
--- /dev/null
+++ b/spec/rtems/cache/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Cache Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/cache.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/cache/if/instruction-sync-after-code-change.yml b/spec/rtems/cache/if/instruction-sync-after-code-change.yml
new file mode 100644
index 0000000..82cd086
--- /dev/null
+++ b/spec/rtems/cache/if/instruction-sync-after-code-change.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const void *${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_instruction_sync_after_code_change
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: code_addr
+- description: '%'
+  dir: null
+  name: n_bytes
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/cache/invalidate-entire-data.yml b/spec/rtems/cache/if/invalidate-entire-data.yml
similarity index 100%
rename from spec/if/rtems/cache/invalidate-entire-data.yml
rename to spec/rtems/cache/if/invalidate-entire-data.yml
diff --git a/spec/if/rtems/cache/invalidate-entire-instruction.yml b/spec/rtems/cache/if/invalidate-entire-instruction.yml
similarity index 100%
rename from spec/if/rtems/cache/invalidate-entire-instruction.yml
rename to spec/rtems/cache/if/invalidate-entire-instruction.yml
diff --git a/spec/rtems/cache/if/invalidate-multiple-data-lines.yml b/spec/rtems/cache/if/invalidate-multiple-data-lines.yml
new file mode 100644
index 0000000..1175980
--- /dev/null
+++ b/spec/rtems/cache/if/invalidate-multiple-data-lines.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const void *${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_invalidate_multiple_data_lines
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: addr
+- description: '%'
+  dir: null
+  name: size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/cache/if/invalidate-multiple-instruction-lines.yml b/spec/rtems/cache/if/invalidate-multiple-instruction-lines.yml
new file mode 100644
index 0000000..5231e76
--- /dev/null
+++ b/spec/rtems/cache/if/invalidate-multiple-instruction-lines.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const void *${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_cache_invalidate_multiple_instruction_lines
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: addr
+- description: '%'
+  dir: null
+  name: size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/cache/unfreeze-data.yml b/spec/rtems/cache/if/unfreeze-data.yml
similarity index 100%
rename from spec/if/rtems/cache/unfreeze-data.yml
rename to spec/rtems/cache/if/unfreeze-data.yml
diff --git a/spec/if/rtems/cache/unfreeze-instruction.yml b/spec/rtems/cache/if/unfreeze-instruction.yml
similarity index 100%
rename from spec/if/rtems/cache/unfreeze-instruction.yml
rename to spec/rtems/cache/if/unfreeze-instruction.yml
diff --git a/spec/rtems/clock/if/get-seconds-since-epoch.yml b/spec/rtems/clock/if/get-seconds-since-epoch.yml
new file mode 100644
index 0000000..239b3d5
--- /dev/null
+++ b/spec/rtems/clock/if/get-seconds-since-epoch.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/interval:/name} *${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_seconds_since_epoch
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: the_interval
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/get-ticks-per-second.yml b/spec/rtems/clock/if/get-ticks-per-second.yml
new file mode 100644
index 0000000..d0f534a
--- /dev/null
+++ b/spec/rtems/clock/if/get-ticks-per-second.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/watchdog/if/ticks-per-second:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_ticks_per_second
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/get-ticks-since-boot.yml b/spec/rtems/clock/if/get-ticks-since-boot.yml
new file mode 100644
index 0000000..f60b7d5
--- /dev/null
+++ b/spec/rtems/clock/if/get-ticks-since-boot.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/watchdog/if/ticks-since-boot:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_ticks_since_boot
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/get-tod-timeval.yml b/spec/rtems/clock/if/get-tod-timeval.yml
new file mode 100644
index 0000000..303ff03
--- /dev/null
+++ b/spec/rtems/clock/if/get-tod-timeval.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/timeval:/name} *${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_tod_timeval
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: time
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/get-tod.yml b/spec/rtems/clock/if/get-tod.yml
new file mode 100644
index 0000000..703f2b7
--- /dev/null
+++ b/spec/rtems/clock/if/get-tod.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/time-of-day:/name} *${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_tod
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: time_buffer
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/get-uptime-nanoseconds.yml b/spec/rtems/clock/if/get-uptime-nanoseconds.yml
new file mode 100644
index 0000000..bf1134e
--- /dev/null
+++ b/spec/rtems/clock/if/get-uptime-nanoseconds.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint64_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_uptime_nanoseconds
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/get-uptime-seconds.yml b/spec/rtems/clock/if/get-uptime-seconds.yml
new file mode 100644
index 0000000..5a9729e
--- /dev/null
+++ b/spec/rtems/clock/if/get-uptime-seconds.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/time_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_uptime_seconds
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/get-uptime-timeval.yml b/spec/rtems/clock/if/get-uptime-timeval.yml
new file mode 100644
index 0000000..c936d71
--- /dev/null
+++ b/spec/rtems/clock/if/get-uptime-timeval.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/timeval:/name} *${.:/params[0]/name}
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_uptime_timeval
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: uptime
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/get-uptime.yml b/spec/rtems/clock/if/get-uptime.yml
new file mode 100644
index 0000000..2fc66f0
--- /dev/null
+++ b/spec/rtems/clock/if/get-uptime.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/timespec:/name} *${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_get_uptime
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: uptime
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/group.yml b/spec/rtems/clock/if/group.yml
new file mode 100644
index 0000000..a772d89
--- /dev/null
+++ b/spec/rtems/clock/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Clock Manager provides support for time of day and other time related
+  capabilities.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicClock
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Clock Manager
+text: |
+  The Classic API shall provide an interface to the Clock Manager.
+type: interface
diff --git a/spec/rtems/clock/if/header.yml b/spec/rtems/clock/if/header.yml
new file mode 100644
index 0000000..19c8414
--- /dev/null
+++ b/spec/rtems/clock/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Clock Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/clock.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/clock/if/set.yml b/spec/rtems/clock/if/set.yml
new file mode 100644
index 0000000..91f8c87
--- /dev/null
+++ b/spec/rtems/clock/if/set.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const ${../../type/if/time-of-day:/name} *${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_set
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: time_buffer
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/tick-before.yml b/spec/rtems/clock/if/tick-before.yml
new file mode 100644
index 0000000..2c31eca
--- /dev/null
+++ b/spec/rtems/clock/if/tick-before.yml
@@ -0,0 +1,40 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns true if the current ticks counter value indicates a time before the
+  time specified by the tick value and false otherwise.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: |
+      return (${/c/if/int32_t:/name}) ( ${.:/params[0]/name} - ${/score/watchdog/if/ticks-since-boot:/name} ) > 0;
+    params:
+    - ${../../type/if/interval:/name} ${.:/params[0]/name}
+    return: ${/c/if/bool:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_tick_before
+notes: |
+  This directive can be used to write busy loops with a timeout.
+params:
+- description: is the tick value.
+  dir: null
+  name: tick
+return:
+  return: null
+  return-values:
+  - description: |
+      The current ticks counter value indicates a time before the time
+      specified by the tick value.
+    value: 'true'
+  - description: |
+      Otherwise.
+    value: 'false'
+type: interface
diff --git a/spec/rtems/clock/if/tick-later-usec.yml b/spec/rtems/clock/if/tick-later-usec.yml
new file mode 100644
index 0000000..ef3f33c
--- /dev/null
+++ b/spec/rtems/clock/if/tick-later-usec.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the ticks counter value at least delta microseconds in the future.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: |
+      ${../../type/if/interval:/name} us_per_tick;
+
+      us_per_tick = ${../../config/if/get-microseconds-per-tick:/name}();
+
+      /*
+       * Add one additional tick, since we do not know the time to the clock
+       * next tick.
+       */
+      return ${/score/watchdog/if/ticks-since-boot:/name} + 1
+        + ( ${.:/params[0]/name} + us_per_tick - 1 ) / us_per_tick;
+    params:
+    - ${../../type/if/interval:/name} ${.:/params[0]/name}
+    return: ${../../type/if/interval:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_tick_later_usec
+notes: null
+params:
+- description: is the delta value in microseconds.
+  dir: null
+  name: delta_in_usec
+return:
+  return: |
+    The tick counter value delta ticks in the future is returned.
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/tick-later.yml b/spec/rtems/clock/if/tick-later.yml
new file mode 100644
index 0000000..9ce69c7
--- /dev/null
+++ b/spec/rtems/clock/if/tick-later.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the ticks counter value delta ticks in the future.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: |
+      return ${/score/watchdog/if/ticks-since-boot:/name} + ${.:/params[0]/name};
+    params:
+    - ${../../type/if/interval:/name} ${.:/params[0]/name}
+    return: ${../../type/if/interval:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_tick_later
+notes: null
+params:
+- description: is the ticks delta value.
+  dir: null
+  name: delta
+return:
+  return: |
+    The tick counter value delta ticks in the future is returned.
+  return-values: []
+type: interface
diff --git a/spec/rtems/clock/if/tick.yml b/spec/rtems/clock/if/tick.yml
new file mode 100644
index 0000000..5216a67
--- /dev/null
+++ b/spec/rtems/clock/if/tick.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_clock_tick
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/api-table.yml b/spec/rtems/config/if/api-table.yml
new file mode 100644
index 0000000..ff00330
--- /dev/null
+++ b/spec/rtems/config/if/api-table.yml
@@ -0,0 +1,128 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This structure contains a summary of the Classic API configuration.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Tasks which are
+      configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_tasks
+  variants: []
+- default:
+    brief: |
+      This field indicates if Classic API Notepads are enabled or disabled for
+      this application.
+    definition: ${/c/if/bool:/name} ${.:name}
+    description: null
+    kind: member
+    name: notepads_enabled
+  variants: []
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Timers which are
+      configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_timers
+  variants: []
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Semaphores which
+      are configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_semaphores
+  variants: []
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Message Queues
+      which are configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_message_queues
+  variants: []
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Partitions which
+      are configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_partitions
+  variants: []
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Regions which are
+      configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_regions
+  variants: []
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Dual Ported Memory
+      Areas which are configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_ports
+  variants: []
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Rate Monotonic
+      Periods which are configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_periods
+  variants: []
+- default:
+    brief: |
+      This field contains the maximum number of Classic API Barriers which are
+      configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: maximum_barriers
+  variants: []
+- default:
+    brief: |
+      This field contains the number of Classic API Initialization
+      Tasks which are configured for this application.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: number_of_initialization_tasks
+  variants: []
+- default:
+    brief: |
+      This field contains the pointer to Classic API Initialization Tasks Table
+      of this application.
+    definition: const ${../../task/if/initialization-table:/name} *${.:name}
+    description: null
+    kind: member
+    name: User_initialization_tasks_table
+  variants: []
+definition-kind: typedef-only
+description: |
+  Use ${get-api-configuration:/name} to get the configuration table.
+enabled-by: true
+interface-type: struct
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_api_configuration_table
+notes: null
+type: interface
diff --git a/spec/if/rtems/config/get-api-configuration.yml b/spec/rtems/config/if/get-api-configuration.yml
similarity index 100%
rename from spec/if/rtems/config/get-api-configuration.yml
rename to spec/rtems/config/if/get-api-configuration.yml
diff --git a/spec/if/rtems/config/get-copyright-notice.yml b/spec/rtems/config/if/get-copyright-notice.yml
similarity index 100%
rename from spec/if/rtems/config/get-copyright-notice.yml
rename to spec/rtems/config/if/get-copyright-notice.yml
diff --git a/spec/rtems/config/if/get-do-zero-of-workspace.yml b/spec/rtems/config/if/get-do-zero-of-workspace.yml
new file mode 100644
index 0000000..de1dd01
--- /dev/null
+++ b/spec/rtems/config/if/get-do-zero-of-workspace.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns true, if the workspace is zeroed during system initialization,
+  otherwise returns false.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/memory/if/zero-before-use:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_do_zero_of_workspace
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-idle-task-stack-size.yml b/spec/rtems/config/if/get-idle-task-stack-size.yml
new file mode 100644
index 0000000..7920a34
--- /dev/null
+++ b/spec/rtems/config/if/get-idle-task-stack-size.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the configured IDLE task stack size in bytes of this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/thread/if/idle-stack-size:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_idle_task_stack_size
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-idle-task.yml b/spec/rtems/config/if/get-idle-task.yml
new file mode 100644
index 0000000..7b14684
--- /dev/null
+++ b/spec/rtems/config/if/get-idle-task.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the configured IDLE task entry of this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/thread/if/idle-body:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_idle_task
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-interrupt-stack-size.yml b/spec/rtems/config/if/get-interrupt-stack-size.yml
new file mode 100644
index 0000000..78a94c0
--- /dev/null
+++ b/spec/rtems/config/if/get-interrupt-stack-size.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the configured interrupt stack size in bytes of this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ((${/c/if/size_t:/name}) ${/score/isr/if/stack-size:/name})
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_interrupt_stack_size
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-barriers.yml b/spec/rtems/config/if/get-maximum-barriers.yml
new file mode 100644
index 0000000..3536322
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-barriers.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Barriers which are configured for
+  this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_barriers
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-extensions.yml b/spec/rtems/config/if/get-maximum-extensions.yml
new file mode 100644
index 0000000..0460126
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-extensions.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API User Extensions which are
+  configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_extensions
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-message-queues.yml b/spec/rtems/config/if/get-maximum-message-queues.yml
new file mode 100644
index 0000000..2d8f3b3
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-message-queues.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Message Queues which are configured
+  for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_message_queues
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-partitions.yml b/spec/rtems/config/if/get-maximum-partitions.yml
new file mode 100644
index 0000000..dba034e
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-partitions.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Partitions which are configured for
+  this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_partitions
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-periods.yml b/spec/rtems/config/if/get-maximum-periods.yml
new file mode 100644
index 0000000..418ec2c
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-periods.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Rate Monotonic Periods which are
+  configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_periods
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-ports.yml b/spec/rtems/config/if/get-maximum-ports.yml
new file mode 100644
index 0000000..c8dff65
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-ports.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Dual Ported Memory Areas which are
+  configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_ports
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-processors.yml b/spec/rtems/config/if/get-maximum-processors.yml
new file mode 100644
index 0000000..6fb3bfe
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-processors.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of processors which are configured for this
+  application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/smp/if/processor-configured-maximum:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_processors
+notes: |
+  The actual number of processors available for the application will be less
+  than or equal to the configured maximum number of processors.
+
+  On uniprocessor configurations this macro is a compile time constant which
+  evaluates to one.
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-regions.yml b/spec/rtems/config/if/get-maximum-regions.yml
new file mode 100644
index 0000000..0334c6f
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-regions.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Regions which are configured for
+  this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_regions
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-semaphores.yml b/spec/rtems/config/if/get-maximum-semaphores.yml
new file mode 100644
index 0000000..88abdb0
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-semaphores.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Semaphores which are configured for
+  this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_semaphores
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-tasks.yml b/spec/rtems/config/if/get-maximum-tasks.yml
new file mode 100644
index 0000000..ad62a40
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-tasks.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Tasks which are configured for this
+  application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_tasks
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-maximum-timers.yml b/spec/rtems/config/if/get-maximum-timers.yml
new file mode 100644
index 0000000..a65cbeb
--- /dev/null
+++ b/spec/rtems/config/if/get-maximum-timers.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum number of Classic API Timers which are configured for
+  this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uint32_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_maximum_timers
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-microseconds-per-tick.yml b/spec/rtems/config/if/get-microseconds-per-tick.yml
new file mode 100644
index 0000000..7c4d876
--- /dev/null
+++ b/spec/rtems/config/if/get-microseconds-per-tick.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the number of microseconds per tick configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/watchdog/if/microseconds-per-tick:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_microseconds_per_tick
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-milliseconds-per-tick.yml b/spec/rtems/config/if/get-milliseconds-per-tick.yml
new file mode 100644
index 0000000..a0c4e42
--- /dev/null
+++ b/spec/rtems/config/if/get-milliseconds-per-tick.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the number of milliseconds per tick configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: (${/score/watchdog/if/microseconds-per-tick:/name} / 1000)
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_milliseconds_per_tick
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-nanoseconds-per-tick.yml b/spec/rtems/config/if/get-nanoseconds-per-tick.yml
new file mode 100644
index 0000000..2cd6d4b
--- /dev/null
+++ b/spec/rtems/config/if/get-nanoseconds-per-tick.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the number of microseconds per tick configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/watchdog/if/nanoseconds-per-tick:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_nanoseconds_per_tick
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-number-of-initial-extensions.yml b/spec/rtems/config/if/get-number-of-initial-extensions.yml
new file mode 100644
index 0000000..bee483b
--- /dev/null
+++ b/spec/rtems/config/if/get-number-of-initial-extensions.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the number of initial extensions configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ((${/c/if/uint32_t:/name}) ${/score/userext/if/initial-count:/name})
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_number_of_initial_extensions
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-stack-allocate-hook.yml b/spec/rtems/config/if/get-stack-allocate-hook.yml
new file mode 100644
index 0000000..4e02dcf
--- /dev/null
+++ b/spec/rtems/config/if/get-stack-allocate-hook.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the thread stack allocator allocate hook.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/stack/if/allocator-allocate:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_stack_allocate_hook
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-stack-allocate-init-hook.yml b/spec/rtems/config/if/get-stack-allocate-init-hook.yml
new file mode 100644
index 0000000..dcdc6b8
--- /dev/null
+++ b/spec/rtems/config/if/get-stack-allocate-init-hook.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the thread stack allocator initialization hook.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/stack/if/allocator-initialize:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_stack_allocate_init_hook
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-stack-allocator-avoids-work-space.yml b/spec/rtems/config/if/get-stack-allocator-avoids-work-space.yml
new file mode 100644
index 0000000..106cca3
--- /dev/null
+++ b/spec/rtems/config/if/get-stack-allocator-avoids-work-space.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns true, if the thread stack allocator avoids the workspace, otherwise
+  returns false.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/stack/if/allocator-avoids-workspace:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_stack_allocator_avoids_work_space
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-stack-free-hook.yml b/spec/rtems/config/if/get-stack-free-hook.yml
new file mode 100644
index 0000000..57edf34
--- /dev/null
+++ b/spec/rtems/config/if/get-stack-free-hook.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the thread stack allocator free hook.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/stack/if/allocator-free:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_stack_free_hook
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-stack-space-size.yml b/spec/rtems/config/if/get-stack-space-size.yml
new file mode 100644
index 0000000..8f8e6eb
--- /dev/null
+++ b/spec/rtems/config/if/get-stack-space-size.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the thread stack space size in bytes of configured for this
+  application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/c/if/uintptr_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_stack_space_size
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-ticks-per-timeslice.yml b/spec/rtems/config/if/get-ticks-per-timeslice.yml
new file mode 100644
index 0000000..8011de7
--- /dev/null
+++ b/spec/rtems/config/if/get-ticks-per-timeslice.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the ticks per timeslice configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/watchdog/if/ticks-per-timeslice:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_ticks_per_timeslice
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-unified-work-area.yml b/spec/rtems/config/if/get-unified-work-area.yml
new file mode 100644
index 0000000..ced5917
--- /dev/null
+++ b/spec/rtems/config/if/get-unified-work-area.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns true, if the RTEMS Workspace and C Program Heap are unified,
+  otherwise returns false.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/wkspace/if/is-unified:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_unified_work_area
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-user-extension-table.yml b/spec/rtems/config/if/get-user-extension-table.yml
new file mode 100644
index 0000000..a6c3dd0
--- /dev/null
+++ b/spec/rtems/config/if/get-user-extension-table.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the pointer to the initial extensions table configured for this
+  application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/userext/if/initial-extensions:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_user_extension_table
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/get-user-multiprocessing-table.yml b/spec/rtems/config/if/get-user-multiprocessing-table.yml
new file mode 100644
index 0000000..41ed5f9
--- /dev/null
+++ b/spec/rtems/config/if/get-user-multiprocessing-table.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the pointer to the MPCI configuration table configured for this
+  application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/c/if/null:/name}
+  variants:
+  - definition: ( &${/score/mpci/if/configuration:/name} )
+    enabled-by: defined(${/build-options/if/multiprocessing:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_user_multiprocessing_table
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/config/get-version-string.yml b/spec/rtems/config/if/get-version-string.yml
similarity index 100%
rename from spec/if/rtems/config/get-version-string.yml
rename to spec/rtems/config/if/get-version-string.yml
diff --git a/spec/rtems/config/if/get-work-space-size.yml b/spec/rtems/config/if/get-work-space-size.yml
new file mode 100644
index 0000000..535bd5f
--- /dev/null
+++ b/spec/rtems/config/if/get-work-space-size.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the RTEMS Workspace size in bytes configured for this application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    (${/score/wkspace/if/size:/name} +
+      (${get-stack-allocator-avoids-work-space:/name}() ?
+        0 : ${get-stack-space-size:/name}()))
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_configuration_get_work_space_size
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/group.yml b/spec/rtems/config/if/group.yml
new file mode 100644
index 0000000..21c46cd
--- /dev/null
+++ b/spec/rtems/config/if/group.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains defines and macros to create an application configuration
+  as well as functions to get values of the application configuration.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIConfig
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: /if/api
+name: Application Configuration
+text: |
+  The API shall provide an interface to the application configuration.
+type: interface
diff --git a/spec/rtems/config/if/has-hardware-fp.yml b/spec/rtems/config/if/has-hardware-fp.yml
new file mode 100644
index 0000000..b22d880
--- /dev/null
+++ b/spec/rtems/config/if/has-hardware-fp.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/cpu/if/hardware-fp:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_HAS_HARDWARE_FP
+notes: null
+type: interface
diff --git a/spec/rtems/config/if/header-2.yml b/spec/rtems/config/if/header-2.yml
new file mode 100644
index 0000000..1c73580
--- /dev/null
+++ b/spec/rtems/config/if/header-2.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines parts of the application configuration information
+  API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/config.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/config/if/header.yml b/spec/rtems/config/if/header.yml
new file mode 100644
index 0000000..5ccaeaa
--- /dev/null
+++ b/spec/rtems/config/if/header.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines parts of the application configuration information
+  API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- enabled-by: RTEMS_MULTIPROCESSING
+  role: interface-include
+  uid: /score/mpci/if/header
+- enabled-by: RTEMS_MULTIPROCESSING
+  role: interface-include
+  uid: ../../type/if/header
+- enabled-by: true
+  role: interface-include
+  uid: header-2
+- role: interface-placement
+  uid: /if/domain
+path: rtems/config.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/config/if/resource-is-unlimited.yml b/spec/rtems/config/if/resource-is-unlimited.yml
new file mode 100644
index 0000000..29c5448
--- /dev/null
+++ b/spec/rtems/config/if/resource-is-unlimited.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns true, if the resource is unlimited, otherwise returns false.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/object/if/is-unlimited:/name}(${.:/params[0]/name})
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_resource_is_unlimited
+notes: null
+params:
+- description: is the resource number.
+  dir: null
+  name: _resource
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/config/if/resource-maximum-per-allocation.yml b/spec/rtems/config/if/resource-maximum-per-allocation.yml
new file mode 100644
index 0000000..4fbbd13
--- /dev/null
+++ b/spec/rtems/config/if/resource-maximum-per-allocation.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the resource maximum number per allocation.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/object/if/maximum-per-allocation:/name}(${.:/params[0]/name})
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_resource_maximum_per_allocation
+notes: null
+params:
+- description: is the resource number.
+  dir: null
+  name: _resource
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/config/resource-unlimited.yml b/spec/rtems/config/if/resource-unlimited.yml
similarity index 100%
rename from spec/if/rtems/config/resource-unlimited.yml
rename to spec/rtems/config/if/resource-unlimited.yml
diff --git a/spec/rtems/config/if/stack-allocate-hook.yml b/spec/rtems/config/if/stack-allocate-hook.yml
new file mode 100644
index 0000000..697d7c2
--- /dev/null
+++ b/spec/rtems/config/if/stack-allocate-hook.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The thread stack allocator allocate handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/stack/if/allocator-allocate-type:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_stack_allocate_hook
+notes: null
+type: interface
diff --git a/spec/rtems/config/if/stack-allocate-init-hook.yml b/spec/rtems/config/if/stack-allocate-init-hook.yml
new file mode 100644
index 0000000..15664af
--- /dev/null
+++ b/spec/rtems/config/if/stack-allocate-init-hook.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The thread stack allocator initialization handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/stack/if/allocator-initialize-type:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_stack_allocate_init_hook
+notes: null
+type: interface
diff --git a/spec/rtems/config/if/stack-free-hook.yml b/spec/rtems/config/if/stack-free-hook.yml
new file mode 100644
index 0000000..2156b9f
--- /dev/null
+++ b/spec/rtems/config/if/stack-free-hook.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The thread stack allocator free handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/stack/if/allocator-free-type:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_stack_free_hook
+notes: null
+type: interface
diff --git a/spec/rtems/config/if/unlimited-objects.yml b/spec/rtems/config/if/unlimited-objects.yml
new file mode 100644
index 0000000..c7b697b
--- /dev/null
+++ b/spec/rtems/config/if/unlimited-objects.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This flag is used in resource numbers to indicate an unlimited resource.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/object/if/unlimited-objects:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_UNLIMITED_OBJECTS
+notes: null
+type: interface
diff --git a/spec/rtems/dpmem/if/create.yml b/spec/rtems/dpmem/if/create.yml
new file mode 100644
index 0000000..4aafe88
--- /dev/null
+++ b/spec/rtems/dpmem/if/create.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - void *${.:/params[2]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[3]/name}
+    - ${../../type/if/id:/name} *${.:/params[4]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_port_create
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: name
+- description: '%'
+  dir: null
+  name: internal_start
+- description: '%'
+  dir: null
+  name: external_start
+- description: '%'
+  dir: null
+  name: length
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/dpmem/if/delete.yml b/spec/rtems/dpmem/if/delete.yml
new file mode 100644
index 0000000..7489f81
--- /dev/null
+++ b/spec/rtems/dpmem/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_port_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/dpmem/if/external-to-internal.yml b/spec/rtems/dpmem/if/external-to-internal.yml
new file mode 100644
index 0000000..02bb92f
--- /dev/null
+++ b/spec/rtems/dpmem/if/external-to-internal.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - void **${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_port_external_to_internal
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: external
+- description: '%'
+  dir: null
+  name: internal
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/dpmem/if/group.yml b/spec/rtems/dpmem/if/group.yml
new file mode 100644
index 0000000..daa2c4e
--- /dev/null
+++ b/spec/rtems/dpmem/if/group.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Dual-Ported Memory Manager provides a mechanism for converting addresses
+  between internal and external representations for multiple dual-ported memory
+  areas (DPMA).
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicDPMem
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Dual-Ported Memory Manager
+text: |
+  The Classic API shall provide an interface to the Dual-Ported Memory Manager.
+type: interface
diff --git a/spec/rtems/dpmem/if/header.yml b/spec/rtems/dpmem/if/header.yml
new file mode 100644
index 0000000..ba65718
--- /dev/null
+++ b/spec/rtems/dpmem/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Dual-Ported Memory Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/dpmem.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/dpmem/if/ident.yml b/spec/rtems/dpmem/if/ident.yml
new file mode 100644
index 0000000..d013aa0
--- /dev/null
+++ b/spec/rtems/dpmem/if/ident.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a port object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the port identifier associated with the port name
+  specified in ``${.:/params[0]/name}``.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_port_ident
+notes: |
+  If the port name is not unique, then the port identifier will match the first
+  port with that name in the search order.  However, this port identifier is
+  not guaranteed to correspond to the desired port.  The port identifier is
+  used with other dual-ported memory related directives to access the port.
+
+  The objects are searched from lowest to the highest index.  Only the local
+  node is searched.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the local node.
+    value: ${../../status/if/invalid-name:/name}
+type: interface
diff --git a/spec/rtems/dpmem/if/internal-to-external.yml b/spec/rtems/dpmem/if/internal-to-external.yml
new file mode 100644
index 0000000..39f8e97
--- /dev/null
+++ b/spec/rtems/dpmem/if/internal-to-external.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - void **${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_port_internal_to_external
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: internal
+- description: '%'
+  dir: null
+  name: external
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/event/all-events.yml b/spec/rtems/event/if/all-events.yml
similarity index 100%
rename from spec/if/rtems/event/all-events.yml
rename to spec/rtems/event/if/all-events.yml
diff --git a/spec/if/rtems/event/event-0.yml b/spec/rtems/event/if/event-0.yml
similarity index 100%
rename from spec/if/rtems/event/event-0.yml
rename to spec/rtems/event/if/event-0.yml
diff --git a/spec/if/rtems/event/event-1.yml b/spec/rtems/event/if/event-1.yml
similarity index 100%
rename from spec/if/rtems/event/event-1.yml
rename to spec/rtems/event/if/event-1.yml
diff --git a/spec/if/rtems/event/event-10.yml b/spec/rtems/event/if/event-10.yml
similarity index 100%
rename from spec/if/rtems/event/event-10.yml
rename to spec/rtems/event/if/event-10.yml
diff --git a/spec/if/rtems/event/event-11.yml b/spec/rtems/event/if/event-11.yml
similarity index 100%
rename from spec/if/rtems/event/event-11.yml
rename to spec/rtems/event/if/event-11.yml
diff --git a/spec/if/rtems/event/event-12.yml b/spec/rtems/event/if/event-12.yml
similarity index 100%
rename from spec/if/rtems/event/event-12.yml
rename to spec/rtems/event/if/event-12.yml
diff --git a/spec/if/rtems/event/event-13.yml b/spec/rtems/event/if/event-13.yml
similarity index 100%
rename from spec/if/rtems/event/event-13.yml
rename to spec/rtems/event/if/event-13.yml
diff --git a/spec/if/rtems/event/event-14.yml b/spec/rtems/event/if/event-14.yml
similarity index 100%
rename from spec/if/rtems/event/event-14.yml
rename to spec/rtems/event/if/event-14.yml
diff --git a/spec/if/rtems/event/event-15.yml b/spec/rtems/event/if/event-15.yml
similarity index 100%
rename from spec/if/rtems/event/event-15.yml
rename to spec/rtems/event/if/event-15.yml
diff --git a/spec/if/rtems/event/event-16.yml b/spec/rtems/event/if/event-16.yml
similarity index 100%
rename from spec/if/rtems/event/event-16.yml
rename to spec/rtems/event/if/event-16.yml
diff --git a/spec/if/rtems/event/event-17.yml b/spec/rtems/event/if/event-17.yml
similarity index 100%
rename from spec/if/rtems/event/event-17.yml
rename to spec/rtems/event/if/event-17.yml
diff --git a/spec/if/rtems/event/event-18.yml b/spec/rtems/event/if/event-18.yml
similarity index 100%
rename from spec/if/rtems/event/event-18.yml
rename to spec/rtems/event/if/event-18.yml
diff --git a/spec/if/rtems/event/event-19.yml b/spec/rtems/event/if/event-19.yml
similarity index 100%
rename from spec/if/rtems/event/event-19.yml
rename to spec/rtems/event/if/event-19.yml
diff --git a/spec/if/rtems/event/event-2.yml b/spec/rtems/event/if/event-2.yml
similarity index 100%
rename from spec/if/rtems/event/event-2.yml
rename to spec/rtems/event/if/event-2.yml
diff --git a/spec/if/rtems/event/event-20.yml b/spec/rtems/event/if/event-20.yml
similarity index 100%
rename from spec/if/rtems/event/event-20.yml
rename to spec/rtems/event/if/event-20.yml
diff --git a/spec/if/rtems/event/event-21.yml b/spec/rtems/event/if/event-21.yml
similarity index 100%
rename from spec/if/rtems/event/event-21.yml
rename to spec/rtems/event/if/event-21.yml
diff --git a/spec/if/rtems/event/event-22.yml b/spec/rtems/event/if/event-22.yml
similarity index 100%
rename from spec/if/rtems/event/event-22.yml
rename to spec/rtems/event/if/event-22.yml
diff --git a/spec/if/rtems/event/event-23.yml b/spec/rtems/event/if/event-23.yml
similarity index 100%
rename from spec/if/rtems/event/event-23.yml
rename to spec/rtems/event/if/event-23.yml
diff --git a/spec/if/rtems/event/event-24.yml b/spec/rtems/event/if/event-24.yml
similarity index 100%
rename from spec/if/rtems/event/event-24.yml
rename to spec/rtems/event/if/event-24.yml
diff --git a/spec/if/rtems/event/event-25.yml b/spec/rtems/event/if/event-25.yml
similarity index 100%
rename from spec/if/rtems/event/event-25.yml
rename to spec/rtems/event/if/event-25.yml
diff --git a/spec/if/rtems/event/event-26.yml b/spec/rtems/event/if/event-26.yml
similarity index 100%
rename from spec/if/rtems/event/event-26.yml
rename to spec/rtems/event/if/event-26.yml
diff --git a/spec/if/rtems/event/event-27.yml b/spec/rtems/event/if/event-27.yml
similarity index 100%
rename from spec/if/rtems/event/event-27.yml
rename to spec/rtems/event/if/event-27.yml
diff --git a/spec/if/rtems/event/event-28.yml b/spec/rtems/event/if/event-28.yml
similarity index 100%
rename from spec/if/rtems/event/event-28.yml
rename to spec/rtems/event/if/event-28.yml
diff --git a/spec/if/rtems/event/event-29.yml b/spec/rtems/event/if/event-29.yml
similarity index 100%
rename from spec/if/rtems/event/event-29.yml
rename to spec/rtems/event/if/event-29.yml
diff --git a/spec/if/rtems/event/event-3.yml b/spec/rtems/event/if/event-3.yml
similarity index 100%
rename from spec/if/rtems/event/event-3.yml
rename to spec/rtems/event/if/event-3.yml
diff --git a/spec/if/rtems/event/event-30.yml b/spec/rtems/event/if/event-30.yml
similarity index 100%
rename from spec/if/rtems/event/event-30.yml
rename to spec/rtems/event/if/event-30.yml
diff --git a/spec/if/rtems/event/event-31.yml b/spec/rtems/event/if/event-31.yml
similarity index 100%
rename from spec/if/rtems/event/event-31.yml
rename to spec/rtems/event/if/event-31.yml
diff --git a/spec/if/rtems/event/event-4.yml b/spec/rtems/event/if/event-4.yml
similarity index 100%
rename from spec/if/rtems/event/event-4.yml
rename to spec/rtems/event/if/event-4.yml
diff --git a/spec/if/rtems/event/event-5.yml b/spec/rtems/event/if/event-5.yml
similarity index 100%
rename from spec/if/rtems/event/event-5.yml
rename to spec/rtems/event/if/event-5.yml
diff --git a/spec/if/rtems/event/event-6.yml b/spec/rtems/event/if/event-6.yml
similarity index 100%
rename from spec/if/rtems/event/event-6.yml
rename to spec/rtems/event/if/event-6.yml
diff --git a/spec/if/rtems/event/event-7.yml b/spec/rtems/event/if/event-7.yml
similarity index 100%
rename from spec/if/rtems/event/event-7.yml
rename to spec/rtems/event/if/event-7.yml
diff --git a/spec/if/rtems/event/event-8.yml b/spec/rtems/event/if/event-8.yml
similarity index 100%
rename from spec/if/rtems/event/event-8.yml
rename to spec/rtems/event/if/event-8.yml
diff --git a/spec/if/rtems/event/event-9.yml b/spec/rtems/event/if/event-9.yml
similarity index 100%
rename from spec/if/rtems/event/event-9.yml
rename to spec/rtems/event/if/event-9.yml
diff --git a/spec/rtems/event/if/group.yml b/spec/rtems/event/if/group.yml
new file mode 100644
index 0000000..1c2fd90
--- /dev/null
+++ b/spec/rtems/event/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Event Manager provides a high performance method of inter-task
+  communication and synchronization.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicEvent
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Event Manager
+text: |
+  The Classic API shall provide an interface to the Event Manager.
+type: interface
diff --git a/spec/rtems/event/if/header.yml b/spec/rtems/event/if/header.yml
new file mode 100644
index 0000000..44867cf
--- /dev/null
+++ b/spec/rtems/event/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Event Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/event.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/rtems/event/pending-events.yml b/spec/rtems/event/if/pending-events.yml
similarity index 100%
rename from spec/if/rtems/event/pending-events.yml
rename to spec/rtems/event/if/pending-events.yml
diff --git a/spec/rtems/event/if/receive.yml b/spec/rtems/event/if/receive.yml
new file mode 100644
index 0000000..acd252b
--- /dev/null
+++ b/spec/rtems/event/if/receive.yml
@@ -0,0 +1,122 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Receives or gets an event set.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${set:/name} ${.:/params[0]/name}
+    - ${../../option/if/option:/name} ${.:/params[1]/name}
+    - ${../../type/if/interval:/name} ${.:/params[2]/name}
+    - ${set:/name} *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive can be used to
+
+  * get the pending events of the calling task, or
+
+  * receive events.
+
+  To *get the pending events* use the constant ${pending-events:/name} for the
+  ``${.:/params[0]/name}`` parameter.  The pending events are returned to the
+  calling task but the event set of the task is left unaltered.  The
+  ``${.:/params[1]/name}`` and ``${.:params[2]/name}`` parameters are ignored
+  in this case.  The directive returns immediately and does not block.
+
+  To *receive events* you have to define an input event condition and some
+  options.  The option set specified in ``${.:/params[1]/name}`` defines
+
+  * if the task will wait or poll for the events, and
+
+  * if the task wants to receive all or any of the input events.
+
+  The option set is built through a *bitwise or* of the option constants
+  described below.
+
+  The task can *wait* or *poll* for the events.
+
+  * Waiting for events is the default and can be emphasized through the use of
+    the ${../../option/if/wait:/name} option.  The ``${.:/params[2]/name}``
+    parameter defines how long the task is willing to wait.  Use
+    ${../../type/if/no-timeout:/name} to wait potentially forever, otherwise set a
+    timeout interval in clock ticks.
+
+  * Not waiting for events (polling) is selected by the
+    ${../../option/if/no-wait:/name} option.  If this option is defined, then the
+    ``${.:/params[2]/name}`` parameter is ignored.
+
+  The task can receive *all* or *any* of the input events specified in
+  ``${.:/params[0]/name}``.
+
+  * Receiving all input events is the default and can be emphasized through the use
+    of the ${../../option/if/event-all:/name} option.
+
+  * Receiving any of the input events is selected by the
+    ${../../option/if/event-any:/name} option.
+
+  To receive all events use the constant ${all-events:/name} for the
+  ``${.:/params[0]/name}`` parameter.  This constant is identical to
+  ${event-0:/name} | ... | ${event-31:/name} and should not be confused with
+  the option ${../../option/if/event-all:/name}.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_event_receive
+notes: |
+  This directive shall be called by a task.  Calling this directive from
+  interrupt context is undefined behaviour.
+
+  This directive only affects the events specified in ``${.:/params[0]/name}``.
+  Any pending events that do not correspond to any of the events specified in
+  ``${.:/params[0]/name}`` will be left pending.
+
+  A task can *receive all of the pending events* by calling the directive with
+  a value of ${all-events:/name} for the ``${.:/params[0]/name}`` parameter and
+  ${../../option/if/no-wait:/name} | ${../../option/if/event-any:/name} for the
+  ``${.:/params[1]/name}`` parameter.  The pending events are returned to the
+  calling task and the event set of the task is cleared.  If no events are
+  pending then the ${../../status/if/unsatisfied:/name} status code will be returned.
+params:
+- description: |
+    is the event set of interest.  Use ${pending-events:/name} to get the
+    pending events.
+  dir: null
+  name: event_in
+- description: is the option set.
+  dir: null
+  name: option_set
+- description: |
+    is the timeout in clock ticks if the ${../../option/if/wait:/name} option was
+    set.  Use ${../../type/if/no-timeout:/name} to wait potentially forever.
+  dir: null
+  name: ticks
+- description: |
+    is the pointer to an event set.  The received or pending events are stored
+    in the referenced event set if the operation was successful.
+  dir: null
+  name: event_out
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ``${.:/params[3]/name}`` parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The events of interest were not immediately available.
+    value: ${../../status/if/unsatisfied:/name}
+  - description: |
+      The events of interest were not available within the specified timeout
+      interval.
+    value: ${../../status/if/timeout:/name}
+type: interface
diff --git a/spec/rtems/event/if/send.yml b/spec/rtems/event/if/send.yml
new file mode 100644
index 0000000..240c30b
--- /dev/null
+++ b/spec/rtems/event/if/send.yml
@@ -0,0 +1,74 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Sends an event set to a task.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${set:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive sends an event set, ``${.:/params[1]/name}``, to the task
+  specified by ``${.:/params[0]/name}``.  Based upon the state of the target
+  task, one of the following situations applies:
+
+  * The target task is blocked waiting for events, then
+
+    * if the waiting task's input event condition is satisfied, then the task
+      is made ready for execution, or
+
+    * otherwise, the event set is posted but left pending and the task remains
+      blocked.
+
+  * The target task is not waiting for events, then the event set is posted and
+    left pending.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_event_send
+notes: |
+  Events can be sent by tasks or an ${/glossary/isr:/term}.
+
+  Specifying ${../../task/if/self-define:/name} for ``${.:/params[0]/name}`` results
+  in the event set being sent to the calling task.
+
+  The event set to send shall be built by a *bitwise or* of the desired events.
+  The set of valid events is ${event-0:/name} through ${event-31:/name}.  If an
+  event is not explicitly specified in the set, then it is not present.
+
+  Identical events sent to a task are not queued.  In other words, the second,
+  and subsequent, posting of an event to a task before it can perform an
+  ${receive:/name} has no effect.
+
+  The calling task will be preempted if it has preemption enabled and a higher
+  priority task is unblocked as the result of this directive.
+
+  Sending an event set to a global task which does not reside on the local node
+  will generate a request telling the remote node to send the event set to the
+  appropriate task.
+params:
+- description: is the identifier of the target task to receive the event set.
+  dir: null
+  name: id
+- description: is the event set to send.
+  dir: null
+  name: event_in
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      There was no task with the specified identifier.
+    value: ${../../status/if/invalid-id:/name}
+type: interface
diff --git a/spec/rtems/event/if/set.yml b/spec/rtems/event/if/set.yml
new file mode 100644
index 0000000..cbcff37
--- /dev/null
+++ b/spec/rtems/event/if/set.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This integer type can hold an event set of up to 32 events represented as a
+  bit field.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_event_set
+notes: null
+type: interface
diff --git a/spec/if/rtems/event/system-network-close.yml b/spec/rtems/event/if/system-network-close.yml
similarity index 100%
rename from spec/if/rtems/event/system-network-close.yml
rename to spec/rtems/event/if/system-network-close.yml
diff --git a/spec/if/rtems/event/system-network-sbwait.yml b/spec/rtems/event/if/system-network-sbwait.yml
similarity index 100%
rename from spec/if/rtems/event/system-network-sbwait.yml
rename to spec/rtems/event/if/system-network-sbwait.yml
diff --git a/spec/if/rtems/event/system-network-sosleep.yml b/spec/rtems/event/if/system-network-sosleep.yml
similarity index 100%
rename from spec/if/rtems/event/system-network-sosleep.yml
rename to spec/rtems/event/if/system-network-sosleep.yml
diff --git a/spec/rtems/event/if/system-receive.yml b/spec/rtems/event/if/system-receive.yml
new file mode 100644
index 0000000..1cecddc
--- /dev/null
+++ b/spec/rtems/event/if/system-receive.yml
@@ -0,0 +1,49 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Receives or gets a system event set.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${set:/name} ${.:/params[0]/name}
+    - ${../../option/if/option:/name} ${.:/params[1]/name}
+    - ${../../type/if/interval:/name} ${.:/params[2]/name}
+    - ${set:/name} *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive performs the same actions as the ${receive:/name} directive
+  except that it operates with a different set of events for each task.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+name: rtems_event_system_receive
+notes: null
+params:
+- description: |
+    is the event set of interest.  Use ${pending-events:/name} to get the
+    pending events.
+  dir: null
+  name: event_in
+- description: is the option set.
+  dir: null
+  name: option_set
+- description: |
+    is the timeout in clock ticks if the ${../../option/if/wait:/name} option was
+    set.  Use ${../../type/if/no-timeout:/name} to wait potentially forever.
+  dir: null
+  name: ticks
+- description: |
+    is the pointer to an event set.  The received or pending events are stored
+    in the referenced event set if the operation was successful.
+  dir: null
+  name: event_out
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/event/if/system-send.yml b/spec/rtems/event/if/system-send.yml
new file mode 100644
index 0000000..75c7fb5
--- /dev/null
+++ b/spec/rtems/event/if/system-send.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Sends a system event set to a task.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${set:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+name: rtems_event_system_send
+notes: null
+params:
+- description: is the identifier of the target task to receive the event set.
+  dir: null
+  name: id
+- description: is the event set to send.
+  dir: null
+  name: event_in
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/event/system-server-resume.yml b/spec/rtems/event/if/system-server-resume.yml
similarity index 100%
rename from spec/if/rtems/event/system-server-resume.yml
rename to spec/rtems/event/if/system-server-resume.yml
diff --git a/spec/if/rtems/event/system-server.yml b/spec/rtems/event/if/system-server.yml
similarity index 100%
rename from spec/if/rtems/event/system-server.yml
rename to spec/rtems/event/if/system-server.yml
diff --git a/spec/if/rtems/event/system-transient.yml b/spec/rtems/event/if/system-transient.yml
similarity index 100%
rename from spec/if/rtems/event/system-transient.yml
rename to spec/rtems/event/if/system-transient.yml
diff --git a/spec/rtems/event/if/transient-clear.yml b/spec/rtems/event/if/transient-clear.yml
new file mode 100644
index 0000000..de9bf47
--- /dev/null
+++ b/spec/rtems/event/if/transient-clear.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Clears the transient event.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: |
+      ${set:/name} event_out;
+
+      (void) ${system-receive:/name}(
+        ${system-transient:/name},
+        ${../../option/if/event-all:/name} | ${../../option/if/no-wait:/name},
+        0,
+        &event_out
+      );
+    params: []
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+name: rtems_event_transient_clear
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/event/if/transient-receive.yml b/spec/rtems/event/if/transient-receive.yml
new file mode 100644
index 0000000..1c592d0
--- /dev/null
+++ b/spec/rtems/event/if/transient-receive.yml
@@ -0,0 +1,40 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Receives the transient event.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: |
+      ${set:/name} event_out;
+
+      return ${system-receive:/name}(
+        ${system-transient:/name},
+        ${../../option/if/event-all:/name} | ${.:/params[0]/name},
+        ${.:/params[1]/name},
+        &event_out
+      );
+    params:
+    - ${../../option/if/option:/name} ${.:/params[0]/name}
+    - ${../../type/if/interval:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+name: rtems_event_transient_receive
+notes: null
+params:
+- description: is the option set.
+  dir: null
+  name: option_set
+- description: is the optional timeout in clock ticks.
+  dir: null
+  name: ticks
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/event/if/transient-send.yml b/spec/rtems/event/if/transient-send.yml
new file mode 100644
index 0000000..1bfb619
--- /dev/null
+++ b/spec/rtems/event/if/transient-send.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Sends the transient event to the specified task.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: |
+      return ${system-send:/name}( ${.:/params[0]/name}, ${system-transient:/name} );
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+name: rtems_event_transient_send
+notes: null
+params:
+- description: is the identifier of the task to receive the transient event.
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/req/rtems/event/val/event-constant.yml b/spec/rtems/event/req/event-constant.yml
similarity index 100%
rename from spec/req/rtems/event/val/event-constant.yml
rename to spec/rtems/event/req/event-constant.yml
diff --git a/spec/req/rtems/event/val/events.yml b/spec/rtems/event/req/events.yml
similarity index 100%
rename from spec/req/rtems/event/val/events.yml
rename to spec/rtems/event/req/events.yml
diff --git a/spec/rtems/event/req/receive.yml b/spec/rtems/event/req/receive.yml
new file mode 100644
index 0000000..b2bdab6
--- /dev/null
+++ b/spec/rtems/event/req/receive.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/receive
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/receive:/name} directive shall receive events from the
+  application event set of a task as specified by ${send-receive}.
+type: requirement
diff --git a/spec/req/rtems/event/send-receive.yml b/spec/rtems/event/req/send-receive.yml
similarity index 100%
rename from spec/req/rtems/event/send-receive.yml
rename to spec/rtems/event/req/send-receive.yml
diff --git a/spec/rtems/event/req/send.yml b/spec/rtems/event/req/send.yml
new file mode 100644
index 0000000..328e129
--- /dev/null
+++ b/spec/rtems/event/req/send.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/send
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/send:/name} directive shall send events to the application event
+  set of a task as specified by ${send-receive}.
+type: requirement
diff --git a/spec/rtems/event/req/system-receive.yml b/spec/rtems/event/req/system-receive.yml
new file mode 100644
index 0000000..5343d74
--- /dev/null
+++ b/spec/rtems/event/req/system-receive.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/system-receive
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/system-receive:/name} directive shall receive events from the
+  system event set of a task as specified by ${send-receive}.
+type: requirement
diff --git a/spec/rtems/event/req/system-send.yml b/spec/rtems/event/req/system-send.yml
new file mode 100644
index 0000000..22336d8
--- /dev/null
+++ b/spec/rtems/event/req/system-send.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/system-send
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/system-send:/name} directive shall send events to the system
+  event set of a task as specified by ${send-receive}.
+type: requirement
diff --git a/spec/rtems/event/val/send-receive.yml b/spec/rtems/event/val/send-receive.yml
new file mode 100644
index 0000000..f3d6720
--- /dev/null
+++ b/spec/rtems/event/val/send-receive.yml
@@ -0,0 +1,65 @@
+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:
+- role: validation
+  uid: ../req/receive
+- role: validation
+  uid: ../req/send
+test-actions:
+- action: |
+    ${../req/send-receive:/test-run}(
+      EventSend,
+      EventReceive,
+      GetPendingEvents,
+      THREAD_WAIT_CLASS_EVENT,
+      STATES_WAITING_FOR_EVENT
+    );
+  checks: []
+  description: |
+    Run the event send and receive tests for the application event set defined
+    by ${../req/send-receive}.
+  links: []
+test-brief: |
+  Tests the ${../if/send:/name} and ${../if/receive:/name} directives.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes:
+- rtems/rtems/eventimpl.h
+- rtems/rtems/tasksdata.h
+- rtems/score/statesimpl.h
+- rtems/score/threadimpl.h
+test-local-includes:
+- tr-event-send-receive.h
+test-prologue: null
+test-support: |
+  static rtems_status_code EventSend(
+    rtems_id        id,
+    rtems_event_set event_in
+  )
+  {
+    return rtems_event_send( id, event_in );
+  }
+
+  static rtems_status_code EventReceive(
+    rtems_id         event_in,
+    rtems_option     option_set,
+    rtems_interval   ticks,
+    rtems_event_set *event_out
+  )
+  {
+    return rtems_event_receive( event_in, option_set, ticks, event_out );
+  }
+
+  static rtems_event_set GetPendingEvents( Thread_Control *thread )
+  {
+    RTEMS_API_Control *api;
+
+    api = thread->API_Extensions[ THREAD_API_RTEMS ];
+    return api->Event.pending_events;
+  }
+test-target: testsuites/validation/tc-event-send-receive.c
+type: test-case
diff --git a/spec/rtems/event/val/system-send-receive.yml b/spec/rtems/event/val/system-send-receive.yml
new file mode 100644
index 0000000..18bdeb0
--- /dev/null
+++ b/spec/rtems/event/val/system-send-receive.yml
@@ -0,0 +1,71 @@
+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:
+- role: validation
+  uid: ../req/system-receive
+- role: validation
+  uid: ../req/system-send
+test-actions:
+- action: |
+    ${../req/send-receive:/test-run}(
+      EventSystemSend,
+      EventSystemReceive,
+      GetPendingSystemEvents,
+      THREAD_WAIT_CLASS_SYSTEM_EVENT,
+      STATES_WAITING_FOR_SYSTEM_EVENT
+    );
+  checks: []
+  description: |
+    Run the event send and receive tests for the system event set defined
+    by ${../req/send-receive}.
+  links: []
+test-brief: |
+  Tests the ${../if/system-send:/name} and ${../if/system-receive:/name}
+  directives.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes:
+- rtems/rtems/eventimpl.h
+- rtems/rtems/tasksdata.h
+- rtems/score/statesimpl.h
+- rtems/score/threadimpl.h
+test-local-includes:
+- tr-event-send-receive.h
+test-prologue: null
+test-support: |
+  static rtems_status_code EventSystemSend(
+    rtems_id        id,
+    rtems_event_set event_in
+  )
+  {
+    return rtems_event_system_send( id, event_in );
+  }
+
+  static rtems_status_code EventSystemReceive(
+    rtems_id         event_in,
+    rtems_option     option_set,
+    rtems_interval   ticks,
+    rtems_event_set *event_out
+  )
+  {
+    return rtems_event_system_receive(
+      event_in,
+      option_set,
+      ticks,
+      event_out
+    );
+  }
+
+  static rtems_event_set GetPendingSystemEvents( Thread_Control *thread )
+  {
+    RTEMS_API_Control *api;
+
+    api = thread->API_Extensions[ THREAD_API_RTEMS ];
+    return api->System_event.pending_events;
+  }
+test-target: testsuites/validation/tc-event-send-receive.c
+type: test-case
diff --git a/spec/if/rtems/fatal/assert-context.yml b/spec/rtems/fatal/if/assert-context.yml
similarity index 100%
rename from spec/if/rtems/fatal/assert-context.yml
rename to spec/rtems/fatal/if/assert-context.yml
diff --git a/spec/rtems/fatal/if/error-occurred.yml b/spec/rtems/fatal/if/error-occurred.yml
new file mode 100644
index 0000000..a0e8c6d
--- /dev/null
+++ b/spec/rtems/fatal/if/error-occurred.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/uint32_t:/name} ${.:/params[0]/name}
+    return: ${../../basedefs/if/no-return:/name} void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_fatal_error_occurred
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: the_error
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/fatal/if/exception-frame-print.yml b/spec/rtems/fatal/if/exception-frame-print.yml
new file mode 100644
index 0000000..d65187b
--- /dev/null
+++ b/spec/rtems/fatal/if/exception-frame-print.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: |
+      ${/score/cpu/if/exception-frame-print:/name}( ${.:/params[0]/name} );
+    params:
+    - const ${exception-frame:/name} *${.:/params[0]/name}
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_exception_frame_print
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: frame
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/fatal/if/exception-frame.yml b/spec/rtems/fatal/if/exception-frame.yml
new file mode 100644
index 0000000..43aa120
--- /dev/null
+++ b/spec/rtems/fatal/if/exception-frame.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/cpu/if/exception-frame:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_exception_frame
+notes: null
+type: interface
diff --git a/spec/rtems/fatal/if/fatal.yml b/spec/rtems/fatal/if/fatal.yml
new file mode 100644
index 0000000..10fdaad
--- /dev/null
+++ b/spec/rtems/fatal/if/fatal.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: |
+      ${/score/interr/if/terminate:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} );
+    params:
+    - ${../../userext/if/fatal-source:/name} ${.:/params[0]/name}
+    - ${../../userext/if/fatal-code:/name} ${.:/params[1]/name}
+    return: ${../../basedefs/if/no-return:/name} void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_fatal
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: fatal_source
+- description: '%'
+  dir: null
+  name: error_code
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/fatal/if/group.yml b/spec/rtems/fatal/if/group.yml
new file mode 100644
index 0000000..e3a0530
--- /dev/null
+++ b/spec/rtems/fatal/if/group.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Fatal Error Manager processes all fatal or irrecoverable errors and other
+  sources of system termination (for example after ``exit()``).  Fatal errors
+  are identified by the fatal source and error code pair.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicFatal
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Fatal Error Manager
+text: |
+  The Classic API shall provide an interface to the Fatal Error Manager.
+type: interface
diff --git a/spec/rtems/fatal/if/header.yml b/spec/rtems/fatal/if/header.yml
new file mode 100644
index 0000000..77f8e0c
--- /dev/null
+++ b/spec/rtems/fatal/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Fatal Error Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/fatal.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/fatal/if/internal-error-text.yml b/spec/rtems/fatal/if/internal-error-text.yml
new file mode 100644
index 0000000..8c55cc0
--- /dev/null
+++ b/spec/rtems/fatal/if/internal-error-text.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../userext/if/fatal-code:/name} ${.:/params[0]/name}
+    return: const char *
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_internal_error_text
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: error
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/fatal/if/panic.yml b/spec/rtems/fatal/if/panic.yml
new file mode 100644
index 0000000..18511f8
--- /dev/null
+++ b/spec/rtems/fatal/if/panic.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const char *${.:/params[0]/name}
+    - '...'
+    return: |
+      ${../../basedefs/if/no-return:/name} ${../../basedefs/if/printflike:/name}( 1, 2 ) void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_panic
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: fmt
+- description: '%'
+  dir: null
+  name: '...'
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/fatal/if/source-text.yml b/spec/rtems/fatal/if/source-text.yml
new file mode 100644
index 0000000..ae97ebb
--- /dev/null
+++ b/spec/rtems/fatal/if/source-text.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../userext/if/fatal-source:/name} ${.:/params[0]/name}
+    return: const char *
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_fatal_source_text
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: source
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/if/group.yml b/spec/rtems/if/group.yml
new file mode 100644
index 0000000..f2284dc
--- /dev/null
+++ b/spec/rtems/if/group.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains the Classic API groups.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassic
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: /if/api
+name: Classic
+text: |
+  The API shall contain the Classic API.
+type: interface
diff --git a/spec/rtems/if/header.yml b/spec/rtems/if/header.yml
new file mode 100644
index 0000000..d6f6234
--- /dev/null
+++ b/spec/rtems/if/header.yml
@@ -0,0 +1,87 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Classic API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+- enabled-by: []
+  role: interface-include
+  uid: ../barrier/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../cache/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../clock/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../config/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../dpmem/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../event/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../fatal/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../init/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../intr/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../io/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../message/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../object/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../option/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../part/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../ratemon/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../region/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../sem/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../signal/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../status/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../support/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../task/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../timer/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../type/if/header
+- enabled-by: []
+  role: interface-include
+  uid: ../userext/if/header
+- enabled-by: RTEMS_MULTIPROCESSING
+  role: interface-include
+  uid: ../mp/if/header
+path: rtems.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/init/if/group.yml b/spec/rtems/init/if/group.yml
new file mode 100644
index 0000000..89104bf
--- /dev/null
+++ b/spec/rtems/init/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains directives to initialize and shutdown the RTEMS
+  executive.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicInit
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Initialization and Shutdown
+text: |
+  The Classic API shall provide an interface to the Initialization and Shutdown
+  Manager.
+type: interface
diff --git a/spec/rtems/init/if/header.yml b/spec/rtems/init/if/header.yml
new file mode 100644
index 0000000..a842fbd
--- /dev/null
+++ b/spec/rtems/init/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Initialization Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/init.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/init/if/initialize-executive.yml b/spec/rtems/init/if/initialize-executive.yml
new file mode 100644
index 0000000..5d4e3ac
--- /dev/null
+++ b/spec/rtems/init/if/initialize-executive.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Initializes the system and starts multitasking.
+copyrights:
+- Copyright (C) 2015, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${../../basedefs/if/no-return:/name} void
+  variants: []
+description: |
+  Iterates through the system initialization linker set and invokes the
+  registered handlers.  The final step is to start multitasking.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_initialize_executive
+notes: |
+  This directive should be called by boot_card() only.
+
+  This directive does not return to the caller.  Errors in the initialization
+  sequence are usually fatal and lead to a system termination.
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/init/if/shutdown-executive.yml b/spec/rtems/init/if/shutdown-executive.yml
new file mode 100644
index 0000000..d4e8fe0
--- /dev/null
+++ b/spec/rtems/init/if/shutdown-executive.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Shuts down the RTEMS environment.
+copyrights:
+- Copyright (C) 2015, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/uint32_t:/name} ${.:/params[0]/name}
+    return: ${../../basedefs/if/no-return:/name} void
+  variants: []
+description: |
+  The invocation of this directive results in the RTEMS environment being
+  shutdown and multitasking halted.  The system is terminated with a fatal
+  source of RTEMS_FATAL_SOURCE_EXIT and the specified result code.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_shutdown_executive
+notes: |
+  This directive does not return to the caller.
+params:
+- description: is the result code.
+  dir: null
+  name: result
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/catch.yml b/spec/rtems/intr/if/catch.yml
new file mode 100644
index 0000000..40246fc
--- /dev/null
+++ b/spec/rtems/intr/if/catch.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${isr-entry:/name} ${.:/params[0]/name}
+    - ${vector-number:/name} ${.:/params[1]/name}
+    - ${isr-entry:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_catch
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: new_isr_handler
+- description: '%'
+  dir: null
+  name: vector
+- description: '%'
+  dir: null
+  name: old_isr_handler
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/intr/cause.yml b/spec/rtems/intr/if/cause.yml
similarity index 100%
rename from spec/if/rtems/intr/cause.yml
rename to spec/rtems/intr/if/cause.yml
diff --git a/spec/if/rtems/intr/clear.yml b/spec/rtems/intr/if/clear.yml
similarity index 100%
rename from spec/if/rtems/intr/clear.yml
rename to spec/rtems/intr/if/clear.yml
diff --git a/spec/rtems/intr/if/disable.yml b/spec/rtems/intr/if/disable.yml
new file mode 100644
index 0000000..c87c3d5
--- /dev/null
+++ b/spec/rtems/intr/if/disable.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/local-disable:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by:
+  not: RTEMS_SMP
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_disable
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _isr_cookie
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/enable.yml b/spec/rtems/intr/if/enable.yml
new file mode 100644
index 0000000..e2353cc
--- /dev/null
+++ b/spec/rtems/intr/if/enable.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/local-enable:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by:
+  not: RTEMS_SMP
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_enable
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _isr_cookie
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/flash.yml b/spec/rtems/intr/if/flash.yml
new file mode 100644
index 0000000..140ba90
--- /dev/null
+++ b/spec/rtems/intr/if/flash.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/local-flash:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by:
+  not: RTEMS_SMP
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_flash
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _isr_cookie
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/group.yml b/spec/rtems/intr/if/group.yml
new file mode 100644
index 0000000..e1c4c8a
--- /dev/null
+++ b/spec/rtems/intr/if/group.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Any real-time executive must provide a mechanism for quick response to
+  externally generated interrupts to satisfy the critical time constraints of
+  the application.  The Interrupt Manager provides this mechanism for RTEMS.
+  This manager permits quick interrupt response times by providing the critical
+  ability to alter task execution which allows a task to be preempted upon exit
+  from an ISR.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicIntr
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Interrupt Manager
+text: |
+  The Classic API shall provide an interface to the Interrupt Manager.
+type: interface
diff --git a/spec/rtems/intr/if/header.yml b/spec/rtems/intr/if/header.yml
new file mode 100644
index 0000000..b1c6378
--- /dev/null
+++ b/spec/rtems/intr/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Interrupt Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/intr.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/intr/if/is-in-progress.yml b/spec/rtems/intr/if/is-in-progress.yml
new file mode 100644
index 0000000..115adee
--- /dev/null
+++ b/spec/rtems/intr/if/is-in-progress.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/is-in-progress:/name}()
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_is_in_progress
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/isr-entry.yml b/spec/rtems/intr/if/isr-entry.yml
new file mode 100644
index 0000000..eedfcca
--- /dev/null
+++ b/spec/rtems/intr/if/isr-entry.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Interrupt service routines installed by ${catch:/name} shall have this
+  function pointer type.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: void ( *${.:/name} )( void * )
+  variants:
+  - definition: ${/score/isr/if/handler-entry:/name} ${.:/name}
+    enabled-by: ${/score/cpu/if/simple-vectored-interrupts:/name} == ${../../basedefs/if/true:/name}
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_isr_entry
+notes: null
+type: interface
diff --git a/spec/rtems/intr/if/isr.yml b/spec/rtems/intr/if/isr.yml
new file mode 100644
index 0000000..9ef98ec
--- /dev/null
+++ b/spec/rtems/intr/if/isr.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/handler:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_isr
+notes: null
+type: interface
diff --git a/spec/rtems/intr/if/level.yml b/spec/rtems/intr/if/level.yml
new file mode 100644
index 0000000..ab9d08d
--- /dev/null
+++ b/spec/rtems/intr/if/level.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/level:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_level
+notes: null
+type: interface
diff --git a/spec/rtems/intr/if/local-disable.yml b/spec/rtems/intr/if/local-disable.yml
new file mode 100644
index 0000000..2a4918c
--- /dev/null
+++ b/spec/rtems/intr/if/local-disable.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/local-disable:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_local_disable
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _isr_cookie
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/local-enable.yml b/spec/rtems/intr/if/local-enable.yml
new file mode 100644
index 0000000..5bfa440
--- /dev/null
+++ b/spec/rtems/intr/if/local-enable.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/local-enable:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_local_enable
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _isr_cookie
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-acquire-isr.yml b/spec/rtems/intr/if/lock-acquire-isr.yml
new file mode 100644
index 0000000..e7bca71
--- /dev/null
+++ b/spec/rtems/intr/if/lock-acquire-isr.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: do { (void) ${.:/params[1]/name}; } while ( 0 )
+  variants:
+  - definition: |
+      ${/score/smp/if/lock-acquire:/name}(
+        &( ${.:/params[0]/name} )->Lock,
+        &( ${.:/params[1]/name} )->Lock_context
+      )
+    enabled-by: defined(${/build-options/if/smp:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock_acquire_isr
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _lock
+- description: '%'
+  dir: null
+  name: _lock_context
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-acquire.yml b/spec/rtems/intr/if/lock-acquire.yml
new file mode 100644
index 0000000..4ca3dbd
--- /dev/null
+++ b/spec/rtems/intr/if/lock-acquire.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/isr/if/lock-isr-disable-acquire:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock_acquire
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _lock
+- description: '%'
+  dir: null
+  name: _lock_context
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-context.yml b/spec/rtems/intr/if/lock-context.yml
new file mode 100644
index 0000000..c1c53d9
--- /dev/null
+++ b/spec/rtems/intr/if/lock-context.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/lock-context:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock_context
+notes: null
+type: interface
diff --git a/spec/rtems/intr/if/lock-declare.yml b/spec/rtems/intr/if/lock-declare.yml
new file mode 100644
index 0000000..fa1c114
--- /dev/null
+++ b/spec/rtems/intr/if/lock-declare.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/isr/if/lock-declare:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_INTERRUPT_LOCK_DECLARE
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _qualifier
+- description: '%'
+  dir: null
+  name: _designator
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-define.yml b/spec/rtems/intr/if/lock-define.yml
new file mode 100644
index 0000000..762201a
--- /dev/null
+++ b/spec/rtems/intr/if/lock-define.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/isr/if/lock-define:/name}( ${.:/params[0]/name}, ${.:/params[1]/name}, ${.:/params[2]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_INTERRUPT_LOCK_DEFINE
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _qualifier
+- description: '%'
+  dir: null
+  name: _designator
+- description: '%'
+  dir: null
+  name: _name
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-destroy.yml b/spec/rtems/intr/if/lock-destroy.yml
new file mode 100644
index 0000000..5c6e553
--- /dev/null
+++ b/spec/rtems/intr/if/lock-destroy.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/lock-destroy:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock_destroy
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _lock
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-initialize.yml b/spec/rtems/intr/if/lock-initialize.yml
new file mode 100644
index 0000000..0c82aa6
--- /dev/null
+++ b/spec/rtems/intr/if/lock-initialize.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/isr/if/lock-initialize:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock_initialize
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _lock
+- description: '%'
+  dir: null
+  name: _name
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-initializer.yml b/spec/rtems/intr/if/lock-initializer.yml
new file mode 100644
index 0000000..b2ee84a
--- /dev/null
+++ b/spec/rtems/intr/if/lock-initializer.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/lock-initializer:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_INTERRUPT_LOCK_INITIALIZER
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _name
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-isr-disable.yml b/spec/rtems/intr/if/lock-isr-disable.yml
new file mode 100644
index 0000000..43660b9
--- /dev/null
+++ b/spec/rtems/intr/if/lock-isr-disable.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/lock-isr-disable:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock_interrupt_disable
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _lock_context
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-member.yml b/spec/rtems/intr/if/lock-member.yml
new file mode 100644
index 0000000..19f9509
--- /dev/null
+++ b/spec/rtems/intr/if/lock-member.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/lock-member:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_INTERRUPT_LOCK_MEMBER
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _designator
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-reference.yml b/spec/rtems/intr/if/lock-reference.yml
new file mode 100644
index 0000000..e187c4b
--- /dev/null
+++ b/spec/rtems/intr/if/lock-reference.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/isr/if/lock-reference:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_INTERRUPT_LOCK_REFERENCE
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _designator
+- description: '%'
+  dir: null
+  name: _target
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-release-isr.yml b/spec/rtems/intr/if/lock-release-isr.yml
new file mode 100644
index 0000000..e12e641
--- /dev/null
+++ b/spec/rtems/intr/if/lock-release-isr.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: do { (void) ${.:/params[1]/name}; } while ( 0 )
+  variants:
+  - definition: |
+      ${/score/smp/if/lock-release:/name}(
+        &( ${.:/params[0]/name} )->Lock,
+        &( ${.:/params[1]/name} )->Lock_context
+      )
+    enabled-by: defined(${/build-options/if/smp:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock_release_isr
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _lock
+- description: '%'
+  dir: null
+  name: _lock_context
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock-release.yml b/spec/rtems/intr/if/lock-release.yml
new file mode 100644
index 0000000..97bbb81
--- /dev/null
+++ b/spec/rtems/intr/if/lock-release.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/isr/if/lock-release-isr-enable:/name}( ${.:/params[0]/name}, ${.:/params[1]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock_release
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _lock
+- description: '%'
+  dir: null
+  name: _lock_context
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/intr/if/lock.yml b/spec/rtems/intr/if/lock.yml
new file mode 100644
index 0000000..1b2615b
--- /dev/null
+++ b/spec/rtems/intr/if/lock.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/lock-control:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_lock
+notes: null
+type: interface
diff --git a/spec/rtems/intr/if/vector-number.yml b/spec/rtems/intr/if/vector-number.yml
new file mode 100644
index 0000000..74e96aa
--- /dev/null
+++ b/spec/rtems/intr/if/vector-number.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/isr/if/vector-number:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_vector_number
+notes: null
+type: interface
diff --git a/spec/rtems/io/if/close.yml b/spec/rtems/io/if/close.yml
new file mode 100644
index 0000000..0321a93
--- /dev/null
+++ b/spec/rtems/io/if/close.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    - ${device-minor-number:/name} ${.:/params[1]/name}
+    - void *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_close
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: minor
+- description: '%'
+  dir: null
+  name: argument
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/io/if/control.yml b/spec/rtems/io/if/control.yml
new file mode 100644
index 0000000..0960813
--- /dev/null
+++ b/spec/rtems/io/if/control.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    - ${device-minor-number:/name} ${.:/params[1]/name}
+    - void *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_control
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: minor
+- description: '%'
+  dir: null
+  name: argument
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/io/device-driver-entry.yml b/spec/rtems/io/if/device-driver-entry.yml
similarity index 100%
rename from spec/if/rtems/io/device-driver-entry.yml
rename to spec/rtems/io/if/device-driver-entry.yml
diff --git a/spec/rtems/io/if/device-driver.yml b/spec/rtems/io/if/device-driver.yml
new file mode 100644
index 0000000..7ed1cdb
--- /dev/null
+++ b/spec/rtems/io/if/device-driver.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${../../status/if/code:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_device_driver
+notes: null
+type: interface
diff --git a/spec/rtems/io/if/device-major-number.yml b/spec/rtems/io/if/device-major-number.yml
new file mode 100644
index 0000000..f49bbc6
--- /dev/null
+++ b/spec/rtems/io/if/device-major-number.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_device_major_number
+notes: null
+type: interface
diff --git a/spec/rtems/io/if/device-minor-number.yml b/spec/rtems/io/if/device-minor-number.yml
new file mode 100644
index 0000000..dde1815
--- /dev/null
+++ b/spec/rtems/io/if/device-minor-number.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_device_minor_number
+notes: null
+type: interface
diff --git a/spec/if/rtems/io/driver-address-table.yml b/spec/rtems/io/if/driver-address-table.yml
similarity index 100%
rename from spec/if/rtems/io/driver-address-table.yml
rename to spec/rtems/io/if/driver-address-table.yml
diff --git a/spec/rtems/io/if/driver-error.yml b/spec/rtems/io/if/driver-error.yml
new file mode 100644
index 0000000..e9d1f0a
--- /dev/null
+++ b/spec/rtems/io/if/driver-error.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    - ${device-minor-number:/name} ${.:/params[1]/name}
+    - void *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_driver_io_error
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: minor
+- description: '%'
+  dir: null
+  name: arg
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/io/getchark.yml b/spec/rtems/io/if/getchark.yml
similarity index 100%
rename from spec/if/rtems/io/getchark.yml
rename to spec/rtems/io/if/getchark.yml
diff --git a/spec/rtems/io/if/group.yml b/spec/rtems/io/if/group.yml
new file mode 100644
index 0000000..181f251
--- /dev/null
+++ b/spec/rtems/io/if/group.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Input/Output Interface Manager provides a well-defined mechanism for
+  accessing device drivers and a structured methodology for organizing device
+  drivers.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicIO
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Input/Output Interface Manager
+text: |
+  The Classic API shall provide an interface to the Input/Output Interface Manager.
+type: interface
diff --git a/spec/rtems/io/if/header.yml b/spec/rtems/io/if/header.yml
new file mode 100644
index 0000000..70a8d08
--- /dev/null
+++ b/spec/rtems/io/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the IO Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/io.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/io/if/initialize.yml b/spec/rtems/io/if/initialize.yml
new file mode 100644
index 0000000..6125051
--- /dev/null
+++ b/spec/rtems/io/if/initialize.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    - ${device-minor-number:/name} ${.:/params[1]/name}
+    - void *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_initialize
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: minor
+- description: '%'
+  dir: null
+  name: argument
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/io/mount.yml b/spec/rtems/io/if/mount.yml
similarity index 100%
rename from spec/if/rtems/io/mount.yml
rename to spec/rtems/io/if/mount.yml
diff --git a/spec/rtems/io/if/open.yml b/spec/rtems/io/if/open.yml
new file mode 100644
index 0000000..6ec33a0
--- /dev/null
+++ b/spec/rtems/io/if/open.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    - ${device-minor-number:/name} ${.:/params[1]/name}
+    - void *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_open
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: minor
+- description: '%'
+  dir: null
+  name: argument
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/io/printer.yml b/spec/rtems/io/if/printer.yml
similarity index 100%
rename from spec/if/rtems/io/printer.yml
rename to spec/rtems/io/if/printer.yml
diff --git a/spec/if/rtems/io/printk.yml b/spec/rtems/io/if/printk.yml
similarity index 100%
rename from spec/if/rtems/io/printk.yml
rename to spec/rtems/io/if/printk.yml
diff --git a/spec/if/rtems/io/putc.yml b/spec/rtems/io/if/putc.yml
similarity index 100%
rename from spec/if/rtems/io/putc.yml
rename to spec/rtems/io/if/putc.yml
diff --git a/spec/rtems/io/if/read.yml b/spec/rtems/io/if/read.yml
new file mode 100644
index 0000000..b28a127
--- /dev/null
+++ b/spec/rtems/io/if/read.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    - ${device-minor-number:/name} ${.:/params[1]/name}
+    - void *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_read
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: minor
+- description: '%'
+  dir: null
+  name: argument
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/io/if/register-driver.yml b/spec/rtems/io/if/register-driver.yml
new file mode 100644
index 0000000..a51ec9c
--- /dev/null
+++ b/spec/rtems/io/if/register-driver.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    - const rtems_driver_address_table *${.:/params[1]/name}
+    - ${device-major-number:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_register_driver
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: driver_table
+- description: '%'
+  dir: null
+  name: registered_major
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/io/if/register-name.yml b/spec/rtems/io/if/register-name.yml
new file mode 100644
index 0000000..0b08640
--- /dev/null
+++ b/spec/rtems/io/if/register-name.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const char *${.:/params[0]/name}
+    - ${device-major-number:/name} ${.:/params[1]/name}
+    - ${device-minor-number:/name} ${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_register_name
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: device_name
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: minor
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/io/unmount.yml b/spec/rtems/io/if/unmount.yml
similarity index 100%
rename from spec/if/rtems/io/unmount.yml
rename to spec/rtems/io/if/unmount.yml
diff --git a/spec/rtems/io/if/unregister-driver.yml b/spec/rtems/io/if/unregister-driver.yml
new file mode 100644
index 0000000..0f7cf26
--- /dev/null
+++ b/spec/rtems/io/if/unregister-driver.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_unregister_driver
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/io/if/write.yml b/spec/rtems/io/if/write.yml
new file mode 100644
index 0000000..0cd9c27
--- /dev/null
+++ b/spec/rtems/io/if/write.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${device-major-number:/name} ${.:/params[0]/name}
+    - ${device-minor-number:/name} ${.:/params[1]/name}
+    - void *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_io_write
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: major
+- description: '%'
+  dir: null
+  name: minor
+- description: '%'
+  dir: null
+  name: argument
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/if/broadcast.yml b/spec/rtems/message/if/broadcast.yml
new file mode 100644
index 0000000..ab2e45d
--- /dev/null
+++ b/spec/rtems/message/if/broadcast.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - const void *${.:/params[1]/name}
+    - ${/c/if/size_t:/name} ${.:/params[2]/name}
+    - ${/c/if/uint32_t:/name} *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_broadcast
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: buffer
+- description: '%'
+  dir: null
+  name: size
+- description: '%'
+  dir: null
+  name: count
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/if/create.yml b/spec/rtems/message/if/create.yml
new file mode 100644
index 0000000..88f0cdb
--- /dev/null
+++ b/spec/rtems/message/if/create.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    - ${/c/if/size_t:/name} ${.:/params[2]/name}
+    - ${../../attr/if/attribute:/name} ${.:/params[3]/name}
+    - ${../../type/if/id:/name} *${.:/params[4]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_create
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: name
+- description: '%'
+  dir: null
+  name: count
+- description: '%'
+  dir: null
+  name: max_message_size
+- description: '%'
+  dir: null
+  name: attribute_set
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/if/delete.yml b/spec/rtems/message/if/delete.yml
new file mode 100644
index 0000000..3e6fb46
--- /dev/null
+++ b/spec/rtems/message/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/if/flush.yml b/spec/rtems/message/if/flush.yml
new file mode 100644
index 0000000..faeb0c8
--- /dev/null
+++ b/spec/rtems/message/if/flush.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_flush
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: count
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/if/get-number-pending.yml b/spec/rtems/message/if/get-number-pending.yml
new file mode 100644
index 0000000..aab16f4
--- /dev/null
+++ b/spec/rtems/message/if/get-number-pending.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_get_number_pending
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: count
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/if/group.yml b/spec/rtems/message/if/group.yml
new file mode 100644
index 0000000..82c9944
--- /dev/null
+++ b/spec/rtems/message/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Message Manager provides communication and synchronization capabilities
+  using RTEMS message queues.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicMessage
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Message Manager
+text: |
+  The Classic API shall provide an interface to the Message Manager.
+type: interface
diff --git a/spec/rtems/message/if/header.yml b/spec/rtems/message/if/header.yml
new file mode 100644
index 0000000..519439d
--- /dev/null
+++ b/spec/rtems/message/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Message Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/message.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/message/if/ident.yml b/spec/rtems/message/if/ident.yml
new file mode 100644
index 0000000..a80d93d
--- /dev/null
+++ b/spec/rtems/message/if/ident.yml
@@ -0,0 +1,86 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a message queue object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    - ${../../type/if/id:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the message queue identifier associated with the
+  message queue name specified in ``${.:/params[0]/name}``.
+
+  The node to search is specified in ``${.:/params[1]/name}``.  It shall be
+
+  * a valid node number,
+
+  * the constant ${../../object/if/search-all-nodes:/name} to search in all nodes,
+
+  * the constant ${../../object/if/search-local-node:/name} to search in the local
+    node only, or
+
+  * the constant ${../../object/if/search-other-nodes:/name} to search in all nodes
+    except the local node.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_ident
+notes: |
+  If the message queue name is not unique, then the message queue identifier
+  will match the first message queue with that name in the search order.
+  However, this message queue identifier is not guaranteed to correspond to the
+  desired message queue.  The message queue identifier is used with other
+  message related directives to access the message queue.
+
+  If node is ${../../object/if/search-all-nodes:/name}, all nodes are searched with
+  the local node being searched first.  All other nodes are searched with the
+  lowest numbered node searched first.
+
+  If node is a valid node number which does not represent the local node, then
+  only the message queues exported by the designated node are searched.
+
+  This directive does not generate activity on remote nodes.  It accesses only
+  the local copy of the global object table.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: is the node or node set to search for a matching object.
+  dir: null
+  name: node
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the specified nodes.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      In multiprocessing configurations, the specified node was invalid.
+    value: ${../../status/if/invalid-node:/name}
+type: interface
diff --git a/spec/rtems/message/if/receive.yml b/spec/rtems/message/if/receive.yml
new file mode 100644
index 0000000..5c77ded
--- /dev/null
+++ b/spec/rtems/message/if/receive.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - ${/c/if/size_t:/name} *${.:/params[2]/name}
+    - ${../../option/if/option:/name} ${.:/params[3]/name}
+    - ${../../type/if/interval:/name} ${.:/params[4]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_receive
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: buffer
+- description: '%'
+  dir: null
+  name: size
+- description: '%'
+  dir: null
+  name: option_set
+- description: '%'
+  dir: null
+  name: timeout
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/if/send.yml b/spec/rtems/message/if/send.yml
new file mode 100644
index 0000000..7ce5dd0
--- /dev/null
+++ b/spec/rtems/message/if/send.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - const void *${.:/params[1]/name}
+    - ${/c/if/size_t:/name} ${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_send
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: buffer
+- description: '%'
+  dir: null
+  name: size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/if/urgent.yml b/spec/rtems/message/if/urgent.yml
new file mode 100644
index 0000000..bf21ed9
--- /dev/null
+++ b/spec/rtems/message/if/urgent.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - const void *${.:/params[1]/name}
+    - ${/c/if/size_t:/name} ${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_message_queue_urgent
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: buffer
+- description: '%'
+  dir: null
+  name: size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/message/req/ident.yml b/spec/rtems/message/req/ident.yml
new file mode 100644
index 0000000..1e623ab
--- /dev/null
+++ b/spec/rtems/message/req/ident.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/ident
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/ident:/name} directive shall identify an Classic API
+  message queue class object by its name as specified by ${../req/ident}.
+type: requirement
diff --git a/spec/rtems/message/val/ident.yml b/spec/rtems/message/val/ident.yml
new file mode 100644
index 0000000..2a1e9ff
--- /dev/null
+++ b/spec/rtems/message/val/ident.yml
@@ -0,0 +1,49 @@
+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:
+- role: validation
+  uid: ../req/ident
+test-actions:
+- action: |
+    ${../../req/ident:/test-run}(
+      id_local_object,
+      ClassicMessageIdentAction
+    );
+  checks: []
+  description: |
+    Run the generic object identification tests for Classic API message queue
+    class objects defined by ${../../req/ident}.
+  links: []
+test-brief: Test the ${../if/ident:/name} directive.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes: []
+test-local-includes:
+- tr-object-ident.h
+test-prologue: |
+  rtems_status_code sc;
+  rtems_id id_local_object;
+
+  sc = rtems_message_queue_create(
+    ClassicObjectIdentName,
+    1,
+    1,
+    RTEMS_DEFAULT_ATTRIBUTES,
+    &id_local_object
+  );
+  T_assert_rsc_success( sc );
+test-support: |
+  static rtems_status_code ClassicMessageIdentAction(
+    rtems_name name,
+    uint32_t   node,
+    rtems_id  *id
+  )
+  {
+    return rtems_message_queue_ident( name, node, id );
+  }
+test-target: testsuites/validation/tc-message-ident.c
+type: test-case
diff --git a/spec/if/rtems/modes/all-mode-masks.yml b/spec/rtems/mode/if/all-mode-masks.yml
similarity index 100%
rename from spec/if/rtems/modes/all-mode-masks.yml
rename to spec/rtems/mode/if/all-mode-masks.yml
diff --git a/spec/if/rtems/modes/asr-mask.yml b/spec/rtems/mode/if/asr-mask.yml
similarity index 100%
rename from spec/if/rtems/modes/asr-mask.yml
rename to spec/rtems/mode/if/asr-mask.yml
diff --git a/spec/if/rtems/modes/asr.yml b/spec/rtems/mode/if/asr.yml
similarity index 100%
rename from spec/if/rtems/modes/asr.yml
rename to spec/rtems/mode/if/asr.yml
diff --git a/spec/if/rtems/modes/current-mode.yml b/spec/rtems/mode/if/current-mode.yml
similarity index 100%
rename from spec/if/rtems/modes/current-mode.yml
rename to spec/rtems/mode/if/current-mode.yml
diff --git a/spec/if/rtems/modes/default.yml b/spec/rtems/mode/if/default.yml
similarity index 100%
rename from spec/if/rtems/modes/default.yml
rename to spec/rtems/mode/if/default.yml
diff --git a/spec/rtems/mode/if/group.yml b/spec/rtems/mode/if/group.yml
new file mode 100644
index 0000000..effb139
--- /dev/null
+++ b/spec/rtems/mode/if/group.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains the Classic API task modes.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicModes
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Task Modes
+text: |
+  The Classic API shall provide an interface to task modes.
+type: interface
diff --git a/spec/rtems/mode/if/header.yml b/spec/rtems/mode/if/header.yml
new file mode 100644
index 0000000..17d2964
--- /dev/null
+++ b/spec/rtems/mode/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the task modes of the Task Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/modes.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/mode/if/interrupt-level-body.yml b/spec/rtems/mode/if/interrupt-level-body.yml
new file mode 100644
index 0000000..16608cc
--- /dev/null
+++ b/spec/rtems/mode/if/interrupt-level-body.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns a mode with the desired interrupt level in the proper bit-field
+  location.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/uint32_t:/name} ${.:/params[0]/name}
+    return: ${mode:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_level_body
+notes: |
+  This function is used by bindings from languages other than C and C++.
+params:
+- description: is the desired interrupt level.
+  dir: null
+  name: level
+return:
+  return: |
+    A mode with the desired interrupt level in the proper bit-field location is
+    returned.
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/modes/interrupt-level.yml b/spec/rtems/mode/if/interrupt-level.yml
similarity index 100%
rename from spec/if/rtems/modes/interrupt-level.yml
rename to spec/rtems/mode/if/interrupt-level.yml
diff --git a/spec/rtems/mode/if/interrupt-mask-variable.yml b/spec/rtems/mode/if/interrupt-mask-variable.yml
new file mode 100644
index 0000000..6e185f6
--- /dev/null
+++ b/spec/rtems/mode/if/interrupt-mask-variable.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: const ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: '%'
+enabled-by: true
+interface-type: variable
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interrupt_mask
+notes: null
+type: interface
diff --git a/spec/rtems/mode/if/interrupt-mask.yml b/spec/rtems/mode/if/interrupt-mask.yml
new file mode 100644
index 0000000..8f343f1
--- /dev/null
+++ b/spec/rtems/mode/if/interrupt-mask.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This mode constant corresponds to the interrupt enable/disable bits.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/cpu/if/modes-interrupt-mask:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_INTERRUPT_MASK
+notes: null
+type: interface
diff --git a/spec/rtems/mode/if/mode.yml b/spec/rtems/mode/if/mode.yml
new file mode 100644
index 0000000..4ecfc56
--- /dev/null
+++ b/spec/rtems/mode/if/mode.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the control block used to manage each a mode set.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_mode
+notes: null
+type: interface
diff --git a/spec/if/rtems/modes/no-asr.yml b/spec/rtems/mode/if/no-asr.yml
similarity index 100%
rename from spec/if/rtems/modes/no-asr.yml
rename to spec/rtems/mode/if/no-asr.yml
diff --git a/spec/if/rtems/modes/no-preempt.yml b/spec/rtems/mode/if/no-preempt.yml
similarity index 100%
rename from spec/if/rtems/modes/no-preempt.yml
rename to spec/rtems/mode/if/no-preempt.yml
diff --git a/spec/if/rtems/modes/no-timeslice.yml b/spec/rtems/mode/if/no-timeslice.yml
similarity index 100%
rename from spec/if/rtems/modes/no-timeslice.yml
rename to spec/rtems/mode/if/no-timeslice.yml
diff --git a/spec/if/rtems/modes/preempt-mask.yml b/spec/rtems/mode/if/preempt-mask.yml
similarity index 100%
rename from spec/if/rtems/modes/preempt-mask.yml
rename to spec/rtems/mode/if/preempt-mask.yml
diff --git a/spec/if/rtems/modes/preempt.yml b/spec/rtems/mode/if/preempt.yml
similarity index 100%
rename from spec/if/rtems/modes/preempt.yml
rename to spec/rtems/mode/if/preempt.yml
diff --git a/spec/if/rtems/modes/timeslice-mask.yml b/spec/rtems/mode/if/timeslice-mask.yml
similarity index 100%
rename from spec/if/rtems/modes/timeslice-mask.yml
rename to spec/rtems/mode/if/timeslice-mask.yml
diff --git a/spec/if/rtems/modes/timeslice.yml b/spec/rtems/mode/if/timeslice.yml
similarity index 100%
rename from spec/if/rtems/modes/timeslice.yml
rename to spec/rtems/mode/if/timeslice.yml
diff --git a/spec/rtems/mode/req/bit-set.yml b/spec/rtems/mode/req/bit-set.yml
new file mode 100644
index 0000000..42c93a4
--- /dev/null
+++ b/spec/rtems/mode/req/bit-set.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  Each non-default task mode constant shall be a power of two representable as
+  an integer of type ${../if/mode:/name}.
+type: requirement
diff --git a/spec/rtems/mode/req/default.yml b/spec/rtems/mode/req/default.yml
new file mode 100644
index 0000000..8e1fbb4
--- /dev/null
+++ b/spec/rtems/mode/req/default.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  Each default task mode constant shall have a value of zero.
+type: requirement
diff --git a/spec/rtems/mode/req/masks-all.yml b/spec/rtems/mode/req/masks-all.yml
new file mode 100644
index 0000000..8adf26e
--- /dev/null
+++ b/spec/rtems/mode/req/masks-all.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/all-mode-masks
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The bitwise and of a task mode mask constant and
+  ${../if/all-mode-masks:/name} shall be equal to the task mode mask constant.
+type: requirement
diff --git a/spec/rtems/mode/req/masks-unique.yml b/spec/rtems/mode/req/masks-unique.yml
new file mode 100644
index 0000000..61f8bdb
--- /dev/null
+++ b/spec/rtems/mode/req/masks-unique.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The task mode mask constants and 0xff shall have unique values.
+type: requirement
diff --git a/spec/rtems/mode/req/masks.yml b/spec/rtems/mode/req/masks.yml
new file mode 100644
index 0000000..3c9d7da
--- /dev/null
+++ b/spec/rtems/mode/req/masks.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  Each task mode mask constant except ${../if/interrupt-mask} shall be a power
+  of two representable as an integer of type ${../if/mode:/name}.
+type: requirement
diff --git a/spec/rtems/mode/req/unique.yml b/spec/rtems/mode/req/unique.yml
new file mode 100644
index 0000000..d71177e
--- /dev/null
+++ b/spec/rtems/mode/req/unique.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The non-default task mode constants shall have unique values.
+type: requirement
diff --git a/spec/rtems/mode/val/modes.yml b/spec/rtems/mode/val/modes.yml
new file mode 100644
index 0000000..bcbb32a
--- /dev/null
+++ b/spec/rtems/mode/val/modes.yml
@@ -0,0 +1,242 @@
+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: []
+test-actions:
+- action: |
+    /* No action */
+  checks:
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_ASR ) );
+    description: |
+      Check that RTEMS_NO_ASR is a power of two representable as an integer of
+      type rtems_mode.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/no-asr
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_PREEMPT ) );
+    description: |
+      Check that RTEMS_NO_PREEMPT is a power of two representable as an integer
+      of type rtems_mode.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/no-preempt
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_TIMESLICE ) );
+    description: |
+      Check that RTEMS_TIMESLICE is a power of two representable as an integer
+      of type rtems_mode.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/timeslice
+  description: |
+    Validate the non-default task mode constants.
+  links: []
+- action: |
+    /* No action */
+  checks:
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_ASR, 0 );
+    description: |
+      Check that RTEMS_ASR is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/asr
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_DEFAULT_MODES, 0 );
+    description: |
+      Check that RTEMS_DEFAULT_MODES is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/default
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_NO_TIMESLICE, 0 );
+    description: |
+      Check that RTEMS_NO_TIMESLICE is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/no-timeslice
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_PREEMPT, 0 );
+    description: |
+      Check that RTEMS_PREEMPT is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/preempt
+  description: |
+    Validate the default task mode constants.
+  links: []
+- action: |
+    /* No action */
+  checks:
+  - check: |
+      T_step_eq_u32(
+        ${step},
+        RTEMS_ASR_MASK & RTEMS_ALL_MODE_MASKS,
+        RTEMS_ASR_MASK
+      );
+    description: |
+      Check that the bitwise and of RTEMS_ASR_MASK and RTEMS_ALL_MODE_MASKS is
+      equal to RTEMS_ASR_MASK.
+    links:
+    - role: validation
+      uid: ../req/masks-all
+    - role: validation
+      uid: ../if/asr-mask
+  - check: |
+      T_step_eq_u32(
+        ${step},
+        RTEMS_PREEMPT_MASK & RTEMS_ALL_MODE_MASKS,
+        RTEMS_PREEMPT_MASK
+      );
+    description: |
+      Check that the bitwise and of RTEMS_PREEMPT_MASK and RTEMS_ALL_MODE_MASKS
+      is equal to RTEMS_PREEMPT_MASK.
+    links:
+    - role: validation
+      uid: ../req/masks-all
+    - role: validation
+      uid: ../if/preempt-mask
+  - check: |
+      T_step_eq_u32(
+        ${step},
+        RTEMS_TIMESLICE_MASK & RTEMS_ALL_MODE_MASKS,
+        RTEMS_TIMESLICE_MASK
+      );
+    description: |
+      Check that the bitwise and of RTEMS_TIMESLICE_MASK and
+      RTEMS_ALL_MODE_MASKS is equal to RTEMS_TIMESLICE_MASK.
+    links:
+    - role: validation
+      uid: ../req/masks-all
+    - role: validation
+      uid: ../if/timeslice-mask
+  - check: |
+      T_step_eq_u32(
+        ${step},
+        RTEMS_INTERRUPT_MASK & RTEMS_ALL_MODE_MASKS,
+        RTEMS_INTERRUPT_MASK
+      );
+    description: |
+      Check that the bitwise and of RTEMS_INTERRUPT_MASK and
+      RTEMS_ALL_MODE_MASKS is equal to RTEMS_INTERRUPT_MASK.
+    links:
+    - role: validation
+      uid: ../req/masks-all
+    - role: validation
+      uid: ../if/interrupt-mask
+  description: |
+    Validate RTEMS_ALL_MODE_MASKS.
+  links: []
+- action: |
+    /* No action */
+  checks:
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_ASR_MASK ) );
+    description: |
+      Check that RTEMS_ASR_MASK is a power of two representable as an integer
+      of type rtems_mode.
+    links:
+    - role: validation
+      uid: ../req/masks
+    - role: validation
+      uid: ../if/asr-mask
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PREEMPT_MASK ) );
+    description: |
+      Check that RTEMS_PREEMPT_MASK is a power of two representable as an
+      integer of type rtems_mode.
+    links:
+    - role: validation
+      uid: ../req/masks
+    - role: validation
+      uid: ../if/preempt-mask
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_TIMESLICE_MASK ) );
+    description: |
+      Check that RTEMS_TIMESLICE_MASK is a power of two representable as an
+      integer of type rtems_mode.
+    links:
+    - role: validation
+      uid: ../req/masks
+    - role: validation
+      uid: ../if/timeslice-mask
+  description: |
+    Validate the task mode mask constants except RTEMS_INTERRUPT_MASK.
+  links: []
+- action: |
+    modes = 0;
+    modes |= 0xff;
+    modes |= RTEMS_ASR_MASK;
+    modes |= RTEMS_PREEMPT_MASK;
+    modes |= RTEMS_TIMESLICE_MASK;
+  checks:
+  - check: |
+      T_step_eq_int( ${step}, PopCount( modes ), 11 );
+    description: |
+      Check that the count of set bits in the calculated value is equal to the
+      count of task mode mask constants except RTEMS_INTERRUPT_MASK plus eight.
+      Since each task mode mask constants except RTEMS_INTERRUPT_MASK is a
+      power of two and the bitwise and of 0xff and RTEMS_INTERRUPT_MASK is
+      equal to RTEMS_INTERRUPT_MASK this proves that each constant and 0xff has
+      a unique value.
+    links:
+    - role: validation
+      uid: ../req/unique
+    - role: validation
+      uid: ../if/asr-mask
+    - role: validation
+      uid: ../if/preempt-mask
+    - role: validation
+      uid: ../if/timeslice-mask
+  description: |
+    Calculate the bitwise or of all task mode mask constants and 0xff.
+  links: []
+test-brief: |
+  Tests the task mode constants and function-like macros of the Classic API.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-prologue: |
+  rtems_mode modes;
+test-support: |
+  static bool IsPowerOfTwo( rtems_mode mode )
+  {
+    return mode != 0 && ( mode & ( mode - 1 ) ) == 0;
+  }
+
+  static int PopCount( rtems_mode modes )
+  {
+    int count;
+
+    count = 0;
+
+    while ( modes != 0 ) {
+      ++count;
+      modes &= modes - 1;
+    }
+
+    return count;
+  }
+test-target: testsuites/validation/tc-modes.c
+type: test-case
diff --git a/spec/if/rtems/mp/announce.yml b/spec/rtems/mp/if/announce.yml
similarity index 100%
rename from spec/if/rtems/mp/announce.yml
rename to spec/rtems/mp/if/announce.yml
diff --git a/spec/rtems/mp/if/group.yml b/spec/rtems/mp/if/group.yml
new file mode 100644
index 0000000..8cdd031
--- /dev/null
+++ b/spec/rtems/mp/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Multiprocessing Manager provides support for heterogeneous
+  multiprocessing systems based on message passing in a network of
+  multiprocessing nodes.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicMP
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Multiprocessing Manager
+text: |
+  The Classic API shall provide an interface to the Multiprocessing Manager.
+type: interface
diff --git a/spec/rtems/mp/if/header.yml b/spec/rtems/mp/if/header.yml
new file mode 100644
index 0000000..e519875
--- /dev/null
+++ b/spec/rtems/mp/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Multiprocessing Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/mp.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/object/if/api-class-information.yml b/spec/rtems/object/if/api-class-information.yml
new file mode 100644
index 0000000..06c7ac8
--- /dev/null
+++ b/spec/rtems/object/if/api-class-information.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+- default:
+    brief: |
+      This member is
+    definition: ${../../type/if/id:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: minimum_id
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${../../type/if/id:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: maximum_id
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: maximum
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/bool:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: auto_extend
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: unallocated
+  variants: []
+definition-kind: typedef-only
+description: null
+enabled-by: true
+interface-type: struct
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_api_class_information
+notes: null
+type: interface
diff --git a/spec/if/rtems/object/api-maximum-class.yml b/spec/rtems/object/if/api-maximum-class.yml
similarity index 100%
rename from spec/if/rtems/object/api-maximum-class.yml
rename to spec/rtems/object/if/api-maximum-class.yml
diff --git a/spec/if/rtems/object/api-minimum-class.yml b/spec/rtems/object/if/api-minimum-class.yml
similarity index 100%
rename from spec/if/rtems/object/api-minimum-class.yml
rename to spec/rtems/object/if/api-minimum-class.yml
diff --git a/spec/rtems/object/if/build-id.yml b/spec/rtems/object/if/build-id.yml
new file mode 100644
index 0000000..482bd8f
--- /dev/null
+++ b/spec/rtems/object/if/build-id.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/object/if/build-id:/name}( ${.:/params[0]/name}, ${.:/params[1]/name}, ${.:/params[2]/name}, ${.:/params[3]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_build_id
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _api
+- description: '%'
+  dir: null
+  name: _class
+- description: '%'
+  dir: null
+  name: _node
+- description: '%'
+  dir: null
+  name: _index
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/build-name.yml b/spec/rtems/object/if/build-name.yml
new file mode 100644
index 0000000..df16d81
--- /dev/null
+++ b/spec/rtems/object/if/build-name.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/object/if/build-name:/name}( ${.:/params[0]/name}, ${.:/params[1]/name}, ${.:/params[2]/name}, ${.:/params[3]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_build_name
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _C1
+- description: '%'
+  dir: null
+  name: _C2
+- description: '%'
+  dir: null
+  name: _C3
+- description: '%'
+  dir: null
+  name: _C4
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/object/get-api-class-name.yml b/spec/rtems/object/if/get-api-class-name.yml
similarity index 100%
rename from spec/if/rtems/object/get-api-class-name.yml
rename to spec/rtems/object/if/get-api-class-name.yml
diff --git a/spec/if/rtems/object/get-api-name.yml b/spec/rtems/object/if/get-api-name.yml
similarity index 100%
rename from spec/if/rtems/object/get-api-name.yml
rename to spec/rtems/object/if/get-api-name.yml
diff --git a/spec/rtems/object/if/get-class-information.yml b/spec/rtems/object/if/get-class-information.yml
new file mode 100644
index 0000000..688ee2f
--- /dev/null
+++ b/spec/rtems/object/if/get-class-information.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - int ${.:/params[0]/name}
+    - int ${.:/params[1]/name}
+    - ${api-class-information:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_get_class_information
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: the_api
+- description: '%'
+  dir: null
+  name: the_class
+- description: '%'
+  dir: null
+  name: info
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/get-classic-name.yml b/spec/rtems/object/if/get-classic-name.yml
new file mode 100644
index 0000000..140bc6d
--- /dev/null
+++ b/spec/rtems/object/if/get-classic-name.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/name:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_get_classic_name
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: name
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/get-local-node.yml b/spec/rtems/object/if/get-local-node.yml
new file mode 100644
index 0000000..2f89408
--- /dev/null
+++ b/spec/rtems/object/if/get-local-node.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: |
+      return ${/score/object/if/local-node:/name};
+    params: []
+    return: ${/c/if/uint16_t:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_get_local_node
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/get-name.yml b/spec/rtems/object/if/get-name.yml
new file mode 100644
index 0000000..cd4a4fc
--- /dev/null
+++ b/spec/rtems/object/if/get-name.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    - char *${.:/params[2]/name}
+    return: char *
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_get_name
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: length
+- description: '%'
+  dir: null
+  name: name
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/group.yml b/spec/rtems/object/if/group.yml
new file mode 100644
index 0000000..ab5aee4
--- /dev/null
+++ b/spec/rtems/object/if/group.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  RTEMS provides a collection of services to assist in the management and usage
+  of the objects created and utilized via other managers.  These services
+  assist in the manipulation of RTEMS objects independent of the API used to
+  create them.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicObject
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Object Services
+text: |
+  The Classic API shall provide an interface to the Object Services.
+type: interface
diff --git a/spec/rtems/object/if/header.yml b/spec/rtems/object/if/header.yml
new file mode 100644
index 0000000..317bf7f
--- /dev/null
+++ b/spec/rtems/object/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Object Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/object.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/rtems/object/id-api-maximum-class.yml b/spec/rtems/object/if/id-api-maximum-class.yml
similarity index 100%
rename from spec/if/rtems/object/id-api-maximum-class.yml
rename to spec/rtems/object/if/id-api-maximum-class.yml
diff --git a/spec/rtems/object/if/id-api-maximum.yml b/spec/rtems/object/if/id-api-maximum.yml
new file mode 100644
index 0000000..ab889a5
--- /dev/null
+++ b/spec/rtems/object/if/id-api-maximum.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/apis-last:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_id_api_maximum
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/id-api-minimum.yml b/spec/rtems/object/if/id-api-minimum.yml
new file mode 100644
index 0000000..cbe6a0b
--- /dev/null
+++ b/spec/rtems/object/if/id-api-minimum.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/internal-api:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_id_api_minimum
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/id-final-index.yml b/spec/rtems/object/if/id-final-index.yml
new file mode 100644
index 0000000..ba575fc
--- /dev/null
+++ b/spec/rtems/object/if/id-final-index.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/id-final-index:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_OBJECT_ID_FINAL_INDEX
+notes: null
+type: interface
diff --git a/spec/rtems/object/if/id-final.yml b/spec/rtems/object/if/id-final.yml
new file mode 100644
index 0000000..5a2b820
--- /dev/null
+++ b/spec/rtems/object/if/id-final.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/id-final:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_OBJECT_ID_FINAL
+notes: null
+type: interface
diff --git a/spec/rtems/object/if/id-get-api.yml b/spec/rtems/object/if/id-get-api.yml
new file mode 100644
index 0000000..b45a51a
--- /dev/null
+++ b/spec/rtems/object/if/id-get-api.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/get-api:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_id_get_api
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/id-get-class.yml b/spec/rtems/object/if/id-get-class.yml
new file mode 100644
index 0000000..d828ae4
--- /dev/null
+++ b/spec/rtems/object/if/id-get-class.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/get-class:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_id_get_class
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/id-get-index.yml b/spec/rtems/object/if/id-get-index.yml
new file mode 100644
index 0000000..41e13c7
--- /dev/null
+++ b/spec/rtems/object/if/id-get-index.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/get-index:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_id_get_index
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/id-get-node.yml b/spec/rtems/object/if/id-get-node.yml
new file mode 100644
index 0000000..3b090b0
--- /dev/null
+++ b/spec/rtems/object/if/id-get-node.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/get-node:/name}( ${.:/params[0]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_id_get_node
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/id-initial-index.yml b/spec/rtems/object/if/id-initial-index.yml
new file mode 100644
index 0000000..d28cb50
--- /dev/null
+++ b/spec/rtems/object/if/id-initial-index.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/id-initial-index:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_OBJECT_ID_INITIAL_INDEX
+notes: null
+type: interface
diff --git a/spec/rtems/object/if/id-initial.yml b/spec/rtems/object/if/id-initial.yml
new file mode 100644
index 0000000..25a640f
--- /dev/null
+++ b/spec/rtems/object/if/id-initial.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${/score/object/if/id-initial:/name}( ${.:/params[0]/name}, ${.:/params[1]/name}, ${.:/params[2]/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_OBJECT_ID_INITIAL
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: _api
+- description: '%'
+  dir: null
+  name: _class
+- description: '%'
+  dir: null
+  name: _node
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/search-all-nodes.yml b/spec/rtems/object/if/search-all-nodes.yml
new file mode 100644
index 0000000..5c880da
--- /dev/null
+++ b/spec/rtems/object/if/search-all-nodes.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/search-all-nodes:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_SEARCH_ALL_NODES
+notes: null
+type: interface
diff --git a/spec/rtems/object/if/search-local-node.yml b/spec/rtems/object/if/search-local-node.yml
new file mode 100644
index 0000000..66d1096
--- /dev/null
+++ b/spec/rtems/object/if/search-local-node.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/search-local-nodes:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_SEARCH_LOCAL_NODE
+notes: null
+type: interface
diff --git a/spec/rtems/object/if/search-other-nodes.yml b/spec/rtems/object/if/search-other-nodes.yml
new file mode 100644
index 0000000..f64a725
--- /dev/null
+++ b/spec/rtems/object/if/search-other-nodes.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/search-other-nodes:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_SEARCH_OTHER_NODES
+notes: null
+type: interface
diff --git a/spec/rtems/object/if/set-name.yml b/spec/rtems/object/if/set-name.yml
new file mode 100644
index 0000000..bfc874f
--- /dev/null
+++ b/spec/rtems/object/if/set-name.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - const char *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_object_set_name
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: name
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/who-am-i.yml b/spec/rtems/object/if/who-am-i.yml
new file mode 100644
index 0000000..4646762
--- /dev/null
+++ b/spec/rtems/object/if/who-am-i.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/who-am-i:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_WHO_AM_I
+notes: null
+type: interface
diff --git a/spec/if/rtems/options/default.yml b/spec/rtems/option/if/default.yml
similarity index 100%
rename from spec/if/rtems/options/default.yml
rename to spec/rtems/option/if/default.yml
diff --git a/spec/if/rtems/options/event-all.yml b/spec/rtems/option/if/event-all.yml
similarity index 100%
rename from spec/if/rtems/options/event-all.yml
rename to spec/rtems/option/if/event-all.yml
diff --git a/spec/if/rtems/options/event-any.yml b/spec/rtems/option/if/event-any.yml
similarity index 100%
rename from spec/if/rtems/options/event-any.yml
rename to spec/rtems/option/if/event-any.yml
diff --git a/spec/rtems/option/if/group.yml b/spec/rtems/option/if/group.yml
new file mode 100644
index 0000000..be8a7c4
--- /dev/null
+++ b/spec/rtems/option/if/group.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains the Classic API directive options.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicOptions
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Directive Options
+text: |
+  The Classic API shall provide an interface to directive options.
+type: interface
diff --git a/spec/rtems/option/if/header.yml b/spec/rtems/option/if/header.yml
new file mode 100644
index 0000000..ee4d234
--- /dev/null
+++ b/spec/rtems/option/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines options provided by the API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/options.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/rtems/options/no-wait.yml b/spec/rtems/option/if/no-wait.yml
similarity index 100%
rename from spec/if/rtems/options/no-wait.yml
rename to spec/rtems/option/if/no-wait.yml
diff --git a/spec/rtems/option/if/option.yml b/spec/rtems/option/if/option.yml
new file mode 100644
index 0000000..a15781e
--- /dev/null
+++ b/spec/rtems/option/if/option.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the control block used to manage option sets.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_option
+notes: null
+type: interface
diff --git a/spec/if/rtems/options/wait.yml b/spec/rtems/option/if/wait.yml
similarity index 100%
rename from spec/if/rtems/options/wait.yml
rename to spec/rtems/option/if/wait.yml
diff --git a/spec/rtems/option/req/bit-set.yml b/spec/rtems/option/req/bit-set.yml
new file mode 100644
index 0000000..2b7b873
--- /dev/null
+++ b/spec/rtems/option/req/bit-set.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  Each non-default directive option constant shall be a power of two
+  representable as an integer of type ${../if/option}.
+type: requirement
diff --git a/spec/rtems/option/req/default.yml b/spec/rtems/option/req/default.yml
new file mode 100644
index 0000000..019b775
--- /dev/null
+++ b/spec/rtems/option/req/default.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  Each default directive option constant shall have a value of zero.
+type: requirement
diff --git a/spec/rtems/option/req/unique.yml b/spec/rtems/option/req/unique.yml
new file mode 100644
index 0000000..ffaafc1
--- /dev/null
+++ b/spec/rtems/option/req/unique.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: ../if/group
+non-functional-type: interface
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The non-default directive option constants shall have unique values.
+type: requirement
diff --git a/spec/rtems/option/val/options.yml b/spec/rtems/option/val/options.yml
new file mode 100644
index 0000000..7efa788
--- /dev/null
+++ b/spec/rtems/option/val/options.yml
@@ -0,0 +1,117 @@
+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: []
+test-actions:
+- action: |
+    /* No action */
+  checks:
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_EVENT_ANY ) );
+    description: |
+      Check that RTEMS_EVENT_ANY is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/event-any
+  - check: |
+      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_WAIT ) );
+    description: |
+      Check that RTEMS_NO_WAIT is a power of two.
+    links:
+    - role: validation
+      uid: ../req/bit-set
+    - role: validation
+      uid: ../if/no-wait
+  description: |
+    Validate the non-default option constants.
+  links: []
+- action: |
+    /* No action */
+  checks:
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_DEFAULT_OPTIONS, 0 );
+    description: |
+      Check that RTEMS_DEFAULT_OPTIONS is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/default
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_EVENT_ALL, 0 );
+    description: |
+      Check that RTEMS_EVENT_ALL is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/event-all
+  - check: |
+      T_step_eq_u32( ${step}, RTEMS_WAIT, 0 );
+    description: |
+      Check that RTEMS_WAIT is equal to zero.
+    links:
+    - role: validation
+      uid: ../req/default
+    - role: validation
+      uid: ../if/wait
+  description: |
+    Validate the default option constants.
+  links: []
+- action: |
+    options = 0;
+    options |= RTEMS_EVENT_ANY;
+    options |= RTEMS_NO_WAIT;
+  checks:
+  - check: |
+      T_step_eq_int( ${step}, PopCount( options ), 2 );
+    description: |
+      Check that the count of set bits in the calculated value is equal to the
+      count of non-default option constants.  Since each non-default option
+      constant is a power of two, this proves that each constant has a unique
+      value.
+    links:
+    - role: validation
+      uid: ../req/unique
+    - role: validation
+      uid: ../if/event-any
+    - role: validation
+      uid: ../if/no-wait
+  description: |
+    Calculate the bitwise or of all non-default option constants.
+  links: []
+test-brief: |
+  Tests the option constants of the Classic API.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-prologue: |
+  rtems_option options;
+test-support: |
+  static bool IsPowerOfTwo( rtems_option option )
+  {
+    return option != 0 && ( option & ( option - 1 ) ) == 0;
+  }
+
+  static int PopCount( rtems_option options )
+  {
+    int count;
+
+    count = 0;
+
+    while ( options != 0 ) {
+      ++count;
+      options &= options - 1;
+    }
+
+    return count;
+  }
+test-target: testsuites/validation/tc-options.c
+type: test-case
diff --git a/spec/rtems/part/if/create.yml b/spec/rtems/part/if/create.yml
new file mode 100644
index 0000000..7a9a717
--- /dev/null
+++ b/spec/rtems/part/if/create.yml
@@ -0,0 +1,50 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[2]/name}
+    - ${/c/if/size_t:/name} ${.:/params[3]/name}
+    - ${../../attr/if/attribute:/name} ${.:/params[4]/name}
+    - ${../../type/if/id:/name} *${.:/params[5]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_partition_create
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: name
+- description: '%'
+  dir: null
+  name: starting_address
+- description: '%'
+  dir: null
+  name: length
+- description: '%'
+  dir: null
+  name: buffer_size
+- description: '%'
+  dir: null
+  name: attribute_set
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/part/if/delete.yml b/spec/rtems/part/if/delete.yml
new file mode 100644
index 0000000..db63ceb
--- /dev/null
+++ b/spec/rtems/part/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_partition_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/part/if/get-buffer.yml b/spec/rtems/part/if/get-buffer.yml
new file mode 100644
index 0000000..691345e
--- /dev/null
+++ b/spec/rtems/part/if/get-buffer.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void **${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_partition_get_buffer
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: buffer
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/part/if/group.yml b/spec/rtems/part/if/group.yml
new file mode 100644
index 0000000..ae0d036
--- /dev/null
+++ b/spec/rtems/part/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Partition Manager provides facilities to dynamically allocate memory in
+  fixed-size units.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicPart
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Partition Manager
+text: |
+  The Classic API shall provide an interface to the Partition Manager.
+type: interface
diff --git a/spec/rtems/part/if/header.yml b/spec/rtems/part/if/header.yml
new file mode 100644
index 0000000..040ebb1
--- /dev/null
+++ b/spec/rtems/part/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Partition Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/part.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/part/if/ident.yml b/spec/rtems/part/if/ident.yml
new file mode 100644
index 0000000..d4e0bb1
--- /dev/null
+++ b/spec/rtems/part/if/ident.yml
@@ -0,0 +1,86 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a partition object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    - ${../../type/if/id:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the partition identifier associated with the partition
+  name specified in ``${.:/params[0]/name}``.
+
+  The node to search is specified in ``${.:/params[1]/name}``.  It shall be
+
+  * a valid node number,
+
+  * the constant ${../../object/if/search-all-nodes:/name} to search in all nodes,
+
+  * the constant ${../../object/if/search-local-node:/name} to search in the local
+    node only, or
+
+  * the constant ${../../object/if/search-other-nodes:/name} to search in all nodes
+    except the local node.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_partition_ident
+notes: |
+  If the partition name is not unique, then the partition identifier will match
+  the first partition with that name in the search order.  However, this
+  partition identifier is not guaranteed to correspond to the desired
+  partition.  The partition identifier is used with other partition related
+  directives to access the partition.
+
+  If node is ${../../object/if/search-all-nodes:/name}, all nodes are searched with
+  the local node being searched first.  All other nodes are searched with the
+  lowest numbered node searched first.
+
+  If node is a valid node number which does not represent the local node, then
+  only the partitions exported by the designated node are searched.
+
+  This directive does not generate activity on remote nodes.  It accesses only
+  the local copy of the global object table.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: is the node or node set to search for a matching object.
+  dir: null
+  name: node
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the specified nodes.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      In multiprocessing configurations, the specified node was invalid.
+    value: ${../../status/if/invalid-node:/name}
+type: interface
diff --git a/spec/rtems/part/if/return-buffer.yml b/spec/rtems/part/if/return-buffer.yml
new file mode 100644
index 0000000..8bc791e
--- /dev/null
+++ b/spec/rtems/part/if/return-buffer.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_partition_return_buffer
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: buffer
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/part/req/ident.yml b/spec/rtems/part/req/ident.yml
new file mode 100644
index 0000000..b6a63f0
--- /dev/null
+++ b/spec/rtems/part/req/ident.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/ident
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/ident:/name} directive shall identify an Classic API
+  partition class object by its name as specified by ${../req/ident}.
+type: requirement
diff --git a/spec/rtems/part/val/ident.yml b/spec/rtems/part/val/ident.yml
new file mode 100644
index 0000000..4af46be
--- /dev/null
+++ b/spec/rtems/part/val/ident.yml
@@ -0,0 +1,51 @@
+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:
+- role: validation
+  uid: ../req/ident
+test-actions:
+- action: |
+    ${../../req/ident:/test-run}(
+      id_local_object,
+      ClassicPartIdentAction
+    );
+  checks: []
+  description: |
+    Run the generic object identification tests for Classic API partition class
+    objects defined by ${../../req/ident}.
+  links: []
+test-brief: Test the ${../if/ident:/name} directive.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes: []
+test-local-includes:
+- tr-object-ident.h
+test-prologue: |
+  static long area[32];
+  rtems_status_code sc;
+  rtems_id id_local_object;
+
+  sc = rtems_partition_create(
+    ClassicObjectIdentName,
+    area,
+    sizeof( area ),
+    sizeof( area ),
+    RTEMS_DEFAULT_ATTRIBUTES,
+    &id_local_object
+  );
+  T_assert_rsc_success( sc );
+test-support: |
+  static rtems_status_code ClassicPartIdentAction(
+    rtems_name name,
+    uint32_t   node,
+    rtems_id  *id
+  )
+  {
+    return rtems_partition_ident( name, node, id );
+  }
+test-target: testsuites/validation/tc-part-ident.c
+type: test-case
diff --git a/spec/if/rtems/ratemon/active.yml b/spec/rtems/ratemon/if/active.yml
similarity index 100%
rename from spec/if/rtems/ratemon/active.yml
rename to spec/rtems/ratemon/if/active.yml
diff --git a/spec/rtems/ratemon/if/cancel.yml b/spec/rtems/ratemon/if/cancel.yml
new file mode 100644
index 0000000..10dd35f
--- /dev/null
+++ b/spec/rtems/ratemon/if/cancel.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_cancel
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/ratemon/if/create.yml b/spec/rtems/ratemon/if/create.yml
new file mode 100644
index 0000000..b883e19
--- /dev/null
+++ b/spec/rtems/ratemon/if/create.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_create
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: name
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/ratemon/if/delete.yml b/spec/rtems/ratemon/if/delete.yml
new file mode 100644
index 0000000..4b648e1
--- /dev/null
+++ b/spec/rtems/ratemon/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/ratemon/expired.yml b/spec/rtems/ratemon/if/expired.yml
similarity index 100%
rename from spec/if/rtems/ratemon/expired.yml
rename to spec/rtems/ratemon/if/expired.yml
diff --git a/spec/rtems/ratemon/if/get-statistics.yml b/spec/rtems/ratemon/if/get-statistics.yml
new file mode 100644
index 0000000..95f7039
--- /dev/null
+++ b/spec/rtems/ratemon/if/get-statistics.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${period-statistics:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_get_statistics
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: statistics
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/ratemon/if/get-status.yml b/spec/rtems/ratemon/if/get-status.yml
new file mode 100644
index 0000000..2f2ddb3
--- /dev/null
+++ b/spec/rtems/ratemon/if/get-status.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${period-status:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_get_status
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: status
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/ratemon/if/group.yml b/spec/rtems/ratemon/if/group.yml
new file mode 100644
index 0000000..640247a
--- /dev/null
+++ b/spec/rtems/ratemon/if/group.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Rate-Monotonic Manager provides facilities to implement tasks which
+  execute in a periodic fashion.  Critically, it also gathers information about
+  the execution of those periods and can provide important statistics to the
+  user which can be used to analyze and tune the application.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicRatemon
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Rate-Monotonic Manager
+text: |
+  The Classic API shall provide an interface to the Rate-Monotonic Manager.
+type: interface
diff --git a/spec/rtems/ratemon/if/header.yml b/spec/rtems/ratemon/if/header.yml
new file mode 100644
index 0000000..a9e6f95
--- /dev/null
+++ b/spec/rtems/ratemon/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Rate-Monotonic Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/ratemon.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/ratemon/if/ident.yml b/spec/rtems/ratemon/if/ident.yml
new file mode 100644
index 0000000..43d10a9
--- /dev/null
+++ b/spec/rtems/ratemon/if/ident.yml
@@ -0,0 +1,60 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a period object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the period identifier associated with the period name
+  specified in ``${.:/params[0]/name}``.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_ident
+notes: |
+  If the period name is not unique, then the period identifier will match the
+  first period with that name in the search order.  However, this period
+  identifier is not guaranteed to correspond to the desired period.  The period
+  identifier is used with other rate monotonic related directives to access the
+  period.
+
+  The objects are searched from lowest to the highest index.  Only the local
+  node is searched.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the local node.
+    value: ${../../status/if/invalid-name:/name}
+type: interface
diff --git a/spec/if/rtems/ratemon/inactive.yml b/spec/rtems/ratemon/if/inactive.yml
similarity index 100%
rename from spec/if/rtems/ratemon/inactive.yml
rename to spec/rtems/ratemon/if/inactive.yml
diff --git a/spec/if/rtems/ratemon/period-states.yml b/spec/rtems/ratemon/if/period-states.yml
similarity index 100%
rename from spec/if/rtems/ratemon/period-states.yml
rename to spec/rtems/ratemon/if/period-states.yml
diff --git a/spec/rtems/ratemon/if/period-statistics.yml b/spec/rtems/ratemon/if/period-statistics.yml
new file mode 100644
index 0000000..86343bb
--- /dev/null
+++ b/spec/rtems/ratemon/if/period-statistics.yml
@@ -0,0 +1,82 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: count
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: missed_count
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/timespec:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: min_cpu_time
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/timespec:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: max_cpu_time
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/timespec:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: total_cpu_time
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/timespec:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: min_wall_time
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/timespec:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: max_wall_time
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/timespec:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: total_wall_time
+  variants: []
+definition-kind: typedef-only
+description: null
+enabled-by: true
+interface-type: struct
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_period_statistics
+notes: null
+type: interface
diff --git a/spec/rtems/ratemon/if/period-status-define.yml b/spec/rtems/ratemon/if/period-status-define.yml
new file mode 100644
index 0000000..77a0850
--- /dev/null
+++ b/spec/rtems/ratemon/if/period-status-define.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This constant is the interval passed to the ${period:/name} directive to
+  obtain status information.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/watchdog/if/no-timeout:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_PERIOD_STATUS
+notes: null
+type: interface
diff --git a/spec/rtems/ratemon/if/period-status.yml b/spec/rtems/ratemon/if/period-status.yml
new file mode 100644
index 0000000..59b1bc0
--- /dev/null
+++ b/spec/rtems/ratemon/if/period-status.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+- default:
+    brief: |
+      This member is
+    definition: ${../../type/if/id:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: owner
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${period-states:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: state
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/timespec:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: since_last_period
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/timespec:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: executed_since_last_period
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: postponed_jobs_count
+  variants: []
+definition-kind: typedef-only
+description: null
+enabled-by: true
+interface-type: struct
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_period_status
+notes: null
+type: interface
diff --git a/spec/rtems/ratemon/if/period.yml b/spec/rtems/ratemon/if/period.yml
new file mode 100644
index 0000000..64112ba
--- /dev/null
+++ b/spec/rtems/ratemon/if/period.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/interval:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_period
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: length
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/ratemon/if/printer.yml b/spec/rtems/ratemon/if/printer.yml
new file mode 100644
index 0000000..509117e
--- /dev/null
+++ b/spec/rtems/ratemon/if/printer.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
+interface-type: forward-declaration
+links:
+- role: interface-placement
+  uid: header
+- role: interface-target
+  uid: ../../io/if/printer
+type: interface
diff --git a/spec/if/rtems/ratemon/report-statistics-with-plugin.yml b/spec/rtems/ratemon/if/report-statistics-with-plugin.yml
similarity index 100%
rename from spec/if/rtems/ratemon/report-statistics-with-plugin.yml
rename to spec/rtems/ratemon/if/report-statistics-with-plugin.yml
diff --git a/spec/if/rtems/ratemon/report-statistics.yml b/spec/rtems/ratemon/if/report-statistics.yml
similarity index 100%
rename from spec/if/rtems/ratemon/report-statistics.yml
rename to spec/rtems/ratemon/if/report-statistics.yml
diff --git a/spec/if/rtems/ratemon/reset-all-statistics.yml b/spec/rtems/ratemon/if/reset-all-statistics.yml
similarity index 100%
rename from spec/if/rtems/ratemon/reset-all-statistics.yml
rename to spec/rtems/ratemon/if/reset-all-statistics.yml
diff --git a/spec/rtems/ratemon/if/reset-statistics.yml b/spec/rtems/ratemon/if/reset-statistics.yml
new file mode 100644
index 0000000..06efe48
--- /dev/null
+++ b/spec/rtems/ratemon/if/reset-statistics.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_rate_monotonic_reset_statistics
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/ratemon/req/ident.yml b/spec/rtems/ratemon/req/ident.yml
new file mode 100644
index 0000000..3db3c6a
--- /dev/null
+++ b/spec/rtems/ratemon/req/ident.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/ident
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/ident:/name} directive shall identify an Classic API
+  rate monotonic class object by its name as specified by ${../req/ident-local}.
+type: requirement
diff --git a/spec/rtems/ratemon/val/ident.yml b/spec/rtems/ratemon/val/ident.yml
new file mode 100644
index 0000000..37fc0df
--- /dev/null
+++ b/spec/rtems/ratemon/val/ident.yml
@@ -0,0 +1,45 @@
+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:
+- role: validation
+  uid: ../req/ident
+test-actions:
+- action: |
+    ${../../req/ident-local:/test-run}(
+      id_local_object,
+      ClassicRatemonIdentAction
+    );
+  checks: []
+  description: |
+    Run the generic object identification tests for Classic API rate monotonic
+    class objects defined by ${../../req/ident-local}.
+  links: []
+test-brief: Test the ${../if/ident:/name} directive.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes: []
+test-local-includes:
+- tr-object-ident-local.h
+test-prologue: |
+  rtems_status_code sc;
+  rtems_id id_local_object;
+
+  sc = rtems_rate_monotonic_create(
+    ClassicObjectLocalIdentName,
+    &id_local_object
+  );
+  T_assert_rsc_success( sc );
+test-support: |
+  static rtems_status_code ClassicRatemonIdentAction(
+    rtems_name name,
+    rtems_id  *id
+  )
+  {
+    return rtems_rate_monotonic_ident( name, id );
+  }
+test-target: testsuites/validation/tc-ratemon-ident.c
+type: test-case
diff --git a/spec/rtems/region/if/create.yml b/spec/rtems/region/if/create.yml
new file mode 100644
index 0000000..eca13c2
--- /dev/null
+++ b/spec/rtems/region/if/create.yml
@@ -0,0 +1,50 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[2]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[3]/name}
+    - ${../../attr/if/attribute:/name} ${.:/params[4]/name}
+    - ${../../type/if/id:/name} *${.:/params[5]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_create
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: name
+- description: '%'
+  dir: null
+  name: starting_address
+- description: '%'
+  dir: null
+  name: length
+- description: '%'
+  dir: null
+  name: page_size
+- description: '%'
+  dir: null
+  name: attribute_set
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/region/if/delete.yml b/spec/rtems/region/if/delete.yml
new file mode 100644
index 0000000..4565f3b
--- /dev/null
+++ b/spec/rtems/region/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/region/if/extend.yml b/spec/rtems/region/if/extend.yml
new file mode 100644
index 0000000..e863d80
--- /dev/null
+++ b/spec/rtems/region/if/extend.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_extend
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: starting_address
+- description: '%'
+  dir: null
+  name: length
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/region/if/get-free-information.yml b/spec/rtems/region/if/get-free-information.yml
new file mode 100644
index 0000000..9a8b85b
--- /dev/null
+++ b/spec/rtems/region/if/get-free-information.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/score/heap/if/information-block:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_get_free_information
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: the_info
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/region/if/get-information.yml b/spec/rtems/region/if/get-information.yml
new file mode 100644
index 0000000..bee6a1c
--- /dev/null
+++ b/spec/rtems/region/if/get-information.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/score/heap/if/information-block:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_get_information
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: the_info
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/region/if/get-segment-size.yml b/spec/rtems/region/if/get-segment-size.yml
new file mode 100644
index 0000000..4b3e1d6
--- /dev/null
+++ b/spec/rtems/region/if/get-segment-size.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - ${/c/if/uintptr_t:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_get_segment_size
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: segment
+- description: '%'
+  dir: null
+  name: size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/region/if/get-segment.yml b/spec/rtems/region/if/get-segment.yml
new file mode 100644
index 0000000..e050fcd
--- /dev/null
+++ b/spec/rtems/region/if/get-segment.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[1]/name}
+    - ${../../option/if/option:/name} ${.:/params[2]/name}
+    - ${../../type/if/interval:/name} ${.:/params[3]/name}
+    - void **${.:/params[4]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_get_segment
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: size
+- description: '%'
+  dir: null
+  name: option_set
+- description: '%'
+  dir: null
+  name: timeout
+- description: '%'
+  dir: null
+  name: segment
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/region/if/group.yml b/spec/rtems/region/if/group.yml
new file mode 100644
index 0000000..ca01b32
--- /dev/null
+++ b/spec/rtems/region/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Region Manager provides facilities to dynamically allocate memory in
+  variable sized units.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicRegion
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Region Manager
+text: |
+  The Classic API shall provide an interface to the Region Manager.
+type: interface
diff --git a/spec/rtems/region/if/header.yml b/spec/rtems/region/if/header.yml
new file mode 100644
index 0000000..9f456de
--- /dev/null
+++ b/spec/rtems/region/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Region Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/region.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/region/if/ident.yml b/spec/rtems/region/if/ident.yml
new file mode 100644
index 0000000..cfce144
--- /dev/null
+++ b/spec/rtems/region/if/ident.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a region object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the region identifier associated with the region name
+  specified in ``${.:/params[0]/name}``.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_ident
+notes: |
+  If the region name is not unique, then the region identifier will match the
+  first region with that name in the search order.  However, this region
+  identifier is not guaranteed to correspond to the desired region.  The region
+  identifier is used with other region related directives to access the region.
+
+  The objects are searched from lowest to the highest index.  Only the local
+  node is searched.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the local node.
+    value: ${../../status/if/invalid-name:/name}
+type: interface
diff --git a/spec/rtems/region/if/resize-segment.yml b/spec/rtems/region/if/resize-segment.yml
new file mode 100644
index 0000000..1da5c34
--- /dev/null
+++ b/spec/rtems/region/if/resize-segment.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    - ${/c/if/uintptr_t:/name} ${.:/params[2]/name}
+    - ${/c/if/uintptr_t:/name} *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_resize_segment
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: segment
+- description: '%'
+  dir: null
+  name: size
+- description: '%'
+  dir: null
+  name: old_size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/region/if/return-segment.yml b/spec/rtems/region/if/return-segment.yml
new file mode 100644
index 0000000..3767cc5
--- /dev/null
+++ b/spec/rtems/region/if/return-segment.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - void *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_region_return_segment
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: segment
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/req/rtems/ident-local.yml b/spec/rtems/req/ident-local.yml
similarity index 100%
rename from spec/req/rtems/ident-local.yml
rename to spec/rtems/req/ident-local.yml
diff --git a/spec/req/rtems/ident.yml b/spec/rtems/req/ident.yml
similarity index 100%
rename from spec/req/rtems/ident.yml
rename to spec/rtems/req/ident.yml
diff --git a/spec/rtems/scheduler/if/add-processor.yml b/spec/rtems/scheduler/if/add-processor.yml
new file mode 100644
index 0000000..dab967c
--- /dev/null
+++ b/spec/rtems/scheduler/if/add-processor.yml
@@ -0,0 +1,52 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Adds the processor to the set of processors owned by the scheduler instance.
+copyrights:
+- Copyright (C) 2016, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_add_processor
+notes: |
+  This directive shall be called from task context.  It obtains and releases
+  the objects allocator lock.
+params:
+- description: is the scheduler instance identifier.
+  dir: null
+  name: scheduler_id
+- description: is the index of the processor to add.
+  dir: null
+  name: cpu_index
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The processor was configured to be used by the application, however, it
+      was not online.
+    value: ${../../status/if/incorrect-state:/name}
+  - description: |
+      The scheduler instance identifier was invalid.
+    value: ${../../status/if/invalid-id:/name}
+  - description: |
+      The processor was not configured to be used by the application.
+    value: ${../../status/if/not-configured:/name}
+  - description: |
+      The processor was already assigned to a scheduler instance.
+    value: ${../../status/if/resource-in-use:/name}
+type: interface
diff --git a/spec/rtems/scheduler/if/get-maximum-priority.yml b/spec/rtems/scheduler/if/get-maximum-priority.yml
new file mode 100644
index 0000000..e8c26a6
--- /dev/null
+++ b/spec/rtems/scheduler/if/get-maximum-priority.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Gets the maximum task priority of the scheduler instance.
+copyrights:
+- Copyright (C) 2018, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../task/if/priority:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_get_maximum_priority
+notes: null
+params:
+- description: is the scheduler instance identifier.
+  dir: null
+  name: scheduler_id
+- description: |
+    is the pointer to a task priority variable.  The maximum priority of the
+    scheduler instance will be stored in this variable, if the operation is
+    successful.
+  dir: out
+  name: priority
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The scheduler instance identifier was invalid.
+    value: ${../../status/if/invalid-id:/name}
+type: interface
diff --git a/spec/rtems/scheduler/if/get-processor-maximum.yml b/spec/rtems/scheduler/if/get-processor-maximum.yml
new file mode 100644
index 0000000..9c5c4f9
--- /dev/null
+++ b/spec/rtems/scheduler/if/get-processor-maximum.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the processor maximum supported by the system.
+copyrights:
+- Copyright (C) 2013, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/smp/if/get-processor-maximum:/name}()
+  variants: []
+description: |
+  In uniprocessor configurations, this macro evaluates to a compile time
+  constant of one.
+
+  In SMP configurations, this macro returns the minimum of the processors
+  (physically or virtually) available by the platform and the configured
+  processor maximum.  Not all processors in the range from processor index zero
+  to the last processor index (which is the processor maximum minus one) may be
+  configured to be used by a scheduler or may be online (online processors have
+  a scheduler assigned).
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_get_processor_maximum
+notes: null
+params: []
+return:
+  return: |
+    The processor maximum supported by the system is returned.
+  return-values: []
+type: interface
diff --git a/spec/rtems/scheduler/if/get-processor-set.yml b/spec/rtems/scheduler/if/get-processor-set.yml
new file mode 100644
index 0000000..62dbb70
--- /dev/null
+++ b/spec/rtems/scheduler/if/get-processor-set.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Gets the set of processors owned by the scheduler instance.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    - ${/c/if/cpu_set_t:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_get_processor_set
+notes: null
+params:
+- description: is the scheduler instance identifier.
+  dir: null
+  name: scheduler_id
+- description: |
+    is the size of the referenced processor set variable in bytes.  This value
+    shall be positive.
+  dir: null
+  name: cpusetsize
+- description: |
+    is the pointer to a processor set variable.  The processor set of the
+    scheduler instance will be stored in this variable, in case of a successful
+    operation.  A set bit in the processor set means that the corresponding
+    processor is owned by the scheduler instance, otherwise the bit is cleared.
+  dir: out
+  name: cpuset
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The scheduler instance identifier was invalid.
+    value: ${../../status/if/invalid-id:/name}
+  - description: |
+      The provided processor set was too small for the set of processors owned
+      by the scheduler instance.
+    value: ${../../status/if/invalid-number:/name}
+type: interface
diff --git a/spec/rtems/scheduler/if/get-processor.yml b/spec/rtems/scheduler/if/get-processor.yml
new file mode 100644
index 0000000..8c32712
--- /dev/null
+++ b/spec/rtems/scheduler/if/get-processor.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the index of the current processor.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/smp/if/get-current-processor:/name}()
+  variants: []
+description: |
+  In uniprocessor configurations, this macro evaluates to a compile time
+  constant of zero.
+
+  In SMP configurations, an architecture-specific method is used to obtain the
+  index of the current processor in the system.  The set of processor indices
+  is the range of integers starting with zero up to
+  ${get-processor-maximum:/name} minus one.
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_get_processor
+notes: |
+  Outside of sections with disabled thread dispatching the current processor
+  index may change after every instruction since the thread may migrate from
+  one processor to another.  Sections with disabled interrupts are sections
+  with thread dispatching disabled.
+params: []
+return:
+  return: |
+    The index of the current processor is returned.
+  return-values: []
+type: interface
diff --git a/spec/rtems/scheduler/if/ident-by-processor-set.yml b/spec/rtems/scheduler/if/ident-by-processor-set.yml
new file mode 100644
index 0000000..f1c7a3e
--- /dev/null
+++ b/spec/rtems/scheduler/if/ident-by-processor-set.yml
@@ -0,0 +1,63 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a scheduler instance by a processor set.
+copyrights:
+- Copyright (C) 2017, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/size_t:/name} ${.:/params[0]/name}
+    - const ${/c/if/cpu_set_t:/name} *${.:/params[1]/name}
+    - ${../../type/if/id:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  The scheduler instance is selected according to the highest numbered online
+  processor in the specified processor set.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_ident_by_processor_set
+notes: null
+params:
+- description: |
+    is the size of the referenced processor set variable in bytes.  This value
+    shall be positive.
+  dir: null
+  name: cpusetsize
+- description: |
+    is the pointer to a processor set variable.  The referenced processor set
+    will be used to identify the scheduler instance.
+  dir: null
+  name: cpuset
+- description: |
+    is the pointer to an object identifier variable.  The identifier of the
+    scheduler instance will be stored in this variable, in case of a successful
+    operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The processor set was valid, however, the highest numbered online
+      processor in the processor set was not owned by a scheduler instance.
+    value: ${../../status/if/incorrect-state:/name}
+  - description: |
+      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The processor set contained no online processor.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      The processor set size was invalid.
+    value: ${../../status/if/invalid-size:/name}
+type: interface
diff --git a/spec/rtems/scheduler/if/ident-by-processor.yml b/spec/rtems/scheduler/if/ident-by-processor.yml
new file mode 100644
index 0000000..4a05cc9
--- /dev/null
+++ b/spec/rtems/scheduler/if/ident-by-processor.yml
@@ -0,0 +1,51 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a scheduler instance by a processor index.
+copyrights:
+- Copyright (C) 2017, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/uint32_t:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_ident_by_processor
+notes: null
+params:
+- description: |
+    is the processor index to identify the scheduler instance.
+  dir: null
+  name: cpu_index
+- description: |
+    is the pointer to an object identifier variable.  The identifier of the
+    scheduler instance will be stored in this variable, in case of a successful
+    operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The processor index was valid, however, the corresponding processor was
+      not owned by a scheduler instance.
+    value: ${../../status/if/incorrect-state:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The processor index was invalid.
+    value: ${../../status/if/invalid-name:/name}
+type: interface
diff --git a/spec/rtems/scheduler/if/ident.yml b/spec/rtems/scheduler/if/ident.yml
new file mode 100644
index 0000000..3a8a3e9
--- /dev/null
+++ b/spec/rtems/scheduler/if/ident.yml
@@ -0,0 +1,47 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a scheduler instance by its name.
+copyrights:
+- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_ident
+notes: |
+  The scheduler name is determined by the scheduler configuration.
+params:
+- description: is the scheduler name.
+  dir: null
+  name: name
+- description: |
+    is the pointer to an object identifier variable.  The identifier of the
+    scheduler instance will be stored in this variable, in case of a successful
+    operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The scheduler name was invalid.
+    value: ${../../status/if/invalid-name:/name}
+type: interface
diff --git a/spec/rtems/scheduler/if/map-priority-from-posix.yml b/spec/rtems/scheduler/if/map-priority-from-posix.yml
new file mode 100644
index 0000000..56527dd
--- /dev/null
+++ b/spec/rtems/scheduler/if/map-priority-from-posix.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Maps a POSIX thread priority to the corresponding Classic API task priority.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - int ${.:/params[1]/name}
+    - ${../../task/if/priority:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_map_priority_from_posix
+notes: null
+params:
+- description: is the scheduler instance identifier.
+  dir: null
+  name: scheduler_id
+- description: is the POSIX thread priority to map.
+  dir: null
+  name: posix_priority
+- description: |
+    is the pointer to a Classic API task priority variable.  The Classic API
+    task priority value corresponding to the specified POSIX thread priority
+    value will be stored in this variable, in case of a successful operation.
+  dir: out
+  name: priority
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The scheduler instance identifier was invalid.
+    value: ${../../status/if/invalid-id:/name}
+  - description: |
+      The POSIX thread priority was invalid.
+    value: ${../../status/if/invalid-priority:/name}
+type: interface
diff --git a/spec/rtems/scheduler/if/map-priority-to-posix.yml b/spec/rtems/scheduler/if/map-priority-to-posix.yml
new file mode 100644
index 0000000..65fe51e
--- /dev/null
+++ b/spec/rtems/scheduler/if/map-priority-to-posix.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Maps a Classic API task priority to the corresponding POSIX thread priority.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../task/if/priority:/name} ${.:/params[1]/name}
+    - int *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_map_priority_to_posix
+notes: null
+params:
+- description: is the scheduler instance identifier.
+  dir: null
+  name: scheduler_id
+- description: is the Classic API task priority to map.
+  dir: null
+  name: priority
+- description: |
+    is the pointer to a POSIX thread priority variable.  The POSIX thread
+    priority value corresponding to the specified Classic API task priority
+    value will be stored in this variable, in case of a successful operation.
+  dir: out
+  name: posix_priority
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The scheduler instance identifier was invalid.
+    value: ${../../status/if/invalid-id:/name}
+  - description: |
+      The Classic API task priority was invalid.
+    value: ${../../status/if/invalid-priority:/name}
+type: interface
diff --git a/spec/rtems/scheduler/if/remove-processor.yml b/spec/rtems/scheduler/if/remove-processor.yml
new file mode 100644
index 0000000..d180114
--- /dev/null
+++ b/spec/rtems/scheduler/if/remove-processor.yml
@@ -0,0 +1,52 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Removes a processor from set of processors owned by the scheduler instance.
+copyrights:
+- Copyright (C) 2016, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: ../../task/if/header
+- role: interface-ingroup
+  uid: ../../task/if/group
+name: rtems_scheduler_remove_processor
+notes: |
+  This directive shall be called from task context.  It obtains and releases
+  the objects allocator lock.  Removing a processor from a scheduler instance
+  is a complex operation that involves all tasks of the system.
+params:
+- description: is the scheduler instance identifier.
+  dir: null
+  name: scheduler_id
+- description: is the index of the processor to remove.
+  dir: null
+  name: cpu_index
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The scheduler instance identifier was invalid.
+    value: ${../../status/if/invalid-id:/name}
+  - description: |
+      The processor was not owned by the specified scheduler instance.
+    value: ${../../status/if/invalid-number:/name}
+  - description: |
+      The set of processors owned by the specified scheduler instance would
+      have been empty after the processor removal and there was at least one
+      non-idle task that used this scheduler instance as its home scheduler
+      instance.
+    value: ${../../status/if/resource-in-use:/name}
+type: interface
diff --git a/spec/rtems/sem/if/create.yml b/spec/rtems/sem/if/create.yml
new file mode 100644
index 0000000..e3a5e70
--- /dev/null
+++ b/spec/rtems/sem/if/create.yml
@@ -0,0 +1,183 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Creates a semaphore with the specified properties and returns its identifier.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    - ${../../attr/if/attribute:/name} ${.:/params[2]/name}
+    - ${../../task/if/priority:/name} ${.:/params[3]/name}
+    - ${../../type/if/id:/name} *${.:/params[4]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive creates a semaphore which resides on the local node.  The new
+  semaphore has the user-defined name specified in ``name`` and the initial
+  count specified in ``count``.  For control and maintenance of the semaphore,
+  RTEMS allocates and initializes a ${/glossary/smcb:/term}.  The
+  RTEMS-assigned semaphore identifier is returned in ``id``.  This semaphore
+  identifier is used with other semaphore related directives to access the
+  semaphore.
+
+  The attribute set specified in ``attribute_set`` defines
+
+  * the scope of the semaphore (local or global),
+
+  * the discipline of the task wait queue used by the semaphore (FIFO or
+    priority),
+
+  * the class of the semaphore (counting, binary, or simple binary), and
+
+  * the locking protocol of a binary semaphore (priority inheritance, priority
+    ceiling or MrsP).
+
+  The attribute set is built through a *bitwise or* of the attribute constants
+  described below.  Not all combinations of attributes are allowed.  Some
+  attributes are mutually exclusive.  If mutually exclusive attributes are
+  combined, the behaviour is undefined.
+
+  The *scope of a semaphore* is either the local node only (local scope) or all
+  nodes in a multiprocessing network (global scope).  The scope is selected by
+  the mutually exclusive ${../../attr/if/local:/name} and
+  ${../../attr/if/global:/name} attributes.
+
+  * The local scope is the default and can be emphasized through use
+    of the ${../../attr/if/local:/name} attribute.
+
+  * The global scope is selected by the ${../../attr/if/global:/name} attribute.  In
+    a single node system and the local and global scope are identical.
+
+  The *task wait queue discipline* is selected by the mutually exclusive
+  ${../../attr/if/fifo:/name} and ${../../attr/if/priority:/name} attributes.
+
+  * The ${/glossary/fifo:/term} discipline is the default and can be emphasized
+    through use of the ${../../attr/if/fifo:/name} attribute.
+
+  * The priority discipline is selected by the ${../../attr/if/priority:/name}
+    attribute.  Some locking protocols require the priority discipline.
+
+  The *semaphore class* is selected by the mutually exclusive
+  ${../../attr/if/counting-semaphore:/name},
+  ${../../attr/if/binary-semaphore:/name}, and
+  ${../../attr/if/simple-binary-semaphore:/name} attributes.
+
+  * Counting semaphores are the default and can be emphasized through use of
+    the ${../../attr/if/counting-semaphore:/name} attribute.
+
+  * Binary semaphores are mutual exclusion (mutex) synchronization primitives
+    which may have an owner.  The count of a binary semaphore is restricted to
+    0 and 1.  The binary semaphore class is selected by the
+    ${../../attr/if/binary-semaphore:/name} attribute.
+
+  * Simple binary semaphores have no owner.  The count of a simple binary
+    semaphore is restricted to 0 and 1.  They may be used for task and
+    interrupt synchronization.  The simple binary semaphore class is selected
+    by the ${../../attr/if/simple-binary-semaphore:/name} attribute.
+
+  Binary semaphores may use a *locking protocol*.  If a locking protocol is
+  selected, then the scope shall be local and the priority task wait queue
+  discipline shall be selected.  The locking protocol is selected by the
+  mutually exclusive ${../../attr/if/inherit-priority:/name},
+  ${../../attr/if/priority-ceiling:/name}, and
+  ${../../attr/if/multiprocessor-resource-sharing:/name} attributes.
+
+  * The default is to use no locking protocol.
+
+  * The ${../../attr/if/inherit-priority:/name} attribute selects the priority
+    inheritance locking protocol.
+
+  * The ${../../attr/if/priority-ceiling:/name} attribute selects the priority
+    ceiling locking protocol.  For this locking protocol a priority ceiling
+    shall be specified in ``priority_ceiling``.
+
+  * The ${../../attr/if/multiprocessor-resource-sharing:/name} attribute selects the
+    MrsP locking protocol in SMP configurations, otherwise it selects the
+    priority ceiling protocol.  For this locking protocol a priority ceiling
+    shall be specified in ``priority_ceiling``.  This priority is used to set
+    the priority ceiling in all scheduler instances.  This can be changed later
+    with the ${set-priority:/name} directive using the returned semaphore
+    identifier.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_semaphore_create
+notes: |
+  This directive may cause the calling task to be preempted due to an obtain
+  and release of the object allocator mutex.
+
+  Semaphores should not be made global unless remote tasks must interact with
+  the new semaphore.  This is to avoid the system overhead incurred by the
+  creation of a global semaphore.  When a global semaphore is created, the
+  semaphore's name and identifier must be transmitted to every node in the
+  system for insertion in the local copy of the global object table.
+
+  The total number of global objects, including semaphores, is limited by the
+  ${/acfg/if/mp-max-global-objects:/name} application configuration option.
+
+  It is not allowed to create an initially locked MrsP semaphore and the
+  ${../../status/if/invalid-number:/name} status code will be returned in SMP
+  configurations in this case.  This prevents lock order reversal problems
+  with the allocator mutex.
+params:
+- description: is the object name of the new semaphore.
+  dir: null
+  name: name
+- description: |
+    is the initial count of the new semaphore.  If the semaphore is a mutex,
+    then a count of 0 will make the calling task the owner of the new mutex and
+    a count of 1 will create a mutex without an owner.
+  dir: null
+  name: count
+- description: |
+    is the attribute set which defines the properties of the new semaphore.
+  dir: null
+  name: attribute_set
+- description: |
+    is the priority ceiling if the new semaphore is a binary semaphore with the
+    priority ceiling or MrsP semaphore locking protocol as defined by the
+    attribute set.
+  dir: null
+  name: priority_ceiling
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    the new semaphore will be stored in this variable, in case of a successful
+    operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[3]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The semaphore name was invalid.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      The priority ceiling was invalid.
+    value: ${../../status/if/invalid-priority:/name}
+  - description: |
+      The attribute set was invalid.
+    value: ${../../status/if/not-defined:/name}
+  - description: |
+      There was no inactive semaphore object available to create a new
+      semaphore.  The semaphore object maximum is defined by the
+      ${/acfg/if/max-semaphores:/name} application configuration option.
+    value: ${../../status/if/too-many:/name}
+  - description: |
+      In multiprocessing configurations, there was no inactive global object
+      available to create a new global semaphore.
+    value: ${../../status/if/too-many:/name}
+type: interface
diff --git a/spec/rtems/sem/if/delete.yml b/spec/rtems/sem/if/delete.yml
new file mode 100644
index 0000000..74f96ce
--- /dev/null
+++ b/spec/rtems/sem/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_semaphore_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/sem/if/flush.yml b/spec/rtems/sem/if/flush.yml
new file mode 100644
index 0000000..c1f71a7
--- /dev/null
+++ b/spec/rtems/sem/if/flush.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_semaphore_flush
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/sem/if/group.yml b/spec/rtems/sem/if/group.yml
new file mode 100644
index 0000000..19e1e0f
--- /dev/null
+++ b/spec/rtems/sem/if/group.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Semaphore Manager utilizes standard Dijkstra counting semaphores to
+  provide synchronization and mutual exclusion capabilities.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicSem
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Semaphore Manager
+text: |
+  The Classic API shall provide an interface to the Semaphore Manager.
+type: interface
diff --git a/spec/rtems/sem/if/header.yml b/spec/rtems/sem/if/header.yml
new file mode 100644
index 0000000..9c269fe
--- /dev/null
+++ b/spec/rtems/sem/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Semaphore Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/sem.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/sem/if/ident.yml b/spec/rtems/sem/if/ident.yml
new file mode 100644
index 0000000..e549d40
--- /dev/null
+++ b/spec/rtems/sem/if/ident.yml
@@ -0,0 +1,86 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a semaphore object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    - ${../../type/if/id:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the semaphore identifier associated with the semaphore
+  name specified in ``${.:/params[0]/name}``.
+
+  The node to search is specified in ``${.:/params[1]/name}``.  It shall be
+
+  * a valid node number,
+
+  * the constant ${../../object/if/search-all-nodes:/name} to search in all nodes,
+
+  * the constant ${../../object/if/search-local-node:/name} to search in the local
+    node only, or
+
+  * the constant ${../../object/if/search-other-nodes:/name} to search in all nodes
+    except the local node.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_semaphore_ident
+notes: |
+  If the semaphore name is not unique, then the semaphore identifier will match
+  the first semaphore with that name in the search order.  However, this
+  semaphore identifier is not guaranteed to correspond to the desired
+  semaphore.  The semaphore identifier is used with other semaphore related
+  directives to access the semaphore.
+
+  If node is ${../../object/if/search-all-nodes:/name}, all nodes are searched with
+  the local node being searched first.  All other nodes are searched with the
+  lowest numbered node searched first.
+
+  If node is a valid node number which does not represent the local node, then
+  only the semaphores exported by the designated node are searched.
+
+  This directive does not generate activity on remote nodes.  It accesses only
+  the local copy of the global object table.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: is the node or node set to search for a matching object.
+  dir: null
+  name: node
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the specified nodes.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      In multiprocessing configurations, the specified node was invalid.
+    value: ${../../status/if/invalid-node:/name}
+type: interface
diff --git a/spec/rtems/sem/if/obtain.yml b/spec/rtems/sem/if/obtain.yml
new file mode 100644
index 0000000..432908e
--- /dev/null
+++ b/spec/rtems/sem/if/obtain.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../option/if/option:/name} ${.:/params[1]/name}
+    - ${../../type/if/interval:/name} ${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_semaphore_obtain
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: option_set
+- description: '%'
+  dir: null
+  name: timeout
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/sem/if/release.yml b/spec/rtems/sem/if/release.yml
new file mode 100644
index 0000000..9f06390
--- /dev/null
+++ b/spec/rtems/sem/if/release.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_semaphore_release
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/sem/if/set-priority.yml b/spec/rtems/sem/if/set-priority.yml
new file mode 100644
index 0000000..9e5b591
--- /dev/null
+++ b/spec/rtems/sem/if/set-priority.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} ${.:/params[1]/name}
+    - ${../../task/if/priority:/name} ${.:/params[2]/name}
+    - ${../../task/if/priority:/name} *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_semaphore_set_priority
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: semaphore_id
+- description: '%'
+  dir: null
+  name: scheduler_id
+- description: '%'
+  dir: null
+  name: new_priority
+- description: '%'
+  dir: null
+  name: old_priority
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/sem/req/ident.yml b/spec/rtems/sem/req/ident.yml
new file mode 100644
index 0000000..dde8d11
--- /dev/null
+++ b/spec/rtems/sem/req/ident.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/ident
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/ident:/name} directive shall identify an Classic API
+  semaphore class object by its name as specified by ${../req/ident}.
+type: requirement
diff --git a/spec/rtems/sem/val/ident.yml b/spec/rtems/sem/val/ident.yml
new file mode 100644
index 0000000..70068b7
--- /dev/null
+++ b/spec/rtems/sem/val/ident.yml
@@ -0,0 +1,49 @@
+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:
+- role: validation
+  uid: ../req/ident
+test-actions:
+- action: |
+    ${../../req/ident:/test-run}(
+      id_local_object,
+      ClassicSemIdentAction
+    );
+  checks: []
+  description: |
+    Run the generic object identification tests for Classic API semaphore class
+    objects defined by ${../../req/ident}.
+  links: []
+test-brief: Test the ${../if/ident:/name} directive.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes: []
+test-local-includes:
+- tr-object-ident.h
+test-prologue: |
+  rtems_status_code sc;
+  rtems_id id_local_object;
+
+  sc = rtems_semaphore_create(
+    ClassicObjectIdentName,
+    0,
+    RTEMS_DEFAULT_ATTRIBUTES,
+    0,
+    &id_local_object
+  );
+  T_assert_rsc_success( sc );
+test-support: |
+  static rtems_status_code ClassicSemIdentAction(
+    rtems_name name,
+    uint32_t   node,
+    rtems_id  *id
+  )
+  {
+    return rtems_semaphore_ident( name, node, id );
+  }
+test-target: testsuites/validation/tc-sem-ident.c
+type: test-case
diff --git a/spec/if/rtems/signal/asr-entry.yml b/spec/rtems/signal/if/asr-entry.yml
similarity index 100%
rename from spec/if/rtems/signal/asr-entry.yml
rename to spec/rtems/signal/if/asr-entry.yml
diff --git a/spec/if/rtems/signal/asr.yml b/spec/rtems/signal/if/asr.yml
similarity index 100%
rename from spec/if/rtems/signal/asr.yml
rename to spec/rtems/signal/if/asr.yml
diff --git a/spec/rtems/signal/if/catch.yml b/spec/rtems/signal/if/catch.yml
new file mode 100644
index 0000000..c4438ef
--- /dev/null
+++ b/spec/rtems/signal/if/catch.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${asr-entry:/name} ${.:/params[0]/name}
+    - ${../../mode/if/mode:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_signal_catch
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: asr_handler
+- description: '%'
+  dir: null
+  name: mode_set
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/signal/if/group.yml b/spec/rtems/signal/if/group.yml
new file mode 100644
index 0000000..406fd92
--- /dev/null
+++ b/spec/rtems/signal/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Signal Manager provides the capabilities required for asynchronous
+  communication.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicSignal
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Signal Manager
+text: |
+  The Classic API shall provide an interface to the Signal Manager.
+type: interface
diff --git a/spec/rtems/signal/if/header-2.yml b/spec/rtems/signal/if/header-2.yml
new file mode 100644
index 0000000..fc14aa0
--- /dev/null
+++ b/spec/rtems/signal/if/header-2.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the parts of the Signal Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/asr.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/signal/if/header.yml b/spec/rtems/signal/if/header.yml
new file mode 100644
index 0000000..2a49eb9
--- /dev/null
+++ b/spec/rtems/signal/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the parts of the Signal Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/signal.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/signal/if/send.yml b/spec/rtems/signal/if/send.yml
new file mode 100644
index 0000000..c35170c
--- /dev/null
+++ b/spec/rtems/signal/if/send.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${set:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_signal_send
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: signal_set
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/signal/if/set.yml b/spec/rtems/signal/if/set.yml
new file mode 100644
index 0000000..dd75a01
--- /dev/null
+++ b/spec/rtems/signal/if/set.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header-2
+- role: interface-ingroup
+  uid: group
+name: rtems_signal_set
+notes: null
+type: interface
diff --git a/spec/if/rtems/signal/signal-0.yml b/spec/rtems/signal/if/signal-0.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-0.yml
rename to spec/rtems/signal/if/signal-0.yml
diff --git a/spec/if/rtems/signal/signal-1.yml b/spec/rtems/signal/if/signal-1.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-1.yml
rename to spec/rtems/signal/if/signal-1.yml
diff --git a/spec/if/rtems/signal/signal-10.yml b/spec/rtems/signal/if/signal-10.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-10.yml
rename to spec/rtems/signal/if/signal-10.yml
diff --git a/spec/if/rtems/signal/signal-11.yml b/spec/rtems/signal/if/signal-11.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-11.yml
rename to spec/rtems/signal/if/signal-11.yml
diff --git a/spec/if/rtems/signal/signal-12.yml b/spec/rtems/signal/if/signal-12.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-12.yml
rename to spec/rtems/signal/if/signal-12.yml
diff --git a/spec/if/rtems/signal/signal-13.yml b/spec/rtems/signal/if/signal-13.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-13.yml
rename to spec/rtems/signal/if/signal-13.yml
diff --git a/spec/if/rtems/signal/signal-14.yml b/spec/rtems/signal/if/signal-14.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-14.yml
rename to spec/rtems/signal/if/signal-14.yml
diff --git a/spec/if/rtems/signal/signal-15.yml b/spec/rtems/signal/if/signal-15.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-15.yml
rename to spec/rtems/signal/if/signal-15.yml
diff --git a/spec/if/rtems/signal/signal-16.yml b/spec/rtems/signal/if/signal-16.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-16.yml
rename to spec/rtems/signal/if/signal-16.yml
diff --git a/spec/if/rtems/signal/signal-17.yml b/spec/rtems/signal/if/signal-17.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-17.yml
rename to spec/rtems/signal/if/signal-17.yml
diff --git a/spec/if/rtems/signal/signal-18.yml b/spec/rtems/signal/if/signal-18.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-18.yml
rename to spec/rtems/signal/if/signal-18.yml
diff --git a/spec/if/rtems/signal/signal-19.yml b/spec/rtems/signal/if/signal-19.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-19.yml
rename to spec/rtems/signal/if/signal-19.yml
diff --git a/spec/if/rtems/signal/signal-2.yml b/spec/rtems/signal/if/signal-2.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-2.yml
rename to spec/rtems/signal/if/signal-2.yml
diff --git a/spec/if/rtems/signal/signal-20.yml b/spec/rtems/signal/if/signal-20.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-20.yml
rename to spec/rtems/signal/if/signal-20.yml
diff --git a/spec/if/rtems/signal/signal-21.yml b/spec/rtems/signal/if/signal-21.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-21.yml
rename to spec/rtems/signal/if/signal-21.yml
diff --git a/spec/if/rtems/signal/signal-22.yml b/spec/rtems/signal/if/signal-22.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-22.yml
rename to spec/rtems/signal/if/signal-22.yml
diff --git a/spec/if/rtems/signal/signal-23.yml b/spec/rtems/signal/if/signal-23.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-23.yml
rename to spec/rtems/signal/if/signal-23.yml
diff --git a/spec/if/rtems/signal/signal-24.yml b/spec/rtems/signal/if/signal-24.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-24.yml
rename to spec/rtems/signal/if/signal-24.yml
diff --git a/spec/if/rtems/signal/signal-25.yml b/spec/rtems/signal/if/signal-25.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-25.yml
rename to spec/rtems/signal/if/signal-25.yml
diff --git a/spec/if/rtems/signal/signal-26.yml b/spec/rtems/signal/if/signal-26.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-26.yml
rename to spec/rtems/signal/if/signal-26.yml
diff --git a/spec/if/rtems/signal/signal-27.yml b/spec/rtems/signal/if/signal-27.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-27.yml
rename to spec/rtems/signal/if/signal-27.yml
diff --git a/spec/if/rtems/signal/signal-28.yml b/spec/rtems/signal/if/signal-28.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-28.yml
rename to spec/rtems/signal/if/signal-28.yml
diff --git a/spec/if/rtems/signal/signal-29.yml b/spec/rtems/signal/if/signal-29.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-29.yml
rename to spec/rtems/signal/if/signal-29.yml
diff --git a/spec/if/rtems/signal/signal-3.yml b/spec/rtems/signal/if/signal-3.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-3.yml
rename to spec/rtems/signal/if/signal-3.yml
diff --git a/spec/if/rtems/signal/signal-30.yml b/spec/rtems/signal/if/signal-30.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-30.yml
rename to spec/rtems/signal/if/signal-30.yml
diff --git a/spec/if/rtems/signal/signal-31.yml b/spec/rtems/signal/if/signal-31.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-31.yml
rename to spec/rtems/signal/if/signal-31.yml
diff --git a/spec/if/rtems/signal/signal-4.yml b/spec/rtems/signal/if/signal-4.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-4.yml
rename to spec/rtems/signal/if/signal-4.yml
diff --git a/spec/if/rtems/signal/signal-5.yml b/spec/rtems/signal/if/signal-5.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-5.yml
rename to spec/rtems/signal/if/signal-5.yml
diff --git a/spec/if/rtems/signal/signal-6.yml b/spec/rtems/signal/if/signal-6.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-6.yml
rename to spec/rtems/signal/if/signal-6.yml
diff --git a/spec/if/rtems/signal/signal-7.yml b/spec/rtems/signal/if/signal-7.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-7.yml
rename to spec/rtems/signal/if/signal-7.yml
diff --git a/spec/if/rtems/signal/signal-8.yml b/spec/rtems/signal/if/signal-8.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-8.yml
rename to spec/rtems/signal/if/signal-8.yml
diff --git a/spec/if/rtems/signal/signal-9.yml b/spec/rtems/signal/if/signal-9.yml
similarity index 100%
rename from spec/if/rtems/signal/signal-9.yml
rename to spec/rtems/signal/if/signal-9.yml
diff --git a/spec/if/rtems/status/already-suspended.yml b/spec/rtems/status/if/already-suspended.yml
similarity index 100%
rename from spec/if/rtems/status/already-suspended.yml
rename to spec/rtems/status/if/already-suspended.yml
diff --git a/spec/if/rtems/status/called-from-isr.yml b/spec/rtems/status/if/called-from-isr.yml
similarity index 100%
rename from spec/if/rtems/status/called-from-isr.yml
rename to spec/rtems/status/if/called-from-isr.yml
diff --git a/spec/if/rtems/status/code-to-errno.yml b/spec/rtems/status/if/code-to-errno.yml
similarity index 100%
rename from spec/if/rtems/status/code-to-errno.yml
rename to spec/rtems/status/if/code-to-errno.yml
diff --git a/spec/if/rtems/status/code.yml b/spec/rtems/status/if/code.yml
similarity index 100%
rename from spec/if/rtems/status/code.yml
rename to spec/rtems/status/if/code.yml
diff --git a/spec/if/rtems/status/first.yml b/spec/rtems/status/if/first.yml
similarity index 100%
rename from spec/if/rtems/status/first.yml
rename to spec/rtems/status/if/first.yml
diff --git a/spec/rtems/status/if/group.yml b/spec/rtems/status/if/group.yml
new file mode 100644
index 0000000..04f0b51
--- /dev/null
+++ b/spec/rtems/status/if/group.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains the Classic API status codes and support functions.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicStatus
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Directive Status Codes
+text: |
+  The Classic API shall provide an interface to directive status codes.
+type: interface
diff --git a/spec/rtems/status/if/header.yml b/spec/rtems/status/if/header.yml
new file mode 100644
index 0000000..f3ed7d7
--- /dev/null
+++ b/spec/rtems/status/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the status codes provided by API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/status.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/rtems/status/illegal-on-remote-object.yml b/spec/rtems/status/if/illegal-on-remote-object.yml
similarity index 100%
rename from spec/if/rtems/status/illegal-on-remote-object.yml
rename to spec/rtems/status/if/illegal-on-remote-object.yml
diff --git a/spec/if/rtems/status/illegal-on-self.yml b/spec/rtems/status/if/illegal-on-self.yml
similarity index 100%
rename from spec/if/rtems/status/illegal-on-self.yml
rename to spec/rtems/status/if/illegal-on-self.yml
diff --git a/spec/if/rtems/status/incorrect-state.yml b/spec/rtems/status/if/incorrect-state.yml
similarity index 100%
rename from spec/if/rtems/status/incorrect-state.yml
rename to spec/rtems/status/if/incorrect-state.yml
diff --git a/spec/if/rtems/status/internal-error.yml b/spec/rtems/status/if/internal-error.yml
similarity index 100%
rename from spec/if/rtems/status/internal-error.yml
rename to spec/rtems/status/if/internal-error.yml
diff --git a/spec/if/rtems/status/interrupted.yml b/spec/rtems/status/if/interrupted.yml
similarity index 100%
rename from spec/if/rtems/status/interrupted.yml
rename to spec/rtems/status/if/interrupted.yml
diff --git a/spec/if/rtems/status/invalid-address.yml b/spec/rtems/status/if/invalid-address.yml
similarity index 100%
rename from spec/if/rtems/status/invalid-address.yml
rename to spec/rtems/status/if/invalid-address.yml
diff --git a/spec/if/rtems/status/invalid-clock.yml b/spec/rtems/status/if/invalid-clock.yml
similarity index 100%
rename from spec/if/rtems/status/invalid-clock.yml
rename to spec/rtems/status/if/invalid-clock.yml
diff --git a/spec/if/rtems/status/invalid-id.yml b/spec/rtems/status/if/invalid-id.yml
similarity index 100%
rename from spec/if/rtems/status/invalid-id.yml
rename to spec/rtems/status/if/invalid-id.yml
diff --git a/spec/if/rtems/status/invalid-name.yml b/spec/rtems/status/if/invalid-name.yml
similarity index 100%
rename from spec/if/rtems/status/invalid-name.yml
rename to spec/rtems/status/if/invalid-name.yml
diff --git a/spec/if/rtems/status/invalid-node.yml b/spec/rtems/status/if/invalid-node.yml
similarity index 100%
rename from spec/if/rtems/status/invalid-node.yml
rename to spec/rtems/status/if/invalid-node.yml
diff --git a/spec/if/rtems/status/invalid-number.yml b/spec/rtems/status/if/invalid-number.yml
similarity index 100%
rename from spec/if/rtems/status/invalid-number.yml
rename to spec/rtems/status/if/invalid-number.yml
diff --git a/spec/if/rtems/status/invalid-priority.yml b/spec/rtems/status/if/invalid-priority.yml
similarity index 100%
rename from spec/if/rtems/status/invalid-priority.yml
rename to spec/rtems/status/if/invalid-priority.yml
diff --git a/spec/if/rtems/status/invalid-size.yml b/spec/rtems/status/if/invalid-size.yml
similarity index 100%
rename from spec/if/rtems/status/invalid-size.yml
rename to spec/rtems/status/if/invalid-size.yml
diff --git a/spec/if/rtems/status/io-error.yml b/spec/rtems/status/if/io-error.yml
similarity index 100%
rename from spec/if/rtems/status/io-error.yml
rename to spec/rtems/status/if/io-error.yml
diff --git a/spec/rtems/status/if/is-equal.yml b/spec/rtems/status/if/is-equal.yml
new file mode 100644
index 0000000..b370650
--- /dev/null
+++ b/spec/rtems/status/if/is-equal.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns true, if the left hand side status code is equal to the right hand
+  side status code, otherwise returns false.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: |
+      return ${.:/params[0]/name} == ${.:/params[1]/name};
+    params:
+    - ${code:/name} ${.:/params[0]/name}
+    - ${code:/name} ${.:/params[1]/name}
+    return: ${/c/if/bool:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_are_statuses_equal
+notes: null
+params:
+- description: is the left hand side status code.
+  dir: null
+  name: left_status_code
+- description: is the right hand side status code.
+  dir: null
+  name: right_status_code
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/status/if/is-successful.yml b/spec/rtems/status/if/is-successful.yml
new file mode 100644
index 0000000..71dce79
--- /dev/null
+++ b/spec/rtems/status/if/is-successful.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns true, if the status code is ${successful:/name}, otherwise
+  returns false.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: |
+      return ${.:/params[0]/name} == ${successful:/name};
+    params:
+    - ${code:/name} ${.:/params[0]/name}
+    return: ${/c/if/bool:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_is_status_successful
+notes: null
+params:
+- description: is the status code.
+  dir: null
+  name: status_code
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/status/last.yml b/spec/rtems/status/if/last.yml
similarity index 100%
rename from spec/if/rtems/status/last.yml
rename to spec/rtems/status/if/last.yml
diff --git a/spec/if/rtems/status/mp-not-configured.yml b/spec/rtems/status/if/mp-not-configured.yml
similarity index 100%
rename from spec/if/rtems/status/mp-not-configured.yml
rename to spec/rtems/status/if/mp-not-configured.yml
diff --git a/spec/if/rtems/status/no-memory.yml b/spec/rtems/status/if/no-memory.yml
similarity index 100%
rename from spec/if/rtems/status/no-memory.yml
rename to spec/rtems/status/if/no-memory.yml
diff --git a/spec/if/rtems/status/not-configured.yml b/spec/rtems/status/if/not-configured.yml
similarity index 100%
rename from spec/if/rtems/status/not-configured.yml
rename to spec/rtems/status/if/not-configured.yml
diff --git a/spec/if/rtems/status/not-defined.yml b/spec/rtems/status/if/not-defined.yml
similarity index 100%
rename from spec/if/rtems/status/not-defined.yml
rename to spec/rtems/status/if/not-defined.yml
diff --git a/spec/if/rtems/status/not-implemented.yml b/spec/rtems/status/if/not-implemented.yml
similarity index 100%
rename from spec/if/rtems/status/not-implemented.yml
rename to spec/rtems/status/if/not-implemented.yml
diff --git a/spec/if/rtems/status/not-owner-of-resource.yml b/spec/rtems/status/if/not-owner-of-resource.yml
similarity index 100%
rename from spec/if/rtems/status/not-owner-of-resource.yml
rename to spec/rtems/status/if/not-owner-of-resource.yml
diff --git a/spec/if/rtems/status/object-was-deleted.yml b/spec/rtems/status/if/object-was-deleted.yml
similarity index 100%
rename from spec/if/rtems/status/object-was-deleted.yml
rename to spec/rtems/status/if/object-was-deleted.yml
diff --git a/spec/if/rtems/status/proxy-blocking.yml b/spec/rtems/status/if/proxy-blocking.yml
similarity index 100%
rename from spec/if/rtems/status/proxy-blocking.yml
rename to spec/rtems/status/if/proxy-blocking.yml
diff --git a/spec/if/rtems/status/resource-in-use.yml b/spec/rtems/status/if/resource-in-use.yml
similarity index 100%
rename from spec/if/rtems/status/resource-in-use.yml
rename to spec/rtems/status/if/resource-in-use.yml
diff --git a/spec/if/rtems/status/successful.yml b/spec/rtems/status/if/successful.yml
similarity index 100%
rename from spec/if/rtems/status/successful.yml
rename to spec/rtems/status/if/successful.yml
diff --git a/spec/if/rtems/status/task-exitted.yml b/spec/rtems/status/if/task-exitted.yml
similarity index 100%
rename from spec/if/rtems/status/task-exitted.yml
rename to spec/rtems/status/if/task-exitted.yml
diff --git a/spec/if/rtems/status/text.yml b/spec/rtems/status/if/text.yml
similarity index 100%
rename from spec/if/rtems/status/text.yml
rename to spec/rtems/status/if/text.yml
diff --git a/spec/if/rtems/status/timeout.yml b/spec/rtems/status/if/timeout.yml
similarity index 100%
rename from spec/if/rtems/status/timeout.yml
rename to spec/rtems/status/if/timeout.yml
diff --git a/spec/if/rtems/status/too-many.yml b/spec/rtems/status/if/too-many.yml
similarity index 100%
rename from spec/if/rtems/status/too-many.yml
rename to spec/rtems/status/if/too-many.yml
diff --git a/spec/if/rtems/status/unsatisfied.yml b/spec/rtems/status/if/unsatisfied.yml
similarity index 100%
rename from spec/if/rtems/status/unsatisfied.yml
rename to spec/rtems/status/if/unsatisfied.yml
diff --git a/spec/rtems/support/if/group.yml b/spec/rtems/support/if/group.yml
new file mode 100644
index 0000000..eed5270
--- /dev/null
+++ b/spec/rtems/support/if/group.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Items of this group should move to other groups.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicSupport
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Support Services
+text: |
+  The Classic API should not provide this interface part.
+type: interface
diff --git a/spec/rtems/support/if/header.yml b/spec/rtems/support/if/header.yml
new file mode 100644
index 0000000..2909f94
--- /dev/null
+++ b/spec/rtems/support/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines support services of the API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/support.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/support/if/is-name-valid.yml b/spec/rtems/support/if/is-name-valid.yml
new file mode 100644
index 0000000..55cc5b5
--- /dev/null
+++ b/spec/rtems/support/if/is-name-valid.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns true, if the specified object name is valid, otherwise returns false.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1989, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: |
+      return ${.:/params[0]/name} != 0;
+    params:
+    - ${../../status/if/code:/name} ${.:/params[0]/name}
+    return: ${/c/if/bool:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_is_name_valid
+notes: null
+params:
+- description: is the object name to check.
+  dir: null
+  name: name
+return:
+  return: null
+  return-values:
+  - description: The specified object name is valid.
+    value: 'true'
+  - description: Otherwise.
+    value: 'false'
+type: interface
diff --git a/spec/rtems/support/if/microseconds-to-ticks.yml b/spec/rtems/support/if/microseconds-to-ticks.yml
new file mode 100644
index 0000000..2a477bf
--- /dev/null
+++ b/spec/rtems/support/if/microseconds-to-ticks.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the number of clock ticks for the specified microseconds value.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ( ( ${.:/params[0]/name} ) / ${../../config/if/get-microseconds-per-tick:/name}() )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_MICROSECONDS_TO_TICKS
+notes: |
+  The number of clock ticks per second is defined by the
+  ${/acfg/if/microseconds-per-tick:/name} application configuration option.
+params:
+- description: is the microseconds value to convert to clock ticks.
+  dir: null
+  name: _us
+return:
+  return: |
+    The number of clock ticks for the specified microseconds value is returned.
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/support/milliseconds-to-microseconds.yml b/spec/rtems/support/if/milliseconds-to-microseconds.yml
similarity index 100%
rename from spec/if/rtems/support/milliseconds-to-microseconds.yml
rename to spec/rtems/support/if/milliseconds-to-microseconds.yml
diff --git a/spec/rtems/support/if/milliseconds-to-ticks.yml b/spec/rtems/support/if/milliseconds-to-ticks.yml
new file mode 100644
index 0000000..6fa5b54
--- /dev/null
+++ b/spec/rtems/support/if/milliseconds-to-ticks.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the number of clock ticks for the specified milliseconds value.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${microseconds-to-ticks:/name}( ${milliseconds-to-microseconds:/name}( ${.:/params[0]/name} ) )
+  variants: []
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_MILLISECONDS_TO_TICKS
+notes: |
+  The number of clock ticks per second is defined by the
+  ${/acfg/if/microseconds-per-tick:/name} application configuration option.
+params:
+- description: is the milliseconds value to convert to clock ticks.
+  dir: null
+  name: _ms
+return:
+  return: |
+    The number of clock ticks for the specified milliseconds value is returned.
+  return-values: []
+type: interface
diff --git a/spec/rtems/support/if/name-to-characters.yml b/spec/rtems/support/if/name-to-characters.yml
new file mode 100644
index 0000000..28b9f84
--- /dev/null
+++ b/spec/rtems/support/if/name-to-characters.yml
@@ -0,0 +1,51 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Breaks the object name into the four component characters.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: |
+      *${.:/params[1]/name} = (char) ( ${.:/params[0]/name} >> 24 );
+      *${.:/params[2]/name} = (char) ( ${.:/params[0]/name} >> 16 );
+      *${.:/params[3]/name} = (char) ( ${.:/params[0]/name} >> 8 );
+      *${.:/params[4]/name} = (char) ${.:/params[0]/name};
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - char *${.:/params[1]/name}
+    - char *${.:/params[2]/name}
+    - char *${.:/params[3]/name}
+    - char *${.:/params[4]/name}
+    return: void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_name_to_characters
+notes: null
+params:
+- description: is the object name to break into four component characters.
+  dir: null
+  name: name
+- description: is the first character of the object name.
+  dir: out
+  name: c1
+- description: is the second character of the object name.
+  dir: out
+  name: c2
+- description: is the third character of the object name.
+  dir: out
+  name: c3
+- description: is the fourth character of the object name.
+  dir: out
+  name: c4
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/support/if/workspace-allocate.yml b/spec/rtems/support/if/workspace-allocate.yml
new file mode 100644
index 0000000..8d2d750
--- /dev/null
+++ b/spec/rtems/support/if/workspace-allocate.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/size_t:/name} ${.:/params[0]/name}
+    - void **${.:/params[1]/name}
+    return: ${/c/if/bool:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_workspace_allocate
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: bytes
+- description: '%'
+  dir: null
+  name: pointer
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/support/if/workspace-free.yml b/spec/rtems/support/if/workspace-free.yml
new file mode 100644
index 0000000..e505e99
--- /dev/null
+++ b/spec/rtems/support/if/workspace-free.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - void *${.:/params[0]/name}
+    return: ${/c/if/bool:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_workspace_free
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: pointer
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/support/if/workspace-get-information.yml b/spec/rtems/support/if/workspace-get-information.yml
new file mode 100644
index 0000000..afde455
--- /dev/null
+++ b/spec/rtems/support/if/workspace-get-information.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/score/heap/if/information-block:/name} *${.:/params[0]/name}
+    return: ${/c/if/bool:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_workspace_get_information
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: the_info
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/support/if/workspace-greedy-allocate-all-except-largest.yml b/spec/rtems/support/if/workspace-greedy-allocate-all-except-largest.yml
new file mode 100644
index 0000000..6d03e67
--- /dev/null
+++ b/spec/rtems/support/if/workspace-greedy-allocate-all-except-largest.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${/c/if/uintptr_t:/name} *${.:/params[0]/name}
+    return: void *
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_workspace_greedy_allocate_all_except_largest
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: allocatable_size
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/support/if/workspace-greedy-allocate.yml b/spec/rtems/support/if/workspace-greedy-allocate.yml
new file mode 100644
index 0000000..3218242
--- /dev/null
+++ b/spec/rtems/support/if/workspace-greedy-allocate.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const ${/c/if/uintptr_t:/name} *${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    return: void *
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_workspace_greedy_allocate
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: block_sizes
+- description: '%'
+  dir: null
+  name: block_count
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/support/workspace-greedy-free.yml b/spec/rtems/support/if/workspace-greedy-free.yml
similarity index 100%
rename from spec/if/rtems/support/workspace-greedy-free.yml
rename to spec/rtems/support/if/workspace-greedy-free.yml
diff --git a/spec/rtems/task/if/argument.yml b/spec/rtems/task/if/argument.yml
new file mode 100644
index 0000000..86662e3
--- /dev/null
+++ b/spec/rtems/task/if/argument.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type is used to represent task argument values.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/cpu/if/uint32ptr:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_argument
+notes: |
+  The type is an architecture-specific unsigned integer type which is large
+  enough to represent pointer values and 32-bit unsigned integers.
+type: interface
diff --git a/spec/rtems/task/if/config.yml b/spec/rtems/task/if/config.yml
new file mode 100644
index 0000000..b2016fb
--- /dev/null
+++ b/spec/rtems/task/if/config.yml
@@ -0,0 +1,109 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This structure defines the configuration of a task constructed by
+  ${construct:/name}.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+- default:
+    brief: |
+      This member defines the name of the task.
+    definition: ${../../type/if/name:/name} ${.:name}
+    description: null
+    kind: member
+    name: name
+  variants: []
+- default:
+    brief: |
+      This member defines the initial priority of the task.
+    definition: ${priority:/name} ${.:name}
+    description: null
+    kind: member
+    name: initial_priority
+  variants: []
+- default:
+    brief: |
+      This member shall point to the task storage area begin.
+    definition: void *${.:name}
+    description: |
+      The task storage area will contain the task stack, the thread-local
+      storage, and the floating-point context on architectures with a separate
+      floating-point context.
+
+      The task storage area begin address and size should be aligned by
+      ${storage-alignment:/name}.  To avoid memory waste, use
+      ${../../basedefs/if/aligned:/name} and ${storage-alignment:/name} to enforce
+      the recommended alignment of a statically allocated task storage area.
+    kind: member
+    name: storage_area
+  variants: []
+- default:
+    brief: |
+      This member defines size of the task storage area in bytes.
+    definition: ${/c/if/size_t:/name} ${.:name}
+    description: |
+      Use the ${storage-size:/name} macro to determine the recommended task
+      storage area size.
+    kind: member
+    name: storage_size
+  variants: []
+- default:
+    brief: |
+      This member defines the maximum thread-local storage size supported by the
+      task storage area.
+    definition: ${/c/if/size_t:/name} ${.:name}
+    description: |
+      Use ${../../basedefs/if/align-up:/name} and ${storage-alignment:/name} to
+      adjust the size to meet the minimum alignment requirement of a
+      thread-local storage area used to construct a task.
+
+      If the value is less than the actual thread-local storage size, then the
+      task construction by ${construct:/name} fails.
+
+      If the is less than the task storage area size, then the task
+      construction by ${construct:/name} fails.
+    kind: member
+    name: maximum_thread_local_storage_size
+  variants: []
+- default:
+    brief: |
+      This member defines the optional handler to free the task storage area.
+    definition: void ( *${.:name} )( void * )
+    description: |
+      It is called on exactly two mutually exclusive occasions.  Firstly, when
+      the task construction aborts due to a failed task create extension, or
+      secondly, when the task is deleted.  It is called from task context under
+      protection of the object allocator lock.  It is allowed to call free() in
+      this handler.  If handler is ${/c/if/null:/name}, then no action will
+      be performed.
+    kind: member
+    name: storage_free
+  variants: []
+- default:
+    brief: |
+      This member defines the initial modes of the task.
+    definition: ${../../mode/if/mode:/name} ${.:name}
+    description: null
+    kind: member
+    name: initial_modes
+  variants: []
+- default:
+    brief: |
+      This member defines the attributes of the task.
+    definition: ${../../attr/if/attribute:/name} ${.:name}
+    description: null
+    kind: member
+    name: attributes
+  variants: []
+definition-kind: typedef-only
+description: null
+enabled-by: true
+interface-type: struct
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_config
+notes: null
+type: interface
diff --git a/spec/if/rtems/tasks/configured-minimum-stack-size.yml b/spec/rtems/task/if/configured-minimum-stack-size.yml
similarity index 100%
rename from spec/if/rtems/tasks/configured-minimum-stack-size.yml
rename to spec/rtems/task/if/configured-minimum-stack-size.yml
diff --git a/spec/rtems/task/if/construct.yml b/spec/rtems/task/if/construct.yml
new file mode 100644
index 0000000..d516807
--- /dev/null
+++ b/spec/rtems/task/if/construct.yml
@@ -0,0 +1,91 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Creates a task from the specified the task configuration.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params:
+    - const ${config:/name} *${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_construct
+notes: |
+  In contrast to tasks created by ${create:/name}, the tasks constructed by
+  this directive use a user-provided task storage area.  The task storage area
+  contains the task stack, the thread-local storage, and the floating-point
+  context on architectures with a separate floating-point context.
+
+  It is not recommended to mix ${create:/name} and ${.:/name} in an
+  application.  This directive is intended for applications which do not want
+  to use the RTEMS Workspace and instead statically allocate all operating
+  system resources.  The stack space estimate done by <rtems/confdefs.h>
+  assumes that all tasks are created by ${create:/name}.  The estimate can be
+  adjusted to take user-provided task storage areas into account through the
+  ${/acfg/if/min-tasks-with-user-provided-storage:/name} application
+  configuration option.
+params:
+- description: is the task configuration.
+  dir: null
+  name: config
+- description: |
+    is the pointer to an object identifier variable.  The identifier of the
+    constructed task object will be stored in this variable, in case of a
+    successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The task name was invalid.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      The initial task priority was invalid.
+    value: ${../../status/if/invalid-priority:/name}
+  - description: |
+      The thread-local storage size is greater than the maximum thread-local
+      storage size specified in the task configuration.  The thread-local
+      storage size is determined by the thread-local variables used by the
+      application and ${/acfg/if/max-thread-local-storage-size:/name}.
+    value: ${../../status/if/invalid-size:/name}
+  - description: |
+      The task storage area was too small to provide a task stack of the
+      configured minimum size, see ${/acfg/if/min-task-stack-size:/name}.
+      The task storage area contains the task stack, the thread-local storage,
+      and the floating-point context on architectures with a separate
+      floating-point context.
+    value: ${../../status/if/invalid-size:/name}
+  - description: |
+      There was no inactive task object available to construct a task.
+    value: ${../../status/if/too-many:/name}
+  - description: |
+      In multiprocessing configurations, there was no inactive global object
+      available to construct a global task.
+    value: ${../../status/if/too-many:/name}
+  - description: |
+      One of the task create extensions failed during the task construction.
+    value: ${../../status/if/unsatisfied:/name}
+  - description: |
+      In SMP configurations, the non-preemption mode was not supported.
+    value: ${../../status/if/unsatisfied:/name}
+  - description: |
+      In SMP configurations, the interrupt level mode was not supported.
+    value: ${../../status/if/unsatisfied:/name}
+type: interface
diff --git a/spec/rtems/task/if/create.yml b/spec/rtems/task/if/create.yml
new file mode 100644
index 0000000..7baea12
--- /dev/null
+++ b/spec/rtems/task/if/create.yml
@@ -0,0 +1,101 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Creates a task object.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${priority:/name} ${.:/params[1]/name}
+    - ${/c/if/size_t:/name} ${.:/params[2]/name}
+    - ${../../mode/if/mode:/name} ${.:/params[3]/name}
+    - ${../../attr/if/attribute:/name} ${.:/params[4]/name}
+    - ${../../type/if/id:/name} *${.:/params[5]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive creates a task which resides on the local node. It allocates
+  and initializes a TCB, a stack, and an optional floating point context area.
+  The mode parameter contains values which sets the task’s initial execution
+  mode. The RTEMS_FLOATING_POINT attribute should be specified if the created
+  task is to use a numeric coprocessor. For performance reasons, it is
+  recommended that tasks not using the numeric coprocessor should specify the
+  RTEMS_NO_FLOATING_POINT attribute. If the RTEMS_GLOBAL attribute is
+  specified, the task can be accessed from remote nodes. The task id, returned
+  in id, is used in other task related directives to access the task. When
+  created, a task is placed in the dormant state and can only be made ready to
+  execute using the directive rtems_task_start().
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_create
+notes: null
+params:
+- description: is the user-defined task name.
+  dir: null
+  name: name
+- description: is the initial task priority.
+  dir: null
+  name: initial_priority
+- description: is the task stack size in bytes.
+  dir: null
+  name: stack_size
+- description: is the initial task mode.
+  dir: null
+  name: initial_modes
+- description: is the task attribute set.
+  dir: null
+  name: attribute_set
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    the new task will be stored in this variable, in case of a successful
+    operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[5]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The task name was invalid.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      The initial task priority was invalid.
+    value: ${../../status/if/invalid-priority:/name}
+  - description: |
+      The multiprocessing support was not configured.
+    value: ${../../status/if/mp-not-configured:/name}
+  - description: |
+      There was no inactive task object available to create a new task.
+    value: ${../../status/if/too-many:/name}
+  - description: |
+      In multiprocessing configurations, there was no inactive global object
+      available to create a new global task.
+    value: ${../../status/if/too-many:/name}
+  - description: |
+      There was not enough memory to allocate the task storage area.  The task
+      storage area contains the task stack, the thread-local storage, and the
+      floating point context.
+    value: ${../../status/if/unsatisfied:/name}
+  - description: |
+      One of the task create extensions failed to create the new task.
+    value: ${../../status/if/unsatisfied:/name}
+  - description: |
+      In SMP configurations, the non-preemption mode was not supported.
+    value: ${../../status/if/unsatisfied:/name}
+  - description: |
+      In SMP configurations, the interrupt level mode was not supported.
+    value: ${../../status/if/unsatisfied:/name}
+type: interface
diff --git a/spec/if/rtems/tasks/current-priority.yml b/spec/rtems/task/if/current-priority.yml
similarity index 100%
rename from spec/if/rtems/tasks/current-priority.yml
rename to spec/rtems/task/if/current-priority.yml
diff --git a/spec/rtems/task/if/delete.yml b/spec/rtems/task/if/delete.yml
new file mode 100644
index 0000000..7700116
--- /dev/null
+++ b/spec/rtems/task/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/tasks/entry.yml b/spec/rtems/task/if/entry.yml
similarity index 100%
rename from spec/if/rtems/tasks/entry.yml
rename to spec/rtems/task/if/entry.yml
diff --git a/spec/rtems/task/if/exit.yml b/spec/rtems/task/if/exit.yml
new file mode 100644
index 0000000..fbfe49b
--- /dev/null
+++ b/spec/rtems/task/if/exit.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${../../basedefs/if/no-return:/name} void
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_exit
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/get-affinity.yml b/spec/rtems/task/if/get-affinity.yml
new file mode 100644
index 0000000..ab0a6a7
--- /dev/null
+++ b/spec/rtems/task/if/get-affinity.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    - ${/c/if/cpu_set_t:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_get_affinity
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: cpusetsize
+- description: '%'
+  dir: null
+  name: cpuset
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/get-priority.yml b/spec/rtems/task/if/get-priority.yml
new file mode 100644
index 0000000..e89e982
--- /dev/null
+++ b/spec/rtems/task/if/get-priority.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} ${.:/params[1]/name}
+    - ${priority:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_get_priority
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: task_id
+- description: '%'
+  dir: null
+  name: scheduler_id
+- description: '%'
+  dir: null
+  name: priority
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/get-scheduler.yml b/spec/rtems/task/if/get-scheduler.yml
new file mode 100644
index 0000000..4dd97d9
--- /dev/null
+++ b/spec/rtems/task/if/get-scheduler.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_get_scheduler
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: task_id
+- description: '%'
+  dir: null
+  name: scheduler_id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/group.yml b/spec/rtems/task/if/group.yml
new file mode 100644
index 0000000..b999317
--- /dev/null
+++ b/spec/rtems/task/if/group.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Task Manager provides a comprehensive set of directives to create,
+  delete, and administer tasks.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicTasks
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Task Manager
+text: |
+  The Classic API shall provide an interface to the Task Manager.
+type: interface
diff --git a/spec/rtems/task/if/header.yml b/spec/rtems/task/if/header.yml
new file mode 100644
index 0000000..3cf3b45
--- /dev/null
+++ b/spec/rtems/task/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the main parts of the Tasks Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/tasks.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/task/if/ident.yml b/spec/rtems/task/if/ident.yml
new file mode 100644
index 0000000..1bf657c
--- /dev/null
+++ b/spec/rtems/task/if/ident.yml
@@ -0,0 +1,85 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a task object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    - ${../../type/if/id:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the task identifier associated with the task name
+  specified in ``${.:/params[0]/name}``.
+
+  A task may obtain its own identifier by specifying ${self-define:/name} for
+  the name.
+
+  The node to search is specified in ``${.:/params[1]/name}``.  It shall be
+
+  * a valid node number,
+
+  * the constant ${../../object/if/search-all-nodes:/name} to search in all nodes,
+
+  * the constant ${../../object/if/search-local-node:/name} to search in the local
+    node only, or
+
+  * the constant ${../../object/if/search-other-nodes:/name} to search in all nodes
+    except the local node.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_ident
+notes: |
+  If the task name is not unique, then the task identifier will match the first
+  task with that name in the search order.  However, this task identifier is
+  not guaranteed to correspond to the desired task.  The task identifier is
+  used with other task related directives to access the task.
+
+  If node is ${../../object/if/search-all-nodes:/name}, all nodes are searched with
+  the local node being searched first.  All other nodes are searched with the
+  lowest numbered node searched first.
+
+  If node is a valid node number which does not represent the local node, then
+  only the tasks exported by the designated node are searched.
+
+  This directive does not generate activity on remote nodes.  It accesses only
+  the local copy of the global object table.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: is the node or node set to search for a matching object.
+  dir: null
+  name: node
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      There was no object with the specified name on the specified nodes.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      In multiprocessing configurations, the specified node was invalid.
+    value: ${../../status/if/invalid-node:/name}
+type: interface
diff --git a/spec/rtems/task/if/initialization-table.yml b/spec/rtems/task/if/initialization-table.yml
new file mode 100644
index 0000000..71f463e
--- /dev/null
+++ b/spec/rtems/task/if/initialization-table.yml
@@ -0,0 +1,67 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+- default:
+    brief: '%'
+    definition: ${../../type/if/name:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: name
+  variants: []
+- default:
+    brief: '%'
+    definition: ${/c/if/size_t:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: stack_size
+  variants: []
+- default:
+    brief: '%'
+    definition: ${priority:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: initial_priority
+  variants: []
+- default:
+    brief: '%'
+    definition: ${../../attr/if/attribute:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: attribute_set
+  variants: []
+- default:
+    brief: '%'
+    definition: ${entry:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: entry_point
+  variants: []
+- default:
+    brief: '%'
+    definition: ${../../mode/if/mode:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: mode_set
+  variants: []
+- default:
+    brief: '%'
+    definition: ${argument:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: argument
+  variants: []
+definition-kind: typedef-only
+description: null
+enabled-by: true
+interface-type: struct
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_initialization_tasks_table
+notes: null
+type: interface
diff --git a/spec/rtems/task/if/is-suspended.yml b/spec/rtems/task/if/is-suspended.yml
new file mode 100644
index 0000000..67f1d73
--- /dev/null
+++ b/spec/rtems/task/if/is-suspended.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_is_suspended
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/tasks/iterate.yml b/spec/rtems/task/if/iterate.yml
similarity index 100%
rename from spec/if/rtems/tasks/iterate.yml
rename to spec/rtems/task/if/iterate.yml
diff --git a/spec/rtems/task/if/maximum-priority.yml b/spec/rtems/task/if/maximum-priority.yml
new file mode 100644
index 0000000..9f96e3f
--- /dev/null
+++ b/spec/rtems/task/if/maximum-priority.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/if/maximum-priority:/name}()
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_MAXIMUM_PRIORITY
+notes: null
+type: interface
diff --git a/spec/if/rtems/tasks/minimum-priority.yml b/spec/rtems/task/if/minimum-priority.yml
similarity index 100%
rename from spec/if/rtems/tasks/minimum-priority.yml
rename to spec/rtems/task/if/minimum-priority.yml
diff --git a/spec/rtems/task/if/minimum-stack-size.yml b/spec/rtems/task/if/minimum-stack-size.yml
new file mode 100644
index 0000000..216100d
--- /dev/null
+++ b/spec/rtems/task/if/minimum-stack-size.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/stack/if/minimum-size:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_MINIMUM_STACK_SIZE
+notes: null
+type: interface
diff --git a/spec/rtems/task/if/mode.yml b/spec/rtems/task/if/mode.yml
new file mode 100644
index 0000000..181d686
--- /dev/null
+++ b/spec/rtems/task/if/mode.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../mode/if/mode:/name} ${.:/params[0]/name}
+    - ${../../mode/if/mode:/name} ${.:/params[1]/name}
+    - ${../../mode/if/mode:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_mode
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: mode_set
+- description: '%'
+  dir: null
+  name: mask
+- description: '%'
+  dir: null
+  name: previous_mode_set
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/tasks/no-priority.yml b/spec/rtems/task/if/no-priority.yml
similarity index 100%
rename from spec/if/rtems/tasks/no-priority.yml
rename to spec/rtems/task/if/no-priority.yml
diff --git a/spec/rtems/task/if/priority.yml b/spec/rtems/task/if/priority.yml
new file mode 100644
index 0000000..2f1e7ef
--- /dev/null
+++ b/spec/rtems/task/if/priority.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/uint32_t:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_priority
+notes: null
+type: interface
diff --git a/spec/rtems/task/if/restart.yml b/spec/rtems/task/if/restart.yml
new file mode 100644
index 0000000..08642b0
--- /dev/null
+++ b/spec/rtems/task/if/restart.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${argument:/name} ${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_restart
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: argument
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/resume.yml b/spec/rtems/task/if/resume.yml
new file mode 100644
index 0000000..8b24c3e
--- /dev/null
+++ b/spec/rtems/task/if/resume.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_resume
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/self-define.yml b/spec/rtems/task/if/self-define.yml
new file mode 100644
index 0000000..0b6ad3d
--- /dev/null
+++ b/spec/rtems/task/if/self-define.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/object/if/id-of-self:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_SELF
+notes: null
+type: interface
diff --git a/spec/rtems/task/if/self.yml b/spec/rtems/task/if/self.yml
new file mode 100644
index 0000000..e213058
--- /dev/null
+++ b/spec/rtems/task/if/self.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${../../type/if/id:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_self
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/set-affinity.yml b/spec/rtems/task/if/set-affinity.yml
new file mode 100644
index 0000000..e97621d
--- /dev/null
+++ b/spec/rtems/task/if/set-affinity.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    - const ${/c/if/cpu_set_t:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_set_affinity
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: cpusetsize
+- description: '%'
+  dir: null
+  name: cpuset
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/set-priority.yml b/spec/rtems/task/if/set-priority.yml
new file mode 100644
index 0000000..3150478
--- /dev/null
+++ b/spec/rtems/task/if/set-priority.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${priority:/name} ${.:/params[1]/name}
+    - ${priority:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_set_priority
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: new_priority
+- description: '%'
+  dir: null
+  name: old_priority
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/set-scheduler.yml b/spec/rtems/task/if/set-scheduler.yml
new file mode 100644
index 0000000..cbfb45d
--- /dev/null
+++ b/spec/rtems/task/if/set-scheduler.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} ${.:/params[1]/name}
+    - ${priority:/name} ${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_set_scheduler
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: task_id
+- description: '%'
+  dir: null
+  name: scheduler_id
+- description: '%'
+  dir: null
+  name: priority
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/start.yml b/spec/rtems/task/if/start.yml
new file mode 100644
index 0000000..54d757f
--- /dev/null
+++ b/spec/rtems/task/if/start.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${entry:/name} ${.:/params[1]/name}
+    - ${argument:/name} ${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_start
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: entry_point
+- description: '%'
+  dir: null
+  name: argument
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/storage-alignment.yml b/spec/rtems/task/if/storage-alignment.yml
new file mode 100644
index 0000000..d6ae359
--- /dev/null
+++ b/spec/rtems/task/if/storage-alignment.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This constant defines the recommended alignment of a task storage area in
+  bytes.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/cpu/if/heap-alignment:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_TASK_STORAGE_ALIGNMENT
+notes: |
+  Use it with ${../../basedefs/if/aligned:/name} to define the alignment of a
+  statically allocated task storage area.
+type: interface
diff --git a/spec/rtems/task/if/storage-size.yml b/spec/rtems/task/if/storage-size.yml
new file mode 100644
index 0000000..5bc137a
--- /dev/null
+++ b/spec/rtems/task/if/storage-size.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the recommended task storage area size for the specified size and task
+  attributes.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    ( ( ${.:/params[0]/name} ) +
+      ( ( ( ${.:/params[1]/name} ) & ${../../attr/if/floating-point:/name} ) != 0 ?
+        ${/score/context/if/fp-size:/name} : 0 ) )
+  variants:
+  - definition: |
+      ( ( ${.:/params[0]/name} ) + ${/score/context/if/fp-size:/name} )
+    enabled-by:
+    - ${/score/cpu/if/all-tasks-are-fp:/name} == ${../../basedefs/if/true:/name}
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_TASK_STORAGE_SIZE
+notes: null
+params:
+- description: |
+    is the size dedicated to the task stack and thread-local storage in bytes.
+  dir: null
+  name: _size
+- description: |
+    is the attribute set of the task using the storage area.
+  dir: null
+  name: _attributes
+return:
+  return: |
+    The recommended task storage area size calculated from the input parameters
+    is returned.
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/suspend.yml b/spec/rtems/task/if/suspend.yml
new file mode 100644
index 0000000..06d1521
--- /dev/null
+++ b/spec/rtems/task/if/suspend.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_suspend
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/tasks/task.yml b/spec/rtems/task/if/task.yml
similarity index 100%
rename from spec/if/rtems/tasks/task.yml
rename to spec/rtems/task/if/task.yml
diff --git a/spec/if/rtems/tasks/tcb.yml b/spec/rtems/task/if/tcb.yml
similarity index 100%
rename from spec/if/rtems/tasks/tcb.yml
rename to spec/rtems/task/if/tcb.yml
diff --git a/spec/rtems/task/if/visitor.yml b/spec/rtems/task/if/visitor.yml
new file mode 100644
index 0000000..3d5b3aa
--- /dev/null
+++ b/spec/rtems/task/if/visitor.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/c/if/bool:/name}( *${.:/name} )( ${tcb:/name} *, void * )
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_visitor
+notes: null
+type: interface
diff --git a/spec/rtems/task/if/wake-after.yml b/spec/rtems/task/if/wake-after.yml
new file mode 100644
index 0000000..10a83a3
--- /dev/null
+++ b/spec/rtems/task/if/wake-after.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/interval:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_wake_after
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: ticks
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/wake-when.yml b/spec/rtems/task/if/wake-when.yml
new file mode 100644
index 0000000..3eb88c6
--- /dev/null
+++ b/spec/rtems/task/if/wake-when.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/time-of-day:/name} *${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_wake_when
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: time_buffer
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/task/if/yield-processor.yml b/spec/rtems/task/if/yield-processor.yml
new file mode 100644
index 0000000..ab5aaaf
--- /dev/null
+++ b/spec/rtems/task/if/yield-processor.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/watchdog/if/no-timeout:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_YIELD_PROCESSOR
+notes: null
+type: interface
diff --git a/spec/rtems/task/req/construct-errors.yml b/spec/rtems/task/req/construct-errors.yml
new file mode 100644
index 0000000..e912671
--- /dev/null
+++ b/spec/rtems/task/req/construct-errors.yml
@@ -0,0 +1,499 @@
+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
+functional-type: action
+links:
+- role: interface-function
+  uid: /rtems/task/if/construct
+post-conditions:
+- name: Status
+  states:
+  - name: Ok
+    test-code: |
+      T_rsc_success( ctx->status );
+      T_eq_ptr( ctx->id, &ctx->id_value );
+      T_ne_u32( ctx->id_value, 0xffffffff );
+
+      sc = rtems_task_delete( ctx->id_value );
+      T_rsc_success( sc );
+    text: |
+      The status shall be RTEMS_SUCCESSFUL.  The value of the object identifier
+      referenced by the id parameter shall identify the constructed task.
+  - name: InvAddress
+    test-code: |
+      T_rsc( ctx->status, RTEMS_INVALID_ADDRESS );
+      T_null( ctx->id );
+      T_eq_u32( ctx->id_value, 0xffffffff );
+    text: |
+      The status shall be RTEMS_INVALID_ADDRESS.
+  - name: InvName
+    test-code: |
+      T_rsc( ctx->status, RTEMS_INVALID_NAME );
+      T_eq_u32( ctx->id_value, 0xffffffff );
+    text: |
+      The status shall be RTEMS_INVALID_NAME.  If the id parameter is not NULL,
+      then the value of the object identifier referenced by the id parameter
+      shall be unchanged.
+  - name: InvPrio
+    test-code: |
+      T_rsc( ctx->status, RTEMS_INVALID_PRIORITY );
+      T_eq_u32( ctx->id_value, 0xffffffff );
+    text: |
+      The status shall be RTEMS_INVALID_PRIORITY.  If the id parameter is not
+      NULL, then the value of the object identifier referenced by the id
+      parameter shall be unchanged.
+  - name: InvSize
+    test-code: |
+      T_rsc( ctx->status, RTEMS_INVALID_SIZE );
+      T_eq_u32( ctx->id_value, 0xffffffff );
+    text: |
+      The status shall be RTEMS_INVALID_SIZE.  If the id parameter is not NULL,
+      then the value of the object identifier referenced by the id parameter
+      shall be unchanged.
+  - name: TooMany
+    test-code: |
+      T_rsc( ctx->status, RTEMS_TOO_MANY );
+      T_eq_u32( ctx->id_value, 0xffffffff );
+    text: |
+      The status shall be RTEMS_TOO_MANY.  If the id parameter is not NULL,
+      then the value of the object identifier referenced by the id parameter
+      shall be unchanged.
+  - name: Unsatisfied
+    test-code: |
+      T_rsc( ctx->status, RTEMS_UNSATISFIED  );
+      T_eq_u32( ctx->id_value, 0xffffffff );
+    text: |
+      The status shall be RTEMS_UNSATISFIED.  If the id parameter is not NULL,
+      then the value of the object identifier referenced by the id parameter
+      shall be unchanged.
+  test-epilogue: null
+  test-prologue: |
+    rtems_status_code sc;
+pre-conditions:
+- name: Id
+  states:
+  - name: Id
+    test-code: |
+      ctx->id = &ctx->id_value;
+    text: |
+      The id parameter shall reference an object identifier value.
+  - name: 'Null'
+    test-code: |
+      ctx->id = NULL;
+    text: |
+      The id parameter shall be NULL.
+  test-epilogue: null
+  test-prologue: null
+- name: Name
+  states:
+  - name: Valid
+    test-code: |
+      ctx->config.name = rtems_build_name( 'N', 'A', 'M', 'E' );
+    text: |
+      The name of the task configuration shall be valid.
+  - name: Inv
+    test-code: |
+      ctx->config.name = 0;
+    text: |
+      The name of the task configuration shall be invalid.
+  test-epilogue: null
+  test-prologue: null
+- name: Prio
+  states:
+  - name: Valid
+    test-code: |
+      ctx->config.initial_priority = 254;
+    text: |
+      The initial priority of the task configuration shall be valid.
+  - name: Zero
+    test-code: |
+      ctx->config.initial_priority = 0;
+    text: |
+      The initial priority of the task configuration shall be zero.
+  - name: Inv
+    test-code: |
+      ctx->config.initial_priority = 0xffffffff;
+    text: |
+      The initial priority of the task configuration shall be invalid.
+  test-epilogue: null
+  test-prologue: null
+- name: Tasks
+  states:
+  - name: Avail
+    test-code: |
+      /* Nothing to do */
+    text: |
+      There shall be at least one inactive task object available.
+  - name: None
+    test-code: |
+      create_extension_status = ctx->create_extension_status;
+      ctx->create_extension_status = true;
+
+      while ( true ) {
+        rtems_status_code sc;
+        rtems_id id;
+
+        sc = rtems_task_construct( &valid_task_config, &id );
+
+        if ( sc == RTEMS_SUCCESSFUL ) {
+          Objects_Control           *obj;
+          const Objects_Information *info;
+
+          info = _Objects_Get_information_id( id );
+          T_quiet_assert_not_null( info );
+          obj = _Objects_Get_no_protection( id, info );
+          T_quiet_assert_not_null( obj );
+          _Chain_Append_unprotected( &ctx->tasks, &obj->Node );
+        } else {
+          T_quiet_rsc( sc, RTEMS_TOO_MANY );
+          break;
+        }
+      }
+
+      ctx->create_extension_status = create_extension_status;
+    text: |
+      There shall be no inactive task object available.
+  test-epilogue: null
+  test-prologue: |
+    bool create_extension_status;
+- name: TLS
+  states:
+  - name: Enough
+    test-code: |
+      ctx->config.maximum_thread_local_storage_size = MAX_TLS_SIZE;
+    text: |
+      The maximum thread-local storage size of the task configuration shall be
+      greater than or equal to the thread-local storage size.
+  - name: Small
+    test-code: |
+      ctx->config.maximum_thread_local_storage_size = 0;
+    text: |
+      The maximum thread-local storage size of the task configuration shall be
+      less than the thread-local storage size.
+  test-epilogue: null
+  test-prologue: null
+- name: Stack
+  states:
+  - name: Enough
+    test-code: |
+      ctx->stack_size = RTEMS_MINIMUM_STACK_SIZE;
+    text: |
+      The task stack size of the task configuration shall be greater than or
+      equal to the configured minimum size.
+  - name: Small
+    test-code: |
+      ctx->stack_size = 0;
+    text: |
+      The task stack size of the task configuration shall be less than to the
+      configured minimum size.
+  test-epilogue: null
+  test-prologue: null
+- name: Ext
+  states:
+  - name: Ok
+    test-code: |
+      ctx->create_extension_status = true;
+    text: |
+      None of the task create extensions shall fail.
+  - name: Err
+    test-code: |
+      ctx->create_extension_status = false;
+    text: |
+      At least one of the task create extensions shall fail.
+  test-epilogue: null
+  test-prologue: null
+- name: Preempt
+  states:
+  - name: 'Yes'
+    test-code: |
+      ctx->config.initial_modes &= ~RTEMS_PREEMPT_MASK;
+      ctx->config.initial_modes |= RTEMS_PREEMPT;
+    text: |
+      The preemptible mode in the initial modes of the task configuration shall
+      be set to preemptible.
+  - name: 'No'
+    test-code: |
+      ctx->config.initial_modes &= ~RTEMS_PREEMPT_MASK;
+      ctx->config.initial_modes |= RTEMS_NO_PREEMPT;
+    text: |
+      The preemptible mode in the initial modes of the task configuration shall
+      be set to non-preemptible.
+  test-epilogue: null
+  test-prologue: null
+rationale: null
+references: []
+requirement-type: functional
+skip-reasons: {}
+test-action: |
+  ctx->config.storage_size = RTEMS_TASK_STORAGE_SIZE(
+    ctx->config.maximum_thread_local_storage_size + ctx->stack_size,
+    ctx->config.attributes
+  );
+  ctx->status = rtems_task_construct( &ctx->config, ctx->id );
+test-brief: null
+test-cleanup: |
+  Chain_Node *node;
+
+  while ( ( node = _Chain_Get_unprotected( &ctx->tasks ) ) ) {
+    Objects_Control   *obj;
+    rtems_status_code  sc;
+
+    obj = (Objects_Control *) node;
+    sc = rtems_task_delete( obj->id );
+    T_quiet_rsc_success( sc );
+  }
+test-context:
+- brief: null
+  description: null
+  member: rtems_status_code status
+- brief: null
+  description: null
+  member: rtems_task_config config
+- brief: null
+  description: null
+  member: rtems_id *id
+- brief: null
+  description: null
+  member: rtems_id id_value
+- brief: null
+  description: null
+  member: bool create_extension_status
+- brief: null
+  description: null
+  member: size_t stack_size
+- brief: null
+  description: null
+  member: rtems_id extension_id
+- brief: null
+  description: null
+  member: Chain_Control tasks
+test-context-support: null
+test-description: null
+test-header: null
+test-includes:
+- rtems.h
+- rtems/score/chainimpl.h
+- rtems/score/objectimpl.h
+- string.h
+test-local-includes: []
+test-prepare: |
+  ctx->id_value = 0xffffffff;
+  memset( &ctx->config, 0, sizeof( ctx->config ) );
+test-setup:
+  brief: null
+  code: |
+    rtems_status_code sc;
+    int var;
+
+    var = tls_variable;
+    RTEMS_OBFUSCATE_VARIABLE( var );
+    tls_variable = var;
+
+    sc = rtems_extension_create(
+      rtems_build_name( 'T', 'C', 'F', 'C' ),
+      &extensions,
+      &ctx->extension_id
+    );
+    T_rsc_success( sc );
+
+    _Chain_Initialize_empty( &ctx->tasks );
+  description: null
+test-stop: null
+test-support: |
+  static _Thread_local int tls_variable;
+
+  #define MAX_TLS_SIZE RTEMS_ALIGN_UP( 128, RTEMS_TASK_STORAGE_ALIGNMENT )
+
+  RTEMS_ALIGNED( RTEMS_TASK_STORAGE_ALIGNMENT ) static char task_storage[
+    RTEMS_TASK_STORAGE_SIZE(
+      MAX_TLS_SIZE + RTEMS_MINIMUM_STACK_SIZE,
+      RTEMS_FLOATING_POINT
+    )
+  ];
+
+  static const rtems_task_config valid_task_config = {
+    .name = rtems_build_name( 'T', 'A', 'S', 'K' ),
+    .initial_priority = 1,
+    .storage_area = task_storage,
+    .storage_size = sizeof( task_storage ),
+    .maximum_thread_local_storage_size = MAX_TLS_SIZE,
+    .initial_modes = RTEMS_DEFAULT_MODES,
+    .attributes = RTEMS_DEFAULT_MODES
+  };
+
+  static bool ThreadCreate( rtems_tcb *executing, rtems_tcb *created )
+  {
+    (void) executing;
+    (void) created;
+
+    return RtemsTaskReqConstructErrors_Instance.create_extension_status;
+  }
+
+  static const rtems_extensions_table extensions = {
+    .thread_create = ThreadCreate
+  };
+test-target: testsuites/validation/tc-task-construct-errors.c
+test-teardown:
+  brief: null
+  code: |
+    rtems_status_code sc;
+
+    sc = rtems_extension_delete( ctx->extension_id );
+    T_rsc_success( sc );
+  description: null
+text: ${.:text-template}
+transition-map:
+- enabled-by: true
+  post-conditions:
+    Status: Ok
+  pre-conditions:
+    Id:
+    - Id
+    Name:
+    - Valid
+    Prio:
+    - Valid
+    Tasks:
+    - Avail
+    TLS:
+    - Enough
+    Stack:
+    - Enough
+    Ext:
+    - Ok
+    Preempt: all
+- enabled-by: true
+  post-conditions:
+    Status: InvAddress
+  pre-conditions:
+    Id:
+    - 'Null'
+    Name: all
+    Prio: all
+    Tasks: all
+    TLS: all
+    Stack: all
+    Ext: all
+    Preempt: all
+- enabled-by: true
+  post-conditions:
+    Status: InvName
+  pre-conditions:
+    Id:
+    - Id
+    Name:
+    - Inv
+    Prio: all
+    Tasks: all
+    TLS: all
+    Stack: all
+    Ext: all
+    Preempt: all
+- enabled-by: true
+  post-conditions:
+    Status: InvPrio
+  pre-conditions:
+    Id:
+    - Id
+    Name:
+    - Valid
+    Prio:
+    - Zero
+    - Inv
+    Tasks: all
+    TLS: all
+    Stack: all
+    Ext: all
+    Preempt: all
+- enabled-by: true
+  post-conditions:
+    Status: TooMany
+  pre-conditions:
+    Id:
+    - Id
+    Name:
+    - Valid
+    Prio:
+    - Valid
+    Tasks:
+    - None
+    TLS: all
+    Stack: all
+    Ext: all
+    Preempt: all
+- enabled-by: true
+  post-conditions:
+    Status: InvSize
+  pre-conditions:
+    Id:
+    - Id
+    Name:
+    - Valid
+    Prio:
+    - Valid
+    Tasks:
+    - Avail
+    TLS:
+    - Small
+    Stack: all
+    Ext: all
+    Preempt: all
+- enabled-by: true
+  post-conditions:
+    Status: InvSize
+  pre-conditions:
+    Id:
+    - Id
+    Name:
+    - Valid
+    Prio:
+    - Valid
+    Tasks:
+    - Avail
+    TLS:
+    - Enough
+    Stack:
+    - Small
+    Ext: all
+    Preempt: all
+- enabled-by: true
+  post-conditions:
+    Status: Unsatisfied
+  pre-conditions:
+    Id:
+    - Id
+    Name:
+    - Valid
+    Prio:
+    - Valid
+    Tasks:
+    - Avail
+    TLS:
+    - Enough
+    Stack:
+    - Enough
+    Ext:
+    - Err
+    Preempt: all
+- enabled-by: RTEMS_SMP
+  post-conditions:
+    Status: Unsatisfied
+  pre-conditions:
+    Id:
+    - Id
+    Name:
+    - Valid
+    Prio:
+    - Valid
+    Tasks:
+    - Avail
+    TLS:
+    - Enough
+    Stack:
+    - Enough
+    Ext:
+    - Ok
+    Preempt:
+    - 'No'
+type: requirement
diff --git a/spec/rtems/task/req/ident.yml b/spec/rtems/task/req/ident.yml
new file mode 100644
index 0000000..0fbfd0d
--- /dev/null
+++ b/spec/rtems/task/req/ident.yml
@@ -0,0 +1,123 @@
+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
+functional-type: action
+links:
+- role: interface-function
+  uid: /rtems/task/if/ident
+post-conditions:
+- name: Post
+  states:
+  - name: OkAndSelfId
+    test-code: |
+      T_rsc(ctx->status, RTEMS_SUCCESSFUL);
+      T_eq_ptr(ctx->id, &ctx->id_value);
+      T_eq_u32(ctx->id_value, rtems_task_self());
+    text: |
+      The status shall be RTEMS_SUCCESSFUL.  The value of the object identifier
+      referenced by the id parameter shall be the identifier of the executing
+      thread.
+  - name: Generic
+    test-code: |
+      /* Checks performed by ${../req/ident:/test-run}() */
+    text: |
+      The post-condition status shall be specified by ${../req/ident}.
+  test-epilogue: null
+  test-prologue: null
+pre-conditions:
+- name: Pre
+  states:
+  - name: Self
+    test-code: |
+      ctx->id_value = 0xffffffff;
+      ctx->id = &ctx->id_value;
+    text: |
+      The name parameter shall be RTEMS_SELF.
+  - name: Generic
+    test-code: |
+      ctx->id = NULL;
+      /* Preparation performed by ${../req/ident:/test-run}() */
+    text: |
+      The pre-condition status shall be specified by ${../req/ident}.
+  test-epilogue: null
+  test-prologue: null
+rationale: null
+references: []
+requirement-type: functional
+skip-reasons: {}
+test-action: |
+  if ( ctx->id != NULL ) {
+    ctx->status = rtems_task_ident( RTEMS_SELF, 0xdeadbeef, ctx->id );
+  } else {
+    ${../req/ident:/test-run}(
+      ctx->id_local_object,
+      ClassicTaskIdentAction
+    );
+  }
+test-brief: null
+test-cleanup: null
+test-context:
+- brief: null
+  description: null
+  member: rtems_status_code status
+- brief: null
+  description: null
+  member: rtems_id *id
+- brief: null
+  description: null
+  member: rtems_id id_value
+- brief: null
+  description: null
+  member: rtems_id id_local_object
+test-context-support: null
+test-description: null
+test-header: null
+test-includes: []
+test-local-includes:
+- tr-object-ident.h
+test-prepare: null
+test-setup:
+  brief: null
+  code: |
+    static char task_storage[ RTEMS_MINIMUM_STACK_SIZE ];
+    static const rtems_task_config task_config = {
+      .name = ClassicObjectIdentName,
+      .initial_priority = 1,
+      .storage_area = task_storage,
+      .storage_size = sizeof( task_storage ),
+      .initial_modes = RTEMS_DEFAULT_MODES,
+      .attributes = RTEMS_DEFAULT_ATTRIBUTES
+    };
+    rtems_status_code sc;
+
+    sc = rtems_task_build( &task_config, &ctx->id_local_object );
+    T_assert_rsc_success( sc );
+  description: null
+test-stop: null
+test-support: |
+  static rtems_status_code ClassicTaskIdentAction(
+    rtems_name name,
+    uint32_t   node,
+    rtems_id  *id
+  )
+  {
+    return rtems_task_ident( name, node, id );
+  }
+test-target: testsuites/validation/tc-task-ident.c
+test-teardown: null
+text: ${.:text-template}
+transition-map:
+- enabled-by: true
+  post-conditions:
+    Post: OkAndSelfId
+  pre-conditions:
+    Pre:
+    - Self
+- enabled-by: true
+  post-conditions:
+    Post: Generic
+  pre-conditions:
+    Pre:
+    - Generic
+type: requirement
diff --git a/spec/rtems/timer/if/cancel.yml b/spec/rtems/timer/if/cancel.yml
new file mode 100644
index 0000000..0d34be4
--- /dev/null
+++ b/spec/rtems/timer/if/cancel.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_cancel
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/timer/class-bit-not-dormant.yml b/spec/rtems/timer/if/class-bit-not-dormant.yml
similarity index 100%
rename from spec/if/rtems/timer/class-bit-not-dormant.yml
rename to spec/rtems/timer/if/class-bit-not-dormant.yml
diff --git a/spec/if/rtems/timer/class-bit-on-task.yml b/spec/rtems/timer/if/class-bit-on-task.yml
similarity index 100%
rename from spec/if/rtems/timer/class-bit-on-task.yml
rename to spec/rtems/timer/if/class-bit-on-task.yml
diff --git a/spec/if/rtems/timer/class-bit-time-of-day.yml b/spec/rtems/timer/if/class-bit-time-of-day.yml
similarity index 100%
rename from spec/if/rtems/timer/class-bit-time-of-day.yml
rename to spec/rtems/timer/if/class-bit-time-of-day.yml
diff --git a/spec/if/rtems/timer/classes.yml b/spec/rtems/timer/if/classes.yml
similarity index 100%
rename from spec/if/rtems/timer/classes.yml
rename to spec/rtems/timer/if/classes.yml
diff --git a/spec/rtems/timer/if/create.yml b/spec/rtems/timer/if/create.yml
new file mode 100644
index 0000000..eefb8ea
--- /dev/null
+++ b/spec/rtems/timer/if/create.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_create
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: name
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/timer/if/delete.yml b/spec/rtems/timer/if/delete.yml
new file mode 100644
index 0000000..e8cbeda
--- /dev/null
+++ b/spec/rtems/timer/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/timer/dormant.yml b/spec/rtems/timer/if/dormant.yml
similarity index 100%
rename from spec/if/rtems/timer/dormant.yml
rename to spec/rtems/timer/if/dormant.yml
diff --git a/spec/rtems/timer/if/fire-after.yml b/spec/rtems/timer/if/fire-after.yml
new file mode 100644
index 0000000..fba0106
--- /dev/null
+++ b/spec/rtems/timer/if/fire-after.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/interval:/name} ${.:/params[1]/name}
+    - ${service-routine-entry:/name} ${.:/params[2]/name}
+    - void *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_fire_after
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: ticks
+- description: '%'
+  dir: null
+  name: routine
+- description: '%'
+  dir: null
+  name: user_data
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/timer/if/fire-when.yml b/spec/rtems/timer/if/fire-when.yml
new file mode 100644
index 0000000..d654ba6
--- /dev/null
+++ b/spec/rtems/timer/if/fire-when.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/time-of-day:/name} *${.:/params[1]/name}
+    - ${service-routine-entry:/name} ${.:/params[2]/name}
+    - void *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_fire_when
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: wall_time
+- description: '%'
+  dir: null
+  name: routine
+- description: '%'
+  dir: null
+  name: user_data
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/timer/if/get-information.yml b/spec/rtems/timer/if/get-information.yml
new file mode 100644
index 0000000..8568c49
--- /dev/null
+++ b/spec/rtems/timer/if/get-information.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${information:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_get_information
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: the_info
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/timer/if/group.yml b/spec/rtems/timer/if/group.yml
new file mode 100644
index 0000000..b805e1f
--- /dev/null
+++ b/spec/rtems/timer/if/group.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The Timer Manager provides support for timer facilities.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicTimer
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Timer Manager
+text: |
+  The Classic API shall provide an interface to the Timer Manager.
+type: interface
diff --git a/spec/rtems/timer/if/header.yml b/spec/rtems/timer/if/header.yml
new file mode 100644
index 0000000..ed157f2
--- /dev/null
+++ b/spec/rtems/timer/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the Timer Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/timer.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/timer/if/ident.yml b/spec/rtems/timer/if/ident.yml
new file mode 100644
index 0000000..5796c89
--- /dev/null
+++ b/spec/rtems/timer/if/ident.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies a timer object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the timer identifier associated with the timer name
+  specified in ``${.:/params[0]/name}``.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_ident
+notes: |
+  If the timer name is not unique, then the timer identifier will match the
+  first timer with that name in the search order.  However, this timer
+  identifier is not guaranteed to correspond to the desired timer.  The timer
+  identifier is used with other timer related directives to access the timer.
+
+  The objects are searched from lowest to the highest index.  Only the local
+  node is searched.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the local node.
+    value: ${../../status/if/invalid-name:/name}
+type: interface
diff --git a/spec/rtems/timer/if/information.yml b/spec/rtems/timer/if/information.yml
new file mode 100644
index 0000000..69db166
--- /dev/null
+++ b/spec/rtems/timer/if/information.yml
@@ -0,0 +1,50 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+- default:
+    brief: |
+      This member is
+    definition: ${classes:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: the_class
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/score/watchdog/if/interval:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: initial
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/score/watchdog/if/interval:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: start_time
+  variants: []
+- default:
+    brief: |
+      This member is
+    definition: ${/score/watchdog/if/interval:/name} ${.:name}
+    description: '%'
+    kind: member
+    name: stop_time
+  variants: []
+definition-kind: typedef-only
+description: null
+enabled-by: true
+interface-type: struct
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_information
+notes: null
+type: interface
diff --git a/spec/rtems/timer/if/initiate-server.yml b/spec/rtems/timer/if/initiate-server.yml
new file mode 100644
index 0000000..3d5512d
--- /dev/null
+++ b/spec/rtems/timer/if/initiate-server.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../task/if/priority:/name} ${.:/params[0]/name}
+    - ${/c/if/size_t:/name} ${.:/params[1]/name}
+    - ${../../attr/if/attribute:/name} ${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_initiate_server
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: priority
+- description: '%'
+  dir: null
+  name: stack_size
+- description: '%'
+  dir: null
+  name: attribute_set
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/rtems/timer/interval-on-task.yml b/spec/rtems/timer/if/interval-on-task.yml
similarity index 100%
rename from spec/if/rtems/timer/interval-on-task.yml
rename to spec/rtems/timer/if/interval-on-task.yml
diff --git a/spec/if/rtems/timer/interval.yml b/spec/rtems/timer/if/interval.yml
similarity index 100%
rename from spec/if/rtems/timer/interval.yml
rename to spec/rtems/timer/if/interval.yml
diff --git a/spec/rtems/timer/if/reset.yml b/spec/rtems/timer/if/reset.yml
new file mode 100644
index 0000000..1abd2c1
--- /dev/null
+++ b/spec/rtems/timer/if/reset.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_reset
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/timer/if/server-default-priority.yml b/spec/rtems/timer/if/server-default-priority.yml
new file mode 100644
index 0000000..896d0db
--- /dev/null
+++ b/spec/rtems/timer/if/server-default-priority.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ( (${../../task/if/priority:/name}) -1 )
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_TIMER_SERVER_DEFAULT_PRIORITY
+notes: null
+type: interface
diff --git a/spec/rtems/timer/if/server-fire-after.yml b/spec/rtems/timer/if/server-fire-after.yml
new file mode 100644
index 0000000..20f6704
--- /dev/null
+++ b/spec/rtems/timer/if/server-fire-after.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/interval:/name} ${.:/params[1]/name}
+    - ${service-routine-entry:/name} ${.:/params[2]/name}
+    - void *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_server_fire_after
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: ticks
+- description: '%'
+  dir: null
+  name: routine
+- description: '%'
+  dir: null
+  name: user_data
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/timer/if/server-fire-when.yml b/spec/rtems/timer/if/server-fire-when.yml
new file mode 100644
index 0000000..fd7b20c
--- /dev/null
+++ b/spec/rtems/timer/if/server-fire-when.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    - ${../../type/if/time-of-day:/name} *${.:/params[1]/name}
+    - ${service-routine-entry:/name} ${.:/params[2]/name}
+    - void *${.:/params[3]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_server_fire_when
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+- description: '%'
+  dir: null
+  name: wall_time
+- description: '%'
+  dir: null
+  name: routine
+- description: '%'
+  dir: null
+  name: user_data
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/timer/if/service-routine-entry.yml b/spec/rtems/timer/if/service-routine-entry.yml
new file mode 100644
index 0000000..d8f767e
--- /dev/null
+++ b/spec/rtems/timer/if/service-routine-entry.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ${service-routine:/name} ( *${.:/name} )( ${../../type/if/id:/name}, void * )
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_timer_service_routine_entry
+notes: null
+type: interface
diff --git a/spec/if/rtems/timer/service-routine.yml b/spec/rtems/timer/if/service-routine.yml
similarity index 100%
rename from spec/if/rtems/timer/service-routine.yml
rename to spec/rtems/timer/if/service-routine.yml
diff --git a/spec/if/rtems/timer/time-of-day-on-task.yml b/spec/rtems/timer/if/time-of-day-on-task.yml
similarity index 100%
rename from spec/if/rtems/timer/time-of-day-on-task.yml
rename to spec/rtems/timer/if/time-of-day-on-task.yml
diff --git a/spec/if/rtems/timer/time-of-day.yml b/spec/rtems/timer/if/time-of-day.yml
similarity index 100%
rename from spec/if/rtems/timer/time-of-day.yml
rename to spec/rtems/timer/if/time-of-day.yml
diff --git a/spec/rtems/timer/req/ident.yml b/spec/rtems/timer/req/ident.yml
new file mode 100644
index 0000000..6acdaec
--- /dev/null
+++ b/spec/rtems/timer/req/ident.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/ident
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/ident:/name} directive shall identify an Classic API
+  timer class object by its name as specified by ${../req/ident-local}.
+type: requirement
diff --git a/spec/rtems/timer/val/ident.yml b/spec/rtems/timer/val/ident.yml
new file mode 100644
index 0000000..dd174cd
--- /dev/null
+++ b/spec/rtems/timer/val/ident.yml
@@ -0,0 +1,45 @@
+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:
+- role: validation
+  uid: ../req/ident
+test-actions:
+- action: |
+    ${../../req/ident-local:/test-run}(
+      id_local_object,
+      ClassicTimerIdentAction
+    );
+  checks: []
+  description: |
+    Run the generic object identification tests for Classic API timer class
+    objects defined by ${../../req/ident-local}.
+  links: []
+test-brief: Test the ${../if/ident:/name} directive.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes: []
+test-local-includes:
+- tr-object-ident-local.h
+test-prologue: |
+  rtems_status_code sc;
+  rtems_id id_local_object;
+
+  sc = rtems_timer_create(
+    ClassicObjectLocalIdentName,
+    &id_local_object
+  );
+  T_assert_rsc_success( sc );
+test-support: |
+  static rtems_status_code ClassicTimerIdentAction(
+    rtems_name name,
+    rtems_id  *id
+  )
+  {
+    return rtems_timer_ident( name, id );
+  }
+test-target: testsuites/validation/tc-timer-ident.c
+type: test-case
diff --git a/spec/rtems/type/if/group.yml b/spec/rtems/type/if/group.yml
new file mode 100644
index 0000000..3565268
--- /dev/null
+++ b/spec/rtems/type/if/group.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This group contains basic types of the Classic API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicTypes
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: Basic Types
+text: |
+  The Classic API shall provide an interface to basic types.
+type: interface
diff --git a/spec/rtems/type/if/header.yml b/spec/rtems/type/if/header.yml
new file mode 100644
index 0000000..c7427c7
--- /dev/null
+++ b/spec/rtems/type/if/header.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines types provided by the API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- enabled-by: true
+  role: interface-include
+  uid: /c/if/sys-cpuset
+- enabled-by: true
+  role: interface-include
+  uid: /c/if/sys-impl-timespec
+- enabled-by: true
+  role: interface-include
+  uid: /c/if/sys-impl-timeval
+- enabled-by: true
+  role: interface-include
+  uid: ../../mode/if/header
+- enabled-by: RTEMS_MULTIPROCESSING
+  role: interface-include
+  uid: /score/mpci/if/header
+- role: interface-placement
+  uid: /if/domain
+path: rtems/rtems/types.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/type/if/id-none.yml b/spec/rtems/type/if/id-none.yml
new file mode 100644
index 0000000..30f7e94
--- /dev/null
+++ b/spec/rtems/type/if/id-none.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This is an invalid object identifier.
+copyrights:
+- Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/object/if/id-none:/name}
+  variants: []
+description: |
+  No object can have this identifier.
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_ID_NONE
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/id.yml b/spec/rtems/type/if/id.yml
new file mode 100644
index 0000000..f342a3d
--- /dev/null
+++ b/spec/rtems/type/if/id.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Values of this type identify an object.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/object/if/id:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_id
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/interval.yml b/spec/rtems/type/if/interval.yml
new file mode 100644
index 0000000..2b334ad
--- /dev/null
+++ b/spec/rtems/type/if/interval.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type is used to represent clock tick intervals.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/watchdog/if/interval:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_interval
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/minimum-packet-size.yml b/spec/rtems/type/if/minimum-packet-size.yml
new file mode 100644
index 0000000..5e1d9db
--- /dev/null
+++ b/spec/rtems/type/if/minimum-packet-size.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/mpci/if/packet-minimum-size:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_MINIMUM_PACKET_SIZE
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/minimun-hetero-conversion.yml b/spec/rtems/type/if/minimun-hetero-conversion.yml
new file mode 100644
index 0000000..6803a41
--- /dev/null
+++ b/spec/rtems/type/if/minimun-hetero-conversion.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/mpci/if/packet-minimum-hetero-conversion:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_MINIMUN_HETERO_CONVERSION
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/mp-packet-classes.yml b/spec/rtems/type/if/mp-packet-classes.yml
new file mode 100644
index 0000000..7ec13fd
--- /dev/null
+++ b/spec/rtems/type/if/mp-packet-classes.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This enumerated type defines the packet classes.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/mpci/if/packet-classes:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_mp_packet_classes
+notes: null
+type: interface
diff --git a/spec/if/rtems/types/mpci-entry.yml b/spec/rtems/type/if/mpci-entry.yml
similarity index 100%
rename from spec/if/rtems/types/mpci-entry.yml
rename to spec/rtems/type/if/mpci-entry.yml
diff --git a/spec/rtems/type/if/mpci-get-packet-entry.yml b/spec/rtems/type/if/mpci-get-packet-entry.yml
new file mode 100644
index 0000000..d99a623
--- /dev/null
+++ b/spec/rtems/type/if/mpci-get-packet-entry.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the prototype for the get packet entry point in an MPCI.
+copyrights:
+- Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/mpci/if/get-packet-entry:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_mpci_get_packet_entry
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/mpci-initialization-entry.yml b/spec/rtems/type/if/mpci-initialization-entry.yml
new file mode 100644
index 0000000..f7ee980
--- /dev/null
+++ b/spec/rtems/type/if/mpci-initialization-entry.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the prototype for the initialization entry point in an
+  MPCI.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/mpci/if/initialization-entry:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_mpci_initialization_entry
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/mpci-receive-packet-entry.yml b/spec/rtems/type/if/mpci-receive-packet-entry.yml
new file mode 100644
index 0000000..45f7251
--- /dev/null
+++ b/spec/rtems/type/if/mpci-receive-packet-entry.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the prototype for the receive packet entry point in an
+  MPCI.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/mpci/if/receive-entry:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_mpci_receive_packet_entry
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/mpci-return-packet-entry.yml b/spec/rtems/type/if/mpci-return-packet-entry.yml
new file mode 100644
index 0000000..028f7f3
--- /dev/null
+++ b/spec/rtems/type/if/mpci-return-packet-entry.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the prototype for the return packet entry point in an MPCI.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2006 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/mpci/if/return-packet-entry:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_mpci_return_packet_entry
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/mpci-send-packet-entry.yml b/spec/rtems/type/if/mpci-send-packet-entry.yml
new file mode 100644
index 0000000..56b8db1
--- /dev/null
+++ b/spec/rtems/type/if/mpci-send-packet-entry.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the prototype for the send packet entry point in an MPCI.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/mpci/if/send-entry:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_mpci_send_packet_entry
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/mpci-table.yml b/spec/rtems/type/if/mpci-table.yml
new file mode 100644
index 0000000..3828d04
--- /dev/null
+++ b/spec/rtems/type/if/mpci-table.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the MPCI control.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/mpci/if/control:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_mpci_table
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/multiprocessing-table.yml b/spec/rtems/type/if/multiprocessing-table.yml
new file mode 100644
index 0000000..b22cba4
--- /dev/null
+++ b/spec/rtems/type/if/multiprocessing-table.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the MPCI configuration table.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/mpci/if/configuration-type:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_multiprocessing_table
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/name.yml b/spec/rtems/type/if/name.yml
new file mode 100644
index 0000000..e55d9ee
--- /dev/null
+++ b/spec/rtems/type/if/name.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type is used to represent an Classic API object name.
+copyrights:
+- Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/c/if/uint32_t:/name} rtems_name
+  variants: []
+description: |
+  It is an unsigned 32-bit integer which can be treated as a numeric value or
+  initialized using rtems_build_name() to encode four ASCII characters.  A
+  value of zero may have a special meaning in some directives.
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_name
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/no-timeout.yml b/spec/rtems/type/if/no-timeout.yml
new file mode 100644
index 0000000..9e5ff7b
--- /dev/null
+++ b/spec/rtems/type/if/no-timeout.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: |
+    ( (${interval:/name}) ${/score/watchdog/if/no-timeout:/name} )
+  variants: []
+description: null
+enabled-by: true
+interface-type: define
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: RTEMS_NO_TIMEOUT
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/packet-prefix.yml b/spec/rtems/type/if/packet-prefix.yml
new file mode 100644
index 0000000..a58591b
--- /dev/null
+++ b/spec/rtems/type/if/packet-prefix.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type defines the prefix found at the beginning of each MPCI packet sent
+  between nodes.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: ${/score/mpci/if/packet-prefix:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: RTEMS_MULTIPROCESSING
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_packet_prefix
+notes: null
+type: interface
diff --git a/spec/rtems/type/if/time-of-day.yml b/spec/rtems/type/if/time-of-day.yml
new file mode 100644
index 0000000..5fb8f8c
--- /dev/null
+++ b/spec/rtems/type/if/time-of-day.yml
@@ -0,0 +1,75 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This type is used to represent the calendar time in the Classic API.
+copyrights:
+- Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+- default:
+    brief: |
+      This member represents the year A.D.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: year
+  variants: []
+- default:
+    brief: |
+      This member represents the month of the year with values from 1 to 12.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: month
+  variants: []
+- default:
+    brief: |
+      This member represents the day of the month with values from 1 to 31.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: day
+  variants: []
+- default:
+    brief: |
+      This member represents the hour of the day with values from 0 to 23.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: hour
+  variants: []
+- default:
+    brief: |
+      This member represents the minute of the hour with values from 0 to 59.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: minute
+  variants: []
+- default:
+    brief: |
+      This member represents the second of the minute with values from 0 to 59.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: second
+  variants: []
+- default:
+    brief: |
+      This member represents the clock tick of the second with values from 0 to
+      rtems_clock_get_ticks_per_second() minus one.
+    definition: ${/c/if/uint32_t:/name} ${.:name}
+    description: null
+    kind: member
+    name: ticks
+  variants: []
+definition-kind: typedef-only
+description: null
+enabled-by: true
+interface-type: struct
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_time_of_day
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/create.yml b/spec/rtems/userext/if/create.yml
new file mode 100644
index 0000000..eba9746
--- /dev/null
+++ b/spec/rtems/userext/if/create.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - const ${table:/name} *${.:/params[1]/name}
+    - ${../../type/if/id:/name} *${.:/params[2]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_extension_create
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: name
+- description: '%'
+  dir: null
+  name: extension_table
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/userext/if/delete.yml b/spec/rtems/userext/if/delete.yml
new file mode 100644
index 0000000..0cf4ebe
--- /dev/null
+++ b/spec/rtems/userext/if/delete.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_extension_delete
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/userext/if/fatal-code.yml b/spec/rtems/userext/if/fatal-code.yml
new file mode 100644
index 0000000..7315476
--- /dev/null
+++ b/spec/rtems/userext/if/fatal-code.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/interr/if/code:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_fatal_code
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/fatal-source.yml b/spec/rtems/userext/if/fatal-source.yml
new file mode 100644
index 0000000..de9b7d5
--- /dev/null
+++ b/spec/rtems/userext/if/fatal-source.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/interr/if/source:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_fatal_source
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/fatal.yml b/spec/rtems/userext/if/fatal.yml
new file mode 100644
index 0000000..2a96440
--- /dev/null
+++ b/spec/rtems/userext/if/fatal.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/fatal:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_fatal_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/group.yml b/spec/rtems/userext/if/group.yml
new file mode 100644
index 0000000..7b984f0
--- /dev/null
+++ b/spec/rtems/userext/if/group.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  The User Extensions Manager allows the application developer to augment the
+  executive by allowing them to supply extension routines which are invoked at
+  critical system events.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+description: null
+enabled-by: true
+identifier: RTEMSAPIClassicUserext
+interface-type: group
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: ../../if/group
+name: User Extensions Manager
+text: |
+  The Classic API shall provide an interface to the User Extensions Manager.
+type: interface
diff --git a/spec/rtems/userext/if/header.yml b/spec/rtems/userext/if/header.yml
new file mode 100644
index 0000000..dcbfedd
--- /dev/null
+++ b/spec/rtems/userext/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the User Extensions Manager API.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: /if/domain
+path: rtems/extension.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/rtems/userext/if/ident.yml b/spec/rtems/userext/if/ident.yml
new file mode 100644
index 0000000..1aba865
--- /dev/null
+++ b/spec/rtems/userext/if/ident.yml
@@ -0,0 +1,60 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Identifies an extension set object by the specified object name.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - ${../../type/if/name:/name} ${.:/params[0]/name}
+    - ${../../type/if/id:/name} *${.:/params[1]/name}
+    return: ${../../status/if/code:/name}
+  variants: []
+description: |
+  This directive obtains the extension set identifier associated with the
+  extension set name specified in ``${.:/params[0]/name}``.
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_extension_ident
+notes: |
+  If the extension set name is not unique, then the extension set identifier
+  will match the first extension set with that name in the search order.
+  However, this extension set identifier is not guaranteed to correspond to the
+  desired extension set.  The extension set identifier is used with other
+  extension related directives to access the extension set.
+
+  The objects are searched from lowest to the highest index.  Only the local
+  node is searched.
+params:
+- description: is the object name to look up.
+  dir: null
+  name: name
+- description: |
+    is the pointer to an object identifier variable.  The object identifier of
+    an object with the specified name will be stored in this variable, in case
+    of a successful operation.
+  dir: out
+  name: id
+return:
+  return: null
+  return-values:
+  - description: |
+      The requested operation was successful.
+    value: ${../../status/if/successful:/name}
+  - description: |
+      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
+    value: ${../../status/if/invalid-address:/name}
+  - description: |
+      The ${.:/params[0]/name} parameter was 0.
+    value: ${../../status/if/invalid-name:/name}
+  - description: |
+      There was no object with the specified name on the local node.
+    value: ${../../status/if/invalid-name:/name}
+type: interface
diff --git a/spec/rtems/userext/if/table.yml b/spec/rtems/userext/if/table.yml
new file mode 100644
index 0000000..e66455b
--- /dev/null
+++ b/spec/rtems/userext/if/table.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/table:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_extensions_table
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/task-begin.yml b/spec/rtems/userext/if/task-begin.yml
new file mode 100644
index 0000000..9b5edb0
--- /dev/null
+++ b/spec/rtems/userext/if/task-begin.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/thread-begin:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_begin_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/task-create.yml b/spec/rtems/userext/if/task-create.yml
new file mode 100644
index 0000000..047b541
--- /dev/null
+++ b/spec/rtems/userext/if/task-create.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/thread-create:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_create_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/task-delete.yml b/spec/rtems/userext/if/task-delete.yml
new file mode 100644
index 0000000..ab27163
--- /dev/null
+++ b/spec/rtems/userext/if/task-delete.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/thread-delete:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_delete_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/task-exitted.yml b/spec/rtems/userext/if/task-exitted.yml
new file mode 100644
index 0000000..53e6002
--- /dev/null
+++ b/spec/rtems/userext/if/task-exitted.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/thread-exitted:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_exitted_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/task-restart.yml b/spec/rtems/userext/if/task-restart.yml
new file mode 100644
index 0000000..22cd968
--- /dev/null
+++ b/spec/rtems/userext/if/task-restart.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/thread-restart:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_restart_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/task-start.yml b/spec/rtems/userext/if/task-start.yml
new file mode 100644
index 0000000..789098e
--- /dev/null
+++ b/spec/rtems/userext/if/task-start.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/thread-start:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_start_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/task-switch.yml b/spec/rtems/userext/if/task-switch.yml
new file mode 100644
index 0000000..c52d72d
--- /dev/null
+++ b/spec/rtems/userext/if/task-switch.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/thread-switch:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_switch_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/if/task-terminate.yml b/spec/rtems/userext/if/task-terminate.yml
new file mode 100644
index 0000000..5537ec5
--- /dev/null
+++ b/spec/rtems/userext/if/task-terminate.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default: ${/score/userext/if/thread-terminate:/name} ${.:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: typedef
+links:
+- role: interface-placement
+  uid: header
+- role: interface-ingroup
+  uid: group
+name: rtems_task_terminate_extension
+notes: null
+type: interface
diff --git a/spec/rtems/userext/req/ident.yml b/spec/rtems/userext/req/ident.yml
new file mode 100644
index 0000000..272af22
--- /dev/null
+++ b/spec/rtems/userext/req/ident.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/ident
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/ident:/name} directive shall identify an Classic API
+  user extension class object by its name as specified by ${../req/ident-local}.
+type: requirement
diff --git a/spec/rtems/userext/val/ident.yml b/spec/rtems/userext/val/ident.yml
new file mode 100644
index 0000000..e25374e
--- /dev/null
+++ b/spec/rtems/userext/val/ident.yml
@@ -0,0 +1,47 @@
+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:
+- role: validation
+  uid: ../req/ident
+test-actions:
+- action: |
+    ${../../req/ident-local:/test-run}(
+      id_local_object,
+      ClassicUserExtIdentAction
+    );
+  checks: []
+  description: |
+    Run the generic object identification tests for Classic API user extension
+    class objects defined by ${../../req/ident-local}.
+  links: []
+test-brief: Test the ${../if/ident:/name} directive.
+test-description: null
+test-epilogue: null
+test-fixture: null
+test-header: null
+test-includes: []
+test-local-includes:
+- tr-object-ident-local.h
+test-prologue: |
+  static const rtems_extensions_table table;
+  rtems_status_code sc;
+  rtems_id id_local_object;
+
+  sc = rtems_extension_create(
+    ClassicObjectLocalIdentName,
+    &table,
+    &id_local_object
+  );
+  T_assert_rsc_success( sc );
+test-support: |
+  static rtems_status_code ClassicUserExtIdentAction(
+    rtems_name name,
+    rtems_id  *id
+  )
+  {
+    return rtems_extension_ident( name, id );
+  }
+test-target: testsuites/validation/tc-userext-ident.c
+type: test-case
diff --git a/spec/if/impl/context/fp-size.yml b/spec/score/context/if/fp-size.yml
similarity index 100%
rename from spec/if/impl/context/fp-size.yml
rename to spec/score/context/if/fp-size.yml
diff --git a/spec/score/context/if/header.yml b/spec/score/context/if/header.yml
new file mode 100644
index 0000000..7ed0f7c
--- /dev/null
+++ b/spec/score/context/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the Stack Handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/context.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/cpu/all-tasks-are-fp.yml b/spec/score/cpu/if/all-tasks-are-fp.yml
similarity index 100%
rename from spec/if/impl/cpu/all-tasks-are-fp.yml
rename to spec/score/cpu/if/all-tasks-are-fp.yml
diff --git a/spec/if/impl/cpu/exception-frame-print.yml b/spec/score/cpu/if/exception-frame-print.yml
similarity index 100%
rename from spec/if/impl/cpu/exception-frame-print.yml
rename to spec/score/cpu/if/exception-frame-print.yml
diff --git a/spec/if/impl/cpu/exception-frame.yml b/spec/score/cpu/if/exception-frame.yml
similarity index 100%
rename from spec/if/impl/cpu/exception-frame.yml
rename to spec/score/cpu/if/exception-frame.yml
diff --git a/spec/if/impl/cpu/hardware-fp.yml b/spec/score/cpu/if/hardware-fp.yml
similarity index 100%
rename from spec/if/impl/cpu/hardware-fp.yml
rename to spec/score/cpu/if/hardware-fp.yml
diff --git a/spec/score/cpu/if/header.yml b/spec/score/cpu/if/header.yml
new file mode 100644
index 0000000..48a5df3
--- /dev/null
+++ b/spec/score/cpu/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the CPU port.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/cpu.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/cpu/heap-alignment.yml b/spec/score/cpu/if/heap-alignment.yml
similarity index 100%
rename from spec/if/impl/cpu/heap-alignment.yml
rename to spec/score/cpu/if/heap-alignment.yml
diff --git a/spec/if/impl/cpu/interrupt-frame.yml b/spec/score/cpu/if/interrupt-frame.yml
similarity index 100%
rename from spec/if/impl/cpu/interrupt-frame.yml
rename to spec/score/cpu/if/interrupt-frame.yml
diff --git a/spec/if/impl/cpu/interrupt-stack-alignment.yml b/spec/score/cpu/if/interrupt-stack-alignment.yml
similarity index 100%
rename from spec/if/impl/cpu/interrupt-stack-alignment.yml
rename to spec/score/cpu/if/interrupt-stack-alignment.yml
diff --git a/spec/if/impl/cpu/isr-passes-frame-pointer.yml b/spec/score/cpu/if/isr-passes-frame-pointer.yml
similarity index 100%
rename from spec/if/impl/cpu/isr-passes-frame-pointer.yml
rename to spec/score/cpu/if/isr-passes-frame-pointer.yml
diff --git a/spec/if/impl/cpu/maximum-processors.yml b/spec/score/cpu/if/maximum-processors.yml
similarity index 100%
rename from spec/if/impl/cpu/maximum-processors.yml
rename to spec/score/cpu/if/maximum-processors.yml
diff --git a/spec/if/impl/cpu/modes-interrupt-mask.yml b/spec/score/cpu/if/modes-interrupt-mask.yml
similarity index 100%
rename from spec/if/impl/cpu/modes-interrupt-mask.yml
rename to spec/score/cpu/if/modes-interrupt-mask.yml
diff --git a/spec/if/impl/cpu/simple-vectored-interrupts.yml b/spec/score/cpu/if/simple-vectored-interrupts.yml
similarity index 100%
rename from spec/if/impl/cpu/simple-vectored-interrupts.yml
rename to spec/score/cpu/if/simple-vectored-interrupts.yml
diff --git a/spec/if/impl/cpu/stack-minimum-size.yml b/spec/score/cpu/if/stack-minimum-size.yml
similarity index 100%
rename from spec/if/impl/cpu/stack-minimum-size.yml
rename to spec/score/cpu/if/stack-minimum-size.yml
diff --git a/spec/if/impl/cpu/uint32ptr.yml b/spec/score/cpu/if/uint32ptr.yml
similarity index 100%
rename from spec/if/impl/cpu/uint32ptr.yml
rename to spec/score/cpu/if/uint32ptr.yml
diff --git a/spec/score/heap/if/header.yml b/spec/score/heap/if/header.yml
new file mode 100644
index 0000000..3b035d6
--- /dev/null
+++ b/spec/score/heap/if/header.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines interfaces of the Heap Handler which provide
+  information of a heap.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/heapinfo.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/heap/information-block.yml b/spec/score/heap/if/information-block.yml
similarity index 100%
rename from spec/if/impl/heap/information-block.yml
rename to spec/score/heap/if/information-block.yml
diff --git a/spec/score/if/assert-unreachable.yml b/spec/score/if/assert-unreachable.yml
new file mode 100644
index 0000000..849ddf2
--- /dev/null
+++ b/spec/score/if/assert-unreachable.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Asserts that this program point is unreachable.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default: |
+    do { } while ( 0 )
+  variants:
+  - definition: |
+      _Assert( 0 )
+    enabled-by:
+    - defined(${/build-options/if/debug:/name})
+description: null
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+  uid: /rtems/basedefs/if/header
+name: _Assert_Unreachable
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/score/if/dequalify-types-not-compatible.yml b/spec/score/if/dequalify-types-not-compatible.yml
new file mode 100644
index 0000000..7d516a3
--- /dev/null
+++ b/spec/score/if/dequalify-types-not-compatible.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  A not implemented function to trigger compile time errors with an error
+  message.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2014 Paval Pisa
+definition:
+  default:
+    body: null
+    params: []
+    return: void *
+  variants:
+  - definition:
+      body: null
+      params: []
+      return: __attribute__((__error__("RTEMS_DEQUALIFY() types differ not only by
+        volatile and const"))) void *
+    enabled-by:
+    - defined(${/compiler/if/gnuc:/name})
+description: null
+enabled-by:
+  not: ASM
+interface-type: function
+links:
+- role: interface-placement
+  uid: /rtems/basedefs/if/header
+name: RTEMS_DEQUALIFY_types_not_compatible
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/domains/implementation.yml b/spec/score/if/domain.yml
similarity index 100%
rename from spec/if/domains/implementation.yml
rename to spec/score/if/domain.yml
diff --git a/spec/score/if/maximum-priority.yml b/spec/score/if/maximum-priority.yml
new file mode 100644
index 0000000..a2f119d
--- /dev/null
+++ b/spec/score/if/maximum-priority.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  Returns the maximum priority of the scheduler with index zero.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+  default:
+    body: null
+    params: []
+    return: ${/rtems/task/if/priority:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: /rtems/task/if/header
+name: _RTEMS_Maximum_priority
+notes: null
+params: []
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/score/if/tod-to-seconds.yml b/spec/score/if/tod-to-seconds.yml
new file mode 100644
index 0000000..ae32a2e
--- /dev/null
+++ b/spec/score/if/tod-to-seconds.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const ${/rtems/type/if/time-of-day:/name} *${.:/params[0]/name}
+    return: ${../watchdog/if/interval:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: /rtems/clock/if/header
+name: _TOD_To_seconds
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: the_tod
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/score/if/tod-validate.yml b/spec/score/if/tod-validate.yml
new file mode 100644
index 0000000..aa3f6c4
--- /dev/null
+++ b/spec/score/if/tod-validate.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: '%'
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+definition:
+  default:
+    body: null
+    params:
+    - const ${/rtems/type/if/time-of-day:/name} *${.:/params[0]/name}
+    return: ${/c/if/bool:/name}
+  variants: []
+description: null
+enabled-by: true
+interface-type: function
+links:
+- role: interface-placement
+  uid: /rtems/clock/if/header
+name: _TOD_Validate
+notes: null
+params:
+- description: '%'
+  dir: null
+  name: the_tod
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/if/impl/interr/code.yml b/spec/score/interr/if/code.yml
similarity index 100%
rename from spec/if/impl/interr/code.yml
rename to spec/score/interr/if/code.yml
diff --git a/spec/score/interr/if/header.yml b/spec/score/interr/if/header.yml
new file mode 100644
index 0000000..14bca2d
--- /dev/null
+++ b/spec/score/interr/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the interfaces of the Fatal Error Handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/interr.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/interr/source.yml b/spec/score/interr/if/source.yml
similarity index 100%
rename from spec/if/impl/interr/source.yml
rename to spec/score/interr/if/source.yml
diff --git a/spec/if/impl/interr/terminate.yml b/spec/score/interr/if/terminate.yml
similarity index 100%
rename from spec/if/impl/interr/terminate.yml
rename to spec/score/interr/if/terminate.yml
diff --git a/spec/if/impl/isr/handler-entry.yml b/spec/score/isr/if/handler-entry.yml
similarity index 100%
rename from spec/if/impl/isr/handler-entry.yml
rename to spec/score/isr/if/handler-entry.yml
diff --git a/spec/if/impl/isr/handler.yml b/spec/score/isr/if/handler.yml
similarity index 100%
rename from spec/if/impl/isr/handler.yml
rename to spec/score/isr/if/handler.yml
diff --git a/spec/score/isr/if/header-2.yml b/spec/score/isr/if/header-2.yml
new file mode 100644
index 0000000..704202c
--- /dev/null
+++ b/spec/score/isr/if/header-2.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces related to the ISR level.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/isrlevel.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/score/isr/if/header-3.yml b/spec/score/isr/if/header-3.yml
new file mode 100644
index 0000000..605b56e
--- /dev/null
+++ b/spec/score/isr/if/header-3.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the ISR Lock Handler
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/isrlock.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/score/isr/if/header.yml b/spec/score/isr/if/header.yml
new file mode 100644
index 0000000..85523d5
--- /dev/null
+++ b/spec/score/isr/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the ISR Handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/isr.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/isr/is-in-progress.yml b/spec/score/isr/if/is-in-progress.yml
similarity index 100%
rename from spec/if/impl/isr/is-in-progress.yml
rename to spec/score/isr/if/is-in-progress.yml
diff --git a/spec/if/impl/isr/level.yml b/spec/score/isr/if/level.yml
similarity index 100%
rename from spec/if/impl/isr/level.yml
rename to spec/score/isr/if/level.yml
diff --git a/spec/if/impl/isr/local-disable.yml b/spec/score/isr/if/local-disable.yml
similarity index 100%
rename from spec/if/impl/isr/local-disable.yml
rename to spec/score/isr/if/local-disable.yml
diff --git a/spec/if/impl/isr/local-enable.yml b/spec/score/isr/if/local-enable.yml
similarity index 100%
rename from spec/if/impl/isr/local-enable.yml
rename to spec/score/isr/if/local-enable.yml
diff --git a/spec/if/impl/isr/local-flash.yml b/spec/score/isr/if/local-flash.yml
similarity index 100%
rename from spec/if/impl/isr/local-flash.yml
rename to spec/score/isr/if/local-flash.yml
diff --git a/spec/if/impl/isr/lock-context.yml b/spec/score/isr/if/lock-context.yml
similarity index 100%
rename from spec/if/impl/isr/lock-context.yml
rename to spec/score/isr/if/lock-context.yml
diff --git a/spec/if/impl/isr/lock-control.yml b/spec/score/isr/if/lock-control.yml
similarity index 100%
rename from spec/if/impl/isr/lock-control.yml
rename to spec/score/isr/if/lock-control.yml
diff --git a/spec/if/impl/isr/lock-declare.yml b/spec/score/isr/if/lock-declare.yml
similarity index 100%
rename from spec/if/impl/isr/lock-declare.yml
rename to spec/score/isr/if/lock-declare.yml
diff --git a/spec/if/impl/isr/lock-define.yml b/spec/score/isr/if/lock-define.yml
similarity index 100%
rename from spec/if/impl/isr/lock-define.yml
rename to spec/score/isr/if/lock-define.yml
diff --git a/spec/if/impl/isr/lock-destroy.yml b/spec/score/isr/if/lock-destroy.yml
similarity index 100%
rename from spec/if/impl/isr/lock-destroy.yml
rename to spec/score/isr/if/lock-destroy.yml
diff --git a/spec/if/impl/isr/lock-initialize.yml b/spec/score/isr/if/lock-initialize.yml
similarity index 100%
rename from spec/if/impl/isr/lock-initialize.yml
rename to spec/score/isr/if/lock-initialize.yml
diff --git a/spec/if/impl/isr/lock-initializer.yml b/spec/score/isr/if/lock-initializer.yml
similarity index 100%
rename from spec/if/impl/isr/lock-initializer.yml
rename to spec/score/isr/if/lock-initializer.yml
diff --git a/spec/if/impl/isr/lock-isr-disable-acquire.yml b/spec/score/isr/if/lock-isr-disable-acquire.yml
similarity index 100%
rename from spec/if/impl/isr/lock-isr-disable-acquire.yml
rename to spec/score/isr/if/lock-isr-disable-acquire.yml
diff --git a/spec/if/impl/isr/lock-isr-disable.yml b/spec/score/isr/if/lock-isr-disable.yml
similarity index 100%
rename from spec/if/impl/isr/lock-isr-disable.yml
rename to spec/score/isr/if/lock-isr-disable.yml
diff --git a/spec/if/impl/isr/lock-member.yml b/spec/score/isr/if/lock-member.yml
similarity index 100%
rename from spec/if/impl/isr/lock-member.yml
rename to spec/score/isr/if/lock-member.yml
diff --git a/spec/if/impl/isr/lock-reference.yml b/spec/score/isr/if/lock-reference.yml
similarity index 100%
rename from spec/if/impl/isr/lock-reference.yml
rename to spec/score/isr/if/lock-reference.yml
diff --git a/spec/if/impl/isr/lock-release-isr-enable.yml b/spec/score/isr/if/lock-release-isr-enable.yml
similarity index 100%
rename from spec/if/impl/isr/lock-release-isr-enable.yml
rename to spec/score/isr/if/lock-release-isr-enable.yml
diff --git a/spec/if/impl/isr/stack-size.yml b/spec/score/isr/if/stack-size.yml
similarity index 100%
rename from spec/if/impl/isr/stack-size.yml
rename to spec/score/isr/if/stack-size.yml
diff --git a/spec/if/impl/isr/vector-number.yml b/spec/score/isr/if/vector-number.yml
similarity index 100%
rename from spec/if/impl/isr/vector-number.yml
rename to spec/score/isr/if/vector-number.yml
diff --git a/spec/score/memory/if/header.yml b/spec/score/memory/if/header.yml
new file mode 100644
index 0000000..a9ba3f8
--- /dev/null
+++ b/spec/score/memory/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the Memory Handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/memory.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/memory/zero-before-use.yml b/spec/score/memory/if/zero-before-use.yml
similarity index 100%
rename from spec/if/impl/memory/zero-before-use.yml
rename to spec/score/memory/if/zero-before-use.yml
diff --git a/spec/if/impl/mpci/configuration-type.yml b/spec/score/mpci/if/configuration-type.yml
similarity index 100%
rename from spec/if/impl/mpci/configuration-type.yml
rename to spec/score/mpci/if/configuration-type.yml
diff --git a/spec/if/impl/mpci/configuration.yml b/spec/score/mpci/if/configuration.yml
similarity index 100%
rename from spec/if/impl/mpci/configuration.yml
rename to spec/score/mpci/if/configuration.yml
diff --git a/spec/if/impl/mpci/control.yml b/spec/score/mpci/if/control.yml
similarity index 100%
rename from spec/if/impl/mpci/control.yml
rename to spec/score/mpci/if/control.yml
diff --git a/spec/if/impl/mpci/entry.yml b/spec/score/mpci/if/entry.yml
similarity index 100%
rename from spec/if/impl/mpci/entry.yml
rename to spec/score/mpci/if/entry.yml
diff --git a/spec/if/impl/mpci/get-packet-entry.yml b/spec/score/mpci/if/get-packet-entry.yml
similarity index 100%
rename from spec/if/impl/mpci/get-packet-entry.yml
rename to spec/score/mpci/if/get-packet-entry.yml
diff --git a/spec/score/mpci/if/header-2.yml b/spec/score/mpci/if/header-2.yml
new file mode 100644
index 0000000..3b8dcb5
--- /dev/null
+++ b/spec/score/mpci/if/header-2.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the MPCI packet interfaces.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/mppkt.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/score/mpci/if/header.yml b/spec/score/mpci/if/header.yml
new file mode 100644
index 0000000..ca3456e
--- /dev/null
+++ b/spec/score/mpci/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines the interface of the MPCI implementation.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/mpci.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/mpci/initialization-entry.yml b/spec/score/mpci/if/initialization-entry.yml
similarity index 100%
rename from spec/if/impl/mpci/initialization-entry.yml
rename to spec/score/mpci/if/initialization-entry.yml
diff --git a/spec/if/impl/mpci/packet-classes.yml b/spec/score/mpci/if/packet-classes.yml
similarity index 100%
rename from spec/if/impl/mpci/packet-classes.yml
rename to spec/score/mpci/if/packet-classes.yml
diff --git a/spec/if/impl/mpci/packet-minimum-hetero-conversion.yml b/spec/score/mpci/if/packet-minimum-hetero-conversion.yml
similarity index 100%
rename from spec/if/impl/mpci/packet-minimum-hetero-conversion.yml
rename to spec/score/mpci/if/packet-minimum-hetero-conversion.yml
diff --git a/spec/if/impl/mpci/packet-minimum-size.yml b/spec/score/mpci/if/packet-minimum-size.yml
similarity index 100%
rename from spec/if/impl/mpci/packet-minimum-size.yml
rename to spec/score/mpci/if/packet-minimum-size.yml
diff --git a/spec/if/impl/mpci/packet-prefix.yml b/spec/score/mpci/if/packet-prefix.yml
similarity index 100%
rename from spec/if/impl/mpci/packet-prefix.yml
rename to spec/score/mpci/if/packet-prefix.yml
diff --git a/spec/if/impl/mpci/receive-entry.yml b/spec/score/mpci/if/receive-entry.yml
similarity index 100%
rename from spec/if/impl/mpci/receive-entry.yml
rename to spec/score/mpci/if/receive-entry.yml
diff --git a/spec/if/impl/mpci/return-packet-entry.yml b/spec/score/mpci/if/return-packet-entry.yml
similarity index 100%
rename from spec/if/impl/mpci/return-packet-entry.yml
rename to spec/score/mpci/if/return-packet-entry.yml
diff --git a/spec/if/impl/mpci/send-entry.yml b/spec/score/mpci/if/send-entry.yml
similarity index 100%
rename from spec/if/impl/mpci/send-entry.yml
rename to spec/score/mpci/if/send-entry.yml
diff --git a/spec/if/impl/object/apis-last.yml b/spec/score/object/if/apis-last.yml
similarity index 100%
rename from spec/if/impl/object/apis-last.yml
rename to spec/score/object/if/apis-last.yml
diff --git a/spec/if/impl/object/build-id.yml b/spec/score/object/if/build-id.yml
similarity index 100%
rename from spec/if/impl/object/build-id.yml
rename to spec/score/object/if/build-id.yml
diff --git a/spec/if/impl/object/build-name.yml b/spec/score/object/if/build-name.yml
similarity index 100%
rename from spec/if/impl/object/build-name.yml
rename to spec/score/object/if/build-name.yml
diff --git a/spec/if/impl/object/get-api.yml b/spec/score/object/if/get-api.yml
similarity index 100%
rename from spec/if/impl/object/get-api.yml
rename to spec/score/object/if/get-api.yml
diff --git a/spec/if/impl/object/get-class.yml b/spec/score/object/if/get-class.yml
similarity index 100%
rename from spec/if/impl/object/get-class.yml
rename to spec/score/object/if/get-class.yml
diff --git a/spec/if/impl/object/get-index.yml b/spec/score/object/if/get-index.yml
similarity index 100%
rename from spec/if/impl/object/get-index.yml
rename to spec/score/object/if/get-index.yml
diff --git a/spec/if/impl/object/get-node.yml b/spec/score/object/if/get-node.yml
similarity index 100%
rename from spec/if/impl/object/get-node.yml
rename to spec/score/object/if/get-node.yml
diff --git a/spec/score/object/if/header.yml b/spec/score/object/if/header.yml
new file mode 100644
index 0000000..e609460
--- /dev/null
+++ b/spec/score/object/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the Object Handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/object.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/object/id-final-index.yml b/spec/score/object/if/id-final-index.yml
similarity index 100%
rename from spec/if/impl/object/id-final-index.yml
rename to spec/score/object/if/id-final-index.yml
diff --git a/spec/if/impl/object/id-final.yml b/spec/score/object/if/id-final.yml
similarity index 100%
rename from spec/if/impl/object/id-final.yml
rename to spec/score/object/if/id-final.yml
diff --git a/spec/if/impl/object/id-initial-index.yml b/spec/score/object/if/id-initial-index.yml
similarity index 100%
rename from spec/if/impl/object/id-initial-index.yml
rename to spec/score/object/if/id-initial-index.yml
diff --git a/spec/if/impl/object/id-initial.yml b/spec/score/object/if/id-initial.yml
similarity index 100%
rename from spec/if/impl/object/id-initial.yml
rename to spec/score/object/if/id-initial.yml
diff --git a/spec/if/impl/object/id-none.yml b/spec/score/object/if/id-none.yml
similarity index 100%
rename from spec/if/impl/object/id-none.yml
rename to spec/score/object/if/id-none.yml
diff --git a/spec/if/impl/object/id-of-self.yml b/spec/score/object/if/id-of-self.yml
similarity index 100%
rename from spec/if/impl/object/id-of-self.yml
rename to spec/score/object/if/id-of-self.yml
diff --git a/spec/if/impl/object/id.yml b/spec/score/object/if/id.yml
similarity index 100%
rename from spec/if/impl/object/id.yml
rename to spec/score/object/if/id.yml
diff --git a/spec/if/impl/object/internal-api.yml b/spec/score/object/if/internal-api.yml
similarity index 100%
rename from spec/if/impl/object/internal-api.yml
rename to spec/score/object/if/internal-api.yml
diff --git a/spec/if/impl/object/is-unlimited.yml b/spec/score/object/if/is-unlimited.yml
similarity index 100%
rename from spec/if/impl/object/is-unlimited.yml
rename to spec/score/object/if/is-unlimited.yml
diff --git a/spec/if/impl/object/local-node.yml b/spec/score/object/if/local-node.yml
similarity index 100%
rename from spec/if/impl/object/local-node.yml
rename to spec/score/object/if/local-node.yml
diff --git a/spec/if/impl/object/maximum-per-allocation.yml b/spec/score/object/if/maximum-per-allocation.yml
similarity index 100%
rename from spec/if/impl/object/maximum-per-allocation.yml
rename to spec/score/object/if/maximum-per-allocation.yml
diff --git a/spec/if/impl/object/search-all-nodes.yml b/spec/score/object/if/search-all-nodes.yml
similarity index 100%
rename from spec/if/impl/object/search-all-nodes.yml
rename to spec/score/object/if/search-all-nodes.yml
diff --git a/spec/if/impl/object/search-local-nodes.yml b/spec/score/object/if/search-local-nodes.yml
similarity index 100%
rename from spec/if/impl/object/search-local-nodes.yml
rename to spec/score/object/if/search-local-nodes.yml
diff --git a/spec/if/impl/object/search-other-nodes.yml b/spec/score/object/if/search-other-nodes.yml
similarity index 100%
rename from spec/if/impl/object/search-other-nodes.yml
rename to spec/score/object/if/search-other-nodes.yml
diff --git a/spec/if/impl/object/unlimited-objects.yml b/spec/score/object/if/unlimited-objects.yml
similarity index 100%
rename from spec/if/impl/object/unlimited-objects.yml
rename to spec/score/object/if/unlimited-objects.yml
diff --git a/spec/if/impl/object/who-am-i.yml b/spec/score/object/if/who-am-i.yml
similarity index 100%
rename from spec/if/impl/object/who-am-i.yml
rename to spec/score/object/if/who-am-i.yml
diff --git a/spec/if/impl/smp/get-current-processor.yml b/spec/score/smp/if/get-current-processor.yml
similarity index 100%
rename from spec/if/impl/smp/get-current-processor.yml
rename to spec/score/smp/if/get-current-processor.yml
diff --git a/spec/if/impl/smp/get-processor-maximum.yml b/spec/score/smp/if/get-processor-maximum.yml
similarity index 100%
rename from spec/if/impl/smp/get-processor-maximum.yml
rename to spec/score/smp/if/get-processor-maximum.yml
diff --git a/spec/score/smp/if/header-2.yml b/spec/score/smp/if/header-2.yml
new file mode 100644
index 0000000..1179868
--- /dev/null
+++ b/spec/score/smp/if/header-2.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the SMP Lock Handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/smplock.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/score/smp/if/header.yml b/spec/score/smp/if/header.yml
new file mode 100644
index 0000000..0610201
--- /dev/null
+++ b/spec/score/smp/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the SMP Handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/smp.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/smp/lock-acquire.yml b/spec/score/smp/if/lock-acquire.yml
similarity index 100%
rename from spec/if/impl/smp/lock-acquire.yml
rename to spec/score/smp/if/lock-acquire.yml
diff --git a/spec/if/impl/smp/lock-release.yml b/spec/score/smp/if/lock-release.yml
similarity index 100%
rename from spec/if/impl/smp/lock-release.yml
rename to spec/score/smp/if/lock-release.yml
diff --git a/spec/if/impl/smp/processor-configured-maximum.yml b/spec/score/smp/if/processor-configured-maximum.yml
similarity index 100%
rename from spec/if/impl/smp/processor-configured-maximum.yml
rename to spec/score/smp/if/processor-configured-maximum.yml
diff --git a/spec/if/impl/stack/allocator-allocate-type.yml b/spec/score/stack/if/allocator-allocate-type.yml
similarity index 100%
rename from spec/if/impl/stack/allocator-allocate-type.yml
rename to spec/score/stack/if/allocator-allocate-type.yml
diff --git a/spec/if/impl/stack/allocator-allocate.yml b/spec/score/stack/if/allocator-allocate.yml
similarity index 100%
rename from spec/if/impl/stack/allocator-allocate.yml
rename to spec/score/stack/if/allocator-allocate.yml
diff --git a/spec/if/impl/stack/allocator-avoids-workspace.yml b/spec/score/stack/if/allocator-avoids-workspace.yml
similarity index 100%
rename from spec/if/impl/stack/allocator-avoids-workspace.yml
rename to spec/score/stack/if/allocator-avoids-workspace.yml
diff --git a/spec/if/impl/stack/allocator-free-type.yml b/spec/score/stack/if/allocator-free-type.yml
similarity index 100%
rename from spec/if/impl/stack/allocator-free-type.yml
rename to spec/score/stack/if/allocator-free-type.yml
diff --git a/spec/if/impl/stack/allocator-free.yml b/spec/score/stack/if/allocator-free.yml
similarity index 100%
rename from spec/if/impl/stack/allocator-free.yml
rename to spec/score/stack/if/allocator-free.yml
diff --git a/spec/if/impl/stack/allocator-initialize-type.yml b/spec/score/stack/if/allocator-initialize-type.yml
similarity index 100%
rename from spec/if/impl/stack/allocator-initialize-type.yml
rename to spec/score/stack/if/allocator-initialize-type.yml
diff --git a/spec/if/impl/stack/allocator-initialize.yml b/spec/score/stack/if/allocator-initialize.yml
similarity index 100%
rename from spec/if/impl/stack/allocator-initialize.yml
rename to spec/score/stack/if/allocator-initialize.yml
diff --git a/spec/score/stack/if/header.yml b/spec/score/stack/if/header.yml
new file mode 100644
index 0000000..8beb474
--- /dev/null
+++ b/spec/score/stack/if/header.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: This header file defines interfaces of the Stack Handler.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/stack.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/stack/minimum-size.yml b/spec/score/stack/if/minimum-size.yml
similarity index 100%
rename from spec/if/impl/stack/minimum-size.yml
rename to spec/score/stack/if/minimum-size.yml
diff --git a/spec/score/thread/if/header.yml b/spec/score/thread/if/header.yml
new file mode 100644
index 0000000..53e7910
--- /dev/null
+++ b/spec/score/thread/if/header.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines data structures of the Thread Handler used to
+  instantiate idle thread related objects defined by the application
+  configuration.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/threadidledata.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/thread/idle-body.yml b/spec/score/thread/if/idle-body.yml
similarity index 100%
rename from spec/if/impl/thread/idle-body.yml
rename to spec/score/thread/if/idle-body.yml
diff --git a/spec/if/impl/thread/idle-stack-size.yml b/spec/score/thread/if/idle-stack-size.yml
similarity index 100%
rename from spec/if/impl/thread/idle-stack-size.yml
rename to spec/score/thread/if/idle-stack-size.yml
diff --git a/spec/if/impl/userext/fatal.yml b/spec/score/userext/if/fatal.yml
similarity index 100%
rename from spec/if/impl/userext/fatal.yml
rename to spec/score/userext/if/fatal.yml
diff --git a/spec/score/userext/if/header.yml b/spec/score/userext/if/header.yml
new file mode 100644
index 0000000..07ae8e5
--- /dev/null
+++ b/spec/score/userext/if/header.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines data structures of the User Extensions Handler used
+  to instantiate objects defined by the application configuration.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/userextdata.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/userext/initial-count.yml b/spec/score/userext/if/initial-count.yml
similarity index 100%
rename from spec/if/impl/userext/initial-count.yml
rename to spec/score/userext/if/initial-count.yml
diff --git a/spec/if/impl/userext/initial-extensions.yml b/spec/score/userext/if/initial-extensions.yml
similarity index 100%
rename from spec/if/impl/userext/initial-extensions.yml
rename to spec/score/userext/if/initial-extensions.yml
diff --git a/spec/if/impl/userext/table.yml b/spec/score/userext/if/table.yml
similarity index 100%
rename from spec/if/impl/userext/table.yml
rename to spec/score/userext/if/table.yml
diff --git a/spec/if/impl/userext/thread-begin.yml b/spec/score/userext/if/thread-begin.yml
similarity index 100%
rename from spec/if/impl/userext/thread-begin.yml
rename to spec/score/userext/if/thread-begin.yml
diff --git a/spec/if/impl/userext/thread-create.yml b/spec/score/userext/if/thread-create.yml
similarity index 100%
rename from spec/if/impl/userext/thread-create.yml
rename to spec/score/userext/if/thread-create.yml
diff --git a/spec/if/impl/userext/thread-delete.yml b/spec/score/userext/if/thread-delete.yml
similarity index 100%
rename from spec/if/impl/userext/thread-delete.yml
rename to spec/score/userext/if/thread-delete.yml
diff --git a/spec/if/impl/userext/thread-exitted.yml b/spec/score/userext/if/thread-exitted.yml
similarity index 100%
rename from spec/if/impl/userext/thread-exitted.yml
rename to spec/score/userext/if/thread-exitted.yml
diff --git a/spec/if/impl/userext/thread-restart.yml b/spec/score/userext/if/thread-restart.yml
similarity index 100%
rename from spec/if/impl/userext/thread-restart.yml
rename to spec/score/userext/if/thread-restart.yml
diff --git a/spec/if/impl/userext/thread-start.yml b/spec/score/userext/if/thread-start.yml
similarity index 100%
rename from spec/if/impl/userext/thread-start.yml
rename to spec/score/userext/if/thread-start.yml
diff --git a/spec/if/impl/userext/thread-switch.yml b/spec/score/userext/if/thread-switch.yml
similarity index 100%
rename from spec/if/impl/userext/thread-switch.yml
rename to spec/score/userext/if/thread-switch.yml
diff --git a/spec/if/impl/userext/thread-terminate.yml b/spec/score/userext/if/thread-terminate.yml
similarity index 100%
rename from spec/if/impl/userext/thread-terminate.yml
rename to spec/score/userext/if/thread-terminate.yml
diff --git a/spec/score/watchdog/if/header.yml b/spec/score/watchdog/if/header.yml
new file mode 100644
index 0000000..a931a85
--- /dev/null
+++ b/spec/score/watchdog/if/header.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines data structures of the Watchdog Handler used to
+  instantiate clock tick related objects defined by the application
+  configuration.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/watchdogticks.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/watchdog/interval.yml b/spec/score/watchdog/if/interval.yml
similarity index 100%
rename from spec/if/impl/watchdog/interval.yml
rename to spec/score/watchdog/if/interval.yml
diff --git a/spec/if/impl/watchdog/microseconds-per-tick.yml b/spec/score/watchdog/if/microseconds-per-tick.yml
similarity index 100%
rename from spec/if/impl/watchdog/microseconds-per-tick.yml
rename to spec/score/watchdog/if/microseconds-per-tick.yml
diff --git a/spec/if/impl/watchdog/nanoseconds-per-tick.yml b/spec/score/watchdog/if/nanoseconds-per-tick.yml
similarity index 100%
rename from spec/if/impl/watchdog/nanoseconds-per-tick.yml
rename to spec/score/watchdog/if/nanoseconds-per-tick.yml
diff --git a/spec/if/impl/watchdog/no-timeout.yml b/spec/score/watchdog/if/no-timeout.yml
similarity index 100%
rename from spec/if/impl/watchdog/no-timeout.yml
rename to spec/score/watchdog/if/no-timeout.yml
diff --git a/spec/if/impl/watchdog/ticks-per-second.yml b/spec/score/watchdog/if/ticks-per-second.yml
similarity index 100%
rename from spec/if/impl/watchdog/ticks-per-second.yml
rename to spec/score/watchdog/if/ticks-per-second.yml
diff --git a/spec/if/impl/watchdog/ticks-per-timeslice.yml b/spec/score/watchdog/if/ticks-per-timeslice.yml
similarity index 100%
rename from spec/if/impl/watchdog/ticks-per-timeslice.yml
rename to spec/score/watchdog/if/ticks-per-timeslice.yml
diff --git a/spec/if/impl/watchdog/ticks-since-boot.yml b/spec/score/watchdog/if/ticks-since-boot.yml
similarity index 100%
rename from spec/if/impl/watchdog/ticks-since-boot.yml
rename to spec/score/watchdog/if/ticks-since-boot.yml
diff --git a/spec/score/wkspace/if/header.yml b/spec/score/wkspace/if/header.yml
new file mode 100644
index 0000000..d6dc03b
--- /dev/null
+++ b/spec/score/wkspace/if/header.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+  This header file defines data structures of the Workspace Handler used to
+  instantiate objects defined by the application configuration.
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: header-file
+links:
+- role: interface-placement
+  uid: ../../if/domain
+path: rtems/score/wkspacedata.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/if/impl/wkspace/is-unified.yml b/spec/score/wkspace/if/is-unified.yml
similarity index 100%
rename from spec/if/impl/wkspace/is-unified.yml
rename to spec/score/wkspace/if/is-unified.yml
diff --git a/spec/if/impl/wkspace/size.yml b/spec/score/wkspace/if/size.yml
similarity index 100%
rename from spec/if/impl/wkspace/size.yml
rename to spec/score/wkspace/if/size.yml
diff --git a/spec/if/use/asm.yml b/spec/user/if/asm.yml
similarity index 100%
rename from spec/if/use/asm.yml
rename to spec/user/if/asm.yml
diff --git a/spec/user/if/container.yml b/spec/user/if/container.yml
new file mode 100644
index 0000000..a5d0e96
--- /dev/null
+++ b/spec/user/if/container.yml
@@ -0,0 +1,9 @@
+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
+interface-type: container
+links:
+- role: interface-placement
+  uid: domain
+type: interface
diff --git a/spec/if/domains/use.yml b/spec/user/if/domain.yml
similarity index 100%
rename from spec/if/domains/use.yml
rename to spec/user/if/domain.yml
diff --git a/spec/if/use/false.yml b/spec/user/if/false.yml
similarity index 100%
rename from spec/if/use/false.yml
rename to spec/user/if/false.yml
diff --git a/spec/if/use/true.yml b/spec/user/if/true.yml
similarity index 100%
rename from spec/if/use/true.yml
rename to spec/user/if/true.yml



More information about the vc mailing list