summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-05-05 14:41:20 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-05-08 21:58:56 +0200
commit616271ea455ef6f67e7ade140fd8c81668d504d7 (patch)
tree9c0107809cf97fc1df0a6dead10fbb051914bd80
parentspec: Fix formatting (diff)
downloadrtems-central-616271ea455ef6f67e7ade140fd8c81668d504d7.tar.bz2
spec: Clarify scheduler configuration
-rw-r--r--spec/acfg/if/scheduler-assign-no-scheduler.yml2
-rw-r--r--spec/acfg/if/scheduler-assign-processor-mandatory.yml2
-rw-r--r--spec/acfg/if/scheduler-assign-processor-optional.yml2
-rw-r--r--spec/acfg/if/scheduler-assign.yml2
-rw-r--r--spec/acfg/if/scheduler-control-edf-smp.yml14
-rw-r--r--spec/acfg/if/scheduler-control-priority.yml14
-rw-r--r--spec/acfg/req/scheduler-control-edf-smp.yml18
-rw-r--r--spec/acfg/req/scheduler-control-priority.yml18
-rw-r--r--spec/acfg/val/scheduler-table-entries-one-cpu.yml2
-rw-r--r--spec/rtems/scheduler/val/smp-only.yml17
10 files changed, 84 insertions, 7 deletions
diff --git a/spec/acfg/if/scheduler-assign-no-scheduler.yml b/spec/acfg/if/scheduler-assign-no-scheduler.yml
index bf169fd6..9f32984f 100644
--- a/spec/acfg/if/scheduler-assign-no-scheduler.yml
+++ b/spec/acfg/if/scheduler-assign-no-scheduler.yml
@@ -1,7 +1,7 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
+enabled-by: RTEMS_SMP
index-entries: []
interface-type: unspecified-define
links:
diff --git a/spec/acfg/if/scheduler-assign-processor-mandatory.yml b/spec/acfg/if/scheduler-assign-processor-mandatory.yml
index 3cf53fe0..25d64954 100644
--- a/spec/acfg/if/scheduler-assign-processor-mandatory.yml
+++ b/spec/acfg/if/scheduler-assign-processor-mandatory.yml
@@ -1,7 +1,7 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
+enabled-by: RTEMS_SMP
index-entries: []
interface-type: unspecified-define
links:
diff --git a/spec/acfg/if/scheduler-assign-processor-optional.yml b/spec/acfg/if/scheduler-assign-processor-optional.yml
index 2bcb89f1..67a80bdb 100644
--- a/spec/acfg/if/scheduler-assign-processor-optional.yml
+++ b/spec/acfg/if/scheduler-assign-processor-optional.yml
@@ -1,7 +1,7 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
+enabled-by: RTEMS_SMP
index-entries: []
interface-type: unspecified-define
links:
diff --git a/spec/acfg/if/scheduler-assign.yml b/spec/acfg/if/scheduler-assign.yml
index 184370e9..01b98ad3 100644
--- a/spec/acfg/if/scheduler-assign.yml
+++ b/spec/acfg/if/scheduler-assign.yml
@@ -1,7 +1,7 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
+enabled-by: RTEMS_SMP
index-entries: []
interface-type: unspecified-macro
links:
diff --git a/spec/acfg/if/scheduler-control-edf-smp.yml b/spec/acfg/if/scheduler-control-edf-smp.yml
new file mode 100644
index 00000000..3fae05ed
--- /dev/null
+++ b/spec/acfg/if/scheduler-control-edf-smp.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+index-entries: []
+interface-type: unspecified-macro
+links:
+- role: interface-placement
+ uid: header-scheduler
+- role: interface-ingroup
+ uid: group-schedgeneral
+name: RTEMS_SCHEDULER_EDF_SMP
+references: []
+type: interface
diff --git a/spec/acfg/if/scheduler-control-priority.yml b/spec/acfg/if/scheduler-control-priority.yml
new file mode 100644
index 00000000..335dc87f
--- /dev/null
+++ b/spec/acfg/if/scheduler-control-priority.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-macro
+links:
+- role: interface-placement
+ uid: header-scheduler
+- role: interface-ingroup
+ uid: group-schedgeneral
+name: RTEMS_SCHEDULER_PRIORITY
+references: []
+type: interface
diff --git a/spec/acfg/req/scheduler-control-edf-smp.yml b/spec/acfg/req/scheduler-control-edf-smp.yml
new file mode 100644
index 00000000..57f79bcc
--- /dev/null
+++ b/spec/acfg/req/scheduler-control-edf-smp.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/scheduler-control-edf-smp
+- role: requirement-refinement
+ uid: group
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/scheduler-control-edf-smp:/name} macro shall define a scheduler
+ control data structure for the ${/doc/if/scheduler-smp-edf:/name} scheduler
+ with the specified name.
+type: requirement
diff --git a/spec/acfg/req/scheduler-control-priority.yml b/spec/acfg/req/scheduler-control-priority.yml
new file mode 100644
index 00000000..f4902eef
--- /dev/null
+++ b/spec/acfg/req/scheduler-control-priority.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/scheduler-control-priority
+- role: requirement-refinement
+ uid: group
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/scheduler-control-priority:/name} macro shall define a scheduler
+ control data structure for the ${/doc/if/scheduler-priority:/name} scheduler
+ with the specified name and priority count.
+type: requirement
diff --git a/spec/acfg/val/scheduler-table-entries-one-cpu.yml b/spec/acfg/val/scheduler-table-entries-one-cpu.yml
index 2286fe52..a2996782 100644
--- a/spec/acfg/val/scheduler-table-entries-one-cpu.yml
+++ b/spec/acfg/val/scheduler-table-entries-one-cpu.yml
@@ -18,6 +18,8 @@ test-actions:
links:
- role: validation
uid: ../req/scheduler-table-entries
+ - role: validation
+ uid: ../req/scheduler-control-priority
links: []
test-brief: |
Tests the effect of ${/acfg/if/scheduler-table-entries:/name} the application
diff --git a/spec/rtems/scheduler/val/smp-only.yml b/spec/rtems/scheduler/val/smp-only.yml
index 25a7eb87..7535f5fa 100644
--- a/spec/rtems/scheduler/val/smp-only.yml
+++ b/spec/rtems/scheduler/val/smp-only.yml
@@ -66,9 +66,10 @@ test-actions:
- action-brief: |
Call ${../if/ident:/name} for each configured scheduler.
action-code: |
- rtems_status_code sc;
- rtems_id id[ 4 ];
- rtems_id id_by_cpu;
+ rtems_status_code sc;
+ rtems_id id[ 4 ];
+ rtems_id id_by_cpu;
+ rtems_task_priority priority;
sc = rtems_scheduler_ident( TEST_SCHEDULER_A_NAME, &id[ 0 ]);
T_step_rsc_success( ${.:/step}, sc );
@@ -121,6 +122,15 @@ test-actions:
- role: validation
uid: /acfg/req/scheduler-assign-scheduler
- brief: |
+ Check that scheduler B has the maximum priority of the EDF SMP scheduler.
+ code: |
+ sc = rtems_scheduler_get_maximum_priority( id_by_cpu, &priority );
+ T_step_rsc_success( ${.:/step}, sc );
+ T_step_eq_u32( ${.:/step}, priority, (uint32_t) INT_MAX );
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-control-edf-smp
+ - brief: |
Check that processor 2 has scheduler C assigned if it is present.
code: |
sc = rtems_scheduler_ident_by_processor( 2, &id_by_cpu );
@@ -147,6 +157,7 @@ test-context-support: null
test-description: null
test-header: null
test-includes:
+- limits.h
- rtems.h
test-local-includes:
- ts-config.h