diff options
Diffstat (limited to 'spec/rtems/attr')
29 files changed, 832 insertions, 0 deletions
diff --git a/spec/rtems/attr/if/application-task.yml b/spec/rtems/attr/if/application-task.yml new file mode 100644 index 00000000..b33293e2 --- /dev/null +++ b/spec/rtems/attr/if/application-task.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the task was created by the + application using normal Classic API methods. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_APPLICATION_TASK +notes: null +type: interface diff --git a/spec/rtems/attr/if/attribute.yml b/spec/rtems/attr/if/attribute.yml new file mode 100644 index 00000000..18054d55 --- /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/rtems/attr/if/barrier-automatic-release.yml b/spec/rtems/attr/if/barrier-automatic-release.yml new file mode 100644 index 00000000..f60760d0 --- /dev/null +++ b/spec/rtems/attr/if/barrier-automatic-release.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Barrier instance + created will use an automatic release protocol. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000200' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_BARRIER_AUTOMATIC_RELEASE +notes: null +type: interface diff --git a/spec/rtems/attr/if/barrier-manual-release.yml b/spec/rtems/attr/if/barrier-manual-release.yml new file mode 100644 index 00000000..27c3d02b --- /dev/null +++ b/spec/rtems/attr/if/barrier-manual-release.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Barrier instance + created will use the manual release protocol. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_BARRIER_MANUAL_RELEASE +notes: null +type: interface diff --git a/spec/rtems/attr/if/binary-semaphore.yml b/spec/rtems/attr/if/binary-semaphore.yml new file mode 100644 index 00000000..f994060e --- /dev/null +++ b/spec/rtems/attr/if/binary-semaphore.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will be a proper binary semaphore or mutex. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000010' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_BINARY_SEMAPHORE +notes: null +type: interface diff --git a/spec/rtems/attr/if/counting-semaphore.yml b/spec/rtems/attr/if/counting-semaphore.yml new file mode 100644 index 00000000..9d7c69ad --- /dev/null +++ b/spec/rtems/attr/if/counting-semaphore.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will be a counting semaphore. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_COUNTING_SEMAPHORE +notes: null +type: interface diff --git a/spec/rtems/attr/if/default.yml b/spec/rtems/attr/if/default.yml new file mode 100644 index 00000000..1c4985fa --- /dev/null +++ b/spec/rtems/attr/if/default.yml @@ -0,0 +1,20 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This is the default value for an attribute set. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_DEFAULT_ATTRIBUTES +notes: null +type: interface diff --git a/spec/rtems/attr/if/fifo.yml b/spec/rtems/attr/if/fifo.yml new file mode 100644 index 00000000..4df3d6e7 --- /dev/null +++ b/spec/rtems/attr/if/fifo.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This is the attribute constant which reflects that blocking tasks will be + managed using FIFO discipline. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_FIFO +notes: null +type: interface diff --git a/spec/rtems/attr/if/floating-point.yml b/spec/rtems/attr/if/floating-point.yml new file mode 100644 index 00000000..40b8ea94 --- /dev/null +++ b/spec/rtems/attr/if/floating-point.yml @@ -0,0 +1,23 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the task will use the floating point + hardware. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000001' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_FLOATING_POINT +notes: | + On some architectures, there will be a floating point context associated with + this task. +type: interface diff --git a/spec/rtems/attr/if/global.yml b/spec/rtems/attr/if/global.yml new file mode 100644 index 00000000..a88b886c --- /dev/null +++ b/spec/rtems/attr/if/global.yml @@ -0,0 +1,20 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This is the attribute constant to indicate global resource. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000002' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_GLOBAL +notes: null +type: interface diff --git a/spec/rtems/attr/if/group.yml b/spec/rtems/attr/if/group.yml new file mode 100644 index 00000000..d28fd5d4 --- /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 00000000..ae4340e8 --- /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/rtems/attr/if/inherit-priority.yml b/spec/rtems/attr/if/inherit-priority.yml new file mode 100644 index 00000000..161472d2 --- /dev/null +++ b/spec/rtems/attr/if/inherit-priority.yml @@ -0,0 +1,22 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will use the Priority Inheritance Protocol. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000040' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_INHERIT_PRIORITY +notes: | + The semaphore instance must be a binary semaphore. +type: interface diff --git a/spec/rtems/attr/if/local.yml b/spec/rtems/attr/if/local.yml new file mode 100644 index 00000000..9147f3cf --- /dev/null +++ b/spec/rtems/attr/if/local.yml @@ -0,0 +1,20 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This is the attribute constant to indicate local resource. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_LOCAL +notes: null +type: interface diff --git a/spec/rtems/attr/if/multiprocessor-resource-sharing.yml b/spec/rtems/attr/if/multiprocessor-resource-sharing.yml new file mode 100644 index 00000000..3cb4c0c6 --- /dev/null +++ b/spec/rtems/attr/if/multiprocessor-resource-sharing.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will use the Multiprocessor Resource Sharing Protocol. +copyrights: +- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: '0x00000100' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_MULTIPROCESSOR_RESOURCE_SHARING +notes: | + The semaphore instance must be a binary semaphore. +type: interface diff --git a/spec/rtems/attr/if/no-floating-point.yml b/spec/rtems/attr/if/no-floating-point.yml new file mode 100644 index 00000000..0d97cab4 --- /dev/null +++ b/spec/rtems/attr/if/no-floating-point.yml @@ -0,0 +1,23 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the task will not use the floating + point hardware. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_NO_FLOATING_POINT +notes: | + If the architecture permits it, then the FPU will be disabled when the task + is executing. +type: interface diff --git a/spec/rtems/attr/if/no-inherit-priority.yml b/spec/rtems/attr/if/no-inherit-priority.yml new file mode 100644 index 00000000..c3d8656f --- /dev/null +++ b/spec/rtems/attr/if/no-inherit-priority.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will not use the Priority Inheritance Protocol. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_NO_INHERIT_PRIORITY +notes: null +type: interface diff --git a/spec/rtems/attr/if/no-multiprocessor-resource-sharing.yml b/spec/rtems/attr/if/no-multiprocessor-resource-sharing.yml new file mode 100644 index 00000000..050627d5 --- /dev/null +++ b/spec/rtems/attr/if/no-multiprocessor-resource-sharing.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will not use the Multiprocessor Resource Sharing Protocol. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING +notes: null +type: interface diff --git a/spec/rtems/attr/if/no-priority-ceiling.yml b/spec/rtems/attr/if/no-priority-ceiling.yml new file mode 100644 index 00000000..ee71f3f3 --- /dev/null +++ b/spec/rtems/attr/if/no-priority-ceiling.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will not use the Priority Ceiling Protocol. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_NO_PRIORITY_CEILING +notes: null +type: interface diff --git a/spec/rtems/attr/if/priority-ceiling.yml b/spec/rtems/attr/if/priority-ceiling.yml new file mode 100644 index 00000000..c5e8ba7b --- /dev/null +++ b/spec/rtems/attr/if/priority-ceiling.yml @@ -0,0 +1,22 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will use the Priority Ceiling Protocol. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000080' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_PRIORITY_CEILING +notes: | + The semaphore instance must be a binary semaphore. +type: interface diff --git a/spec/rtems/attr/if/priority.yml b/spec/rtems/attr/if/priority.yml new file mode 100644 index 00000000..363b548c --- /dev/null +++ b/spec/rtems/attr/if/priority.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This is the attribute constant which reflects that blocking tasks will be + managed using task priority discipline. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000004' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_PRIORITY +notes: null +type: interface diff --git a/spec/rtems/attr/if/semaphore-class.yml b/spec/rtems/attr/if/semaphore-class.yml new file mode 100644 index 00000000..d719886b --- /dev/null +++ b/spec/rtems/attr/if/semaphore-class.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This is the mask for the attribute bits associated with the Classic API + Semaphore Manager. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000030' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_SEMAPHORE_CLASS +notes: null +type: interface diff --git a/spec/rtems/attr/if/simple-binary-semaphore.yml b/spec/rtems/attr/if/simple-binary-semaphore.yml new file mode 100644 index 00000000..4853914e --- /dev/null +++ b/spec/rtems/attr/if/simple-binary-semaphore.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the Classic API Semaphore instance + created will be a simple binary semaphore. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00000020' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_SIMPLE_BINARY_SEMAPHORE +notes: null +type: interface diff --git a/spec/rtems/attr/if/system-task.yml b/spec/rtems/attr/if/system-task.yml new file mode 100644 index 00000000..f3e775ca --- /dev/null +++ b/spec/rtems/attr/if/system-task.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This attribute constant indicates that the task was created by RTEMS as a + support task. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2008 On-Line Applications Research Corporation (OAR) +definition: + default: '0x00008000' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_SYSTEM_TASK +notes: null +type: interface diff --git a/spec/rtems/attr/req/bit-set.yml b/spec/rtems/attr/req/bit-set.yml new file mode 100644 index 00000000..fee72247 --- /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 00000000..f3f0e32c --- /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 00000000..0323dd29 --- /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 00000000..30e73461 --- /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 00000000..83894365 --- /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 |