[rtems-central commit] spec: Clarify object services

Sebastian Huber sebh at rtems.org
Wed Feb 3 05:28:01 UTC 2021


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Feb  2 13:05:24 2021 +0100

spec: Clarify object services

---

 spec/rtems/object/if/api-maximum-class.yml     |  7 ++++--
 spec/rtems/object/if/api-minimum-class.yml     |  7 ++++--
 spec/rtems/object/if/build-id-macro.yml        | 35 ++++++++++++++++++++++++++
 spec/rtems/object/if/build-id.yml              | 30 ++++++++++++++--------
 spec/rtems/object/if/build-name-macro.yml      | 35 ++++++++++++++++++++++++++
 spec/rtems/object/if/build-name.yml            | 28 ++++++++++++++-------
 spec/rtems/object/if/get-api-class-name.yml    |  6 +++--
 spec/rtems/object/if/get-api-name.yml          |  6 +++--
 spec/rtems/object/if/get-class-information.yml |  7 ++++--
 spec/rtems/object/if/get-classic-name.yml      |  7 ++++--
 spec/rtems/object/if/get-local-node.yml        |  7 ++++--
 spec/rtems/object/if/get-name.yml              |  8 +++---
 spec/rtems/object/if/group.yml                 | 16 ++++++++++++
 spec/rtems/object/if/id-api-maximum-macro.yml  | 22 ++++++++++++++++
 spec/rtems/object/if/id-api-maximum.yml        | 17 ++++++++-----
 spec/rtems/object/if/id-api-minimum-macro.yml  | 22 ++++++++++++++++
 spec/rtems/object/if/id-api-minimum.yml        | 17 ++++++++-----
 spec/rtems/object/if/id-get-api-macro.yml      | 25 ++++++++++++++++++
 spec/rtems/object/if/id-get-api.yml            | 19 ++++++++------
 spec/rtems/object/if/id-get-class-macro.yml    | 25 ++++++++++++++++++
 spec/rtems/object/if/id-get-class.yml          | 19 ++++++++------
 spec/rtems/object/if/id-get-index-macro.yml    | 25 ++++++++++++++++++
 spec/rtems/object/if/id-get-index.yml          | 19 ++++++++------
 spec/rtems/object/if/id-get-node-macro.yml     | 25 ++++++++++++++++++
 spec/rtems/object/if/id-get-node.yml           | 19 ++++++++------
 spec/rtems/object/if/id-initial.yml            |  7 ++++--
 spec/rtems/object/if/set-name.yml              |  9 ++++---
 27 files changed, 388 insertions(+), 81 deletions(-)

diff --git a/spec/rtems/object/if/api-maximum-class.yml b/spec/rtems/object/if/api-maximum-class.yml
index ca8069f..43f952b 100644
--- a/spec/rtems/object/if/api-maximum-class.yml
+++ b/spec/rtems/object/if/api-maximum-class.yml
@@ -21,9 +21,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_api_maximum_class
-notes: |
-  This directive is strictly local and does not impact task scheduling.
+notes: null
 params:
 - description: |
     is the object API to get the highest valid class value.
diff --git a/spec/rtems/object/if/api-minimum-class.yml b/spec/rtems/object/if/api-minimum-class.yml
index 1877cda..d1a9455 100644
--- a/spec/rtems/object/if/api-minimum-class.yml
+++ b/spec/rtems/object/if/api-minimum-class.yml
@@ -21,9 +21,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_api_minimum_class
-notes: |
-  This directive is strictly local and does not impact task scheduling.
+notes: null
 params:
 - description: |
     is the object API to get the lowest valid class value.
diff --git a/spec/rtems/object/if/build-id-macro.yml b/spec/rtems/object/if/build-id-macro.yml
new file mode 100644
index 0000000..ff999ce
--- /dev/null
+++ b/spec/rtems/object/if/build-id-macro.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: null
+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
+index-entries: []
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+name: rtems_build_id
+notes: null
+params:
+- description: null
+  dir: null
+  name: _api
+- description: null
+  dir: null
+  name: _class
+- description: null
+  dir: null
+  name: _node
+- description: null
+  dir: null
+  name: _index
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/build-id.yml b/spec/rtems/object/if/build-id.yml
index 0b65c5a..86af70c 100644
--- a/spec/rtems/object/if/build-id.yml
+++ b/spec/rtems/object/if/build-id.yml
@@ -3,41 +3,51 @@ brief: |
   Builds the object identifier from the API, class, MPCI node, and index
   components.
 copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2021 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} )
+  default:
+    attributes: null
+    body: null
+    params:
+    - ${/c/if/uint32_t:/name} ${.:/params[0]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[2]/name}
+    - ${/c/if/uint32_t:/name} ${.:/params[3]/name}
+    return: ${../../type/if/id:/name}
   variants: []
 description: null
 enabled-by: true
 index-entries: []
-interface-type: macro
+interface-type: function
 links:
 - role: interface-placement
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-const
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_build_id
-notes: |
-  This directive is strictly local and does not impact task scheduling.
+notes: null
 params:
 - description: |
     is the API of the object identifier to build.
   dir: null
-  name: _api
+  name: api
 - description: |
     is the class of the object identifier to build.
   dir: null
-  name: _class
+  name: the_class
 - description: |
     is the MPCI node of the object identifier to build.
   dir: null
-  name: _node
+  name: node
 - description: |
     is the index of the object identifier to build.
   dir: null
-  name: _index
+  name: index
 return:
   return: |
     Returns the object identifier built from the API, class, MPCI node, and
diff --git a/spec/rtems/object/if/build-name-macro.yml b/spec/rtems/object/if/build-name-macro.yml
new file mode 100644
index 0000000..ec8dd16
--- /dev/null
+++ b/spec/rtems/object/if/build-name-macro.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: null
+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
+index-entries: []
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+name: rtems_build_name
+notes: null
+params:
+- description: null
+  dir: null
+  name: _c1
+- description: null
+  dir: null
+  name: _c2
+- description: null
+  dir: null
+  name: _c3
+- description: null
+  dir: null
+  name: _c4
+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
index 920b2d1..8565527 100644
--- a/spec/rtems/object/if/build-name.yml
+++ b/spec/rtems/object/if/build-name.yml
@@ -5,8 +5,15 @@ 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} )
+  default:
+    attributes: null
+    body: null
+    params:
+    - char ${.:/params[0]/name}
+    - char ${.:/params[1]/name}
+    - char ${.:/params[2]/name}
+    - char ${.:/params[3]/name}
+    return: ${../../type/if/name:/name}
   variants: []
 description: |
   This directive takes the four characters provided as arguments and composes a
@@ -14,32 +21,35 @@ description: |
   8-bits and ${.:/params[3]/name} in the least significant 8-bits.
 enabled-by: true
 index-entries: []
-interface-type: macro
+interface-type: function
 links:
 - role: interface-placement
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-const
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_build_name
-notes: |
-  This directive is strictly local and does not impact task scheduling.
+notes: null
 params:
 - description: |
     is the first character of the name.
   dir: null
-  name: _c1
+  name: c1
 - description: |
     is the second character of the name.
   dir: null
-  name: _c2
+  name: c2
 - description: |
     is the third character of the name.
   dir: null
-  name: _c3
+  name: c3
 - description: |
     is the fourth character of the name.
   dir: null
-  name: _c4
+  name: c4
 return:
   return: |
     Returns the object name composed of the four characters.
diff --git a/spec/rtems/object/if/get-api-class-name.yml b/spec/rtems/object/if/get-api-class-name.yml
index 25dfdda..ed46319 100644
--- a/spec/rtems/object/if/get-api-class-name.yml
+++ b/spec/rtems/object/if/get-api-class-name.yml
@@ -22,10 +22,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_get_api_class_name
 notes: |
-  This directive is strictly local and does not impact task scheduling.
-
   The string returned is from constant space.  Do not modify or free it.
 params:
 - description: |
diff --git a/spec/rtems/object/if/get-api-name.yml b/spec/rtems/object/if/get-api-name.yml
index 88c0cf8..080fe03 100644
--- a/spec/rtems/object/if/get-api-name.yml
+++ b/spec/rtems/object/if/get-api-name.yml
@@ -21,10 +21,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_get_api_name
 notes: |
-  This directive is strictly local and does not impact task scheduling.
-
   The string returned is from constant space.  Do not modify or free it.
 params:
 - description: |
diff --git a/spec/rtems/object/if/get-class-information.yml b/spec/rtems/object/if/get-class-information.yml
index 8467e96..2530d12 100644
--- a/spec/rtems/object/if/get-class-information.yml
+++ b/spec/rtems/object/if/get-class-information.yml
@@ -23,9 +23,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_get_class_information
-notes: |
-  This directive is strictly local and does not impact task scheduling.
+notes: null
 params:
 - description: |
     is the object API of the object class.
diff --git a/spec/rtems/object/if/get-classic-name.yml b/spec/rtems/object/if/get-classic-name.yml
index 67fef06..7dfcdf7 100644
--- a/spec/rtems/object/if/get-classic-name.yml
+++ b/spec/rtems/object/if/get-classic-name.yml
@@ -22,9 +22,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_get_classic_name
-notes: |
-  This directive is strictly local and does not impact task scheduling.
+notes: null
 params:
 - description: |
     is the object identifier to get the name.
diff --git a/spec/rtems/object/if/get-local-node.yml b/spec/rtems/object/if/get-local-node.yml
index b738c7e..ac57453 100644
--- a/spec/rtems/object/if/get-local-node.yml
+++ b/spec/rtems/object/if/get-local-node.yml
@@ -21,9 +21,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_get_local_node
-notes: |
-  This directive is strictly local and does not impact task scheduling.
+notes: null
 params: []
 return:
   return: |
diff --git a/spec/rtems/object/if/get-name.yml b/spec/rtems/object/if/get-name.yml
index 6d3c9ca..8be9dd5 100644
--- a/spec/rtems/object/if/get-name.yml
+++ b/spec/rtems/object/if/get-name.yml
@@ -29,10 +29,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_get_name
-notes: |
-  This directive may cause the calling task to be preempted due to an obtain
-  and release of the object allocator mutex.
+notes: null
 params:
 - description: |
     is the object identifier to get the name.
diff --git a/spec/rtems/object/if/group.yml b/spec/rtems/object/if/group.yml
index 7ee11c0..80d9c80 100644
--- a/spec/rtems/object/if/group.yml
+++ b/spec/rtems/object/if/group.yml
@@ -20,8 +20,12 @@ links:
 - role: placement-order
   uid: build-id
 - role: placement-order
+  uid: build-id-macro
+- role: placement-order
   uid: build-name
 - role: placement-order
+  uid: build-name-macro
+- role: placement-order
   uid: get-classic-name
 - role: placement-order
   uid: get-name
@@ -30,16 +34,28 @@ links:
 - role: placement-order
   uid: id-get-api
 - role: placement-order
+  uid: id-get-api-macro
+- role: placement-order
   uid: id-get-class
 - role: placement-order
+  uid: id-get-class-macro
+- role: placement-order
   uid: id-get-node
 - role: placement-order
+  uid: id-get-node-macro
+- role: placement-order
   uid: id-get-index
 - role: placement-order
+  uid: id-get-index-macro
+- role: placement-order
   uid: id-api-minimum
 - role: placement-order
+  uid: id-api-minimum-macro
+- role: placement-order
   uid: id-api-maximum
 - role: placement-order
+  uid: id-api-maximum-macro
+- role: placement-order
   uid: api-minimum-class
 - role: placement-order
   uid: api-maximum-class
diff --git a/spec/rtems/object/if/id-api-maximum-macro.yml b/spec/rtems/object/if/id-api-maximum-macro.yml
new file mode 100644
index 0000000..173d68b
--- /dev/null
+++ b/spec/rtems/object/if/id-api-maximum-macro.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: null
+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
+index-entries: []
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+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-maximum.yml b/spec/rtems/object/if/id-api-maximum.yml
index f09c0bf..6c2dd42 100644
--- a/spec/rtems/object/if/id-api-maximum.yml
+++ b/spec/rtems/object/if/id-api-maximum.yml
@@ -5,22 +5,27 @@ 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}
+  default:
+    attributes: null
+    body: null
+    params: []
+    return: int
   variants: []
 description: null
 enabled-by: true
 index-entries: []
-interface-type: macro
+interface-type: function
 links:
 - role: interface-placement
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-const
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_id_api_maximum
-notes: |
-  This directive is strictly local and does not impact task scheduling.
-
-  A body is also provided.
+notes: null
 params: []
 return:
   return: |
diff --git a/spec/rtems/object/if/id-api-minimum-macro.yml b/spec/rtems/object/if/id-api-minimum-macro.yml
new file mode 100644
index 0000000..2f7cc68
--- /dev/null
+++ b/spec/rtems/object/if/id-api-minimum-macro.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: null
+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
+index-entries: []
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+name: rtems_object_id_api_minimum
+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
index 7d98946..948e3d1 100644
--- a/spec/rtems/object/if/id-api-minimum.yml
+++ b/spec/rtems/object/if/id-api-minimum.yml
@@ -5,22 +5,27 @@ 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}
+  default:
+    attributes: null
+    body: null
+    params: []
+    return: int
   variants: []
 description: null
 enabled-by: true
 index-entries: []
-interface-type: macro
+interface-type: function
 links:
 - role: interface-placement
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-const
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_id_api_minimum
-notes: |
-  This directive is strictly local and does not impact task scheduling.
-
-  A body is also provided.
+notes: null
 params: []
 return:
   return: |
diff --git a/spec/rtems/object/if/id-get-api-macro.yml b/spec/rtems/object/if/id-get-api-macro.yml
new file mode 100644
index 0000000..dea6713
--- /dev/null
+++ b/spec/rtems/object/if/id-get-api-macro.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: null
+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
+index-entries: []
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+name: rtems_object_id_get_api
+notes: null
+params:
+- description: null
+  dir: null
+  name: _id
+return:
+  return: null
+  return-values: []
+type: interface
diff --git a/spec/rtems/object/if/id-get-api.yml b/spec/rtems/object/if/id-get-api.yml
index 4068cd7..0f0097f 100644
--- a/spec/rtems/object/if/id-get-api.yml
+++ b/spec/rtems/object/if/id-get-api.yml
@@ -5,30 +5,35 @@ 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} )
+  default:
+    attributes: null
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: int
   variants: []
 description: null
 enabled-by: true
 index-entries: []
-interface-type: macro
+interface-type: function
 links:
 - role: interface-placement
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-const
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_id_get_api
 notes: |
-  This directive is strictly local and does not impact task scheduling.
-
   This directive does not validate the object identifier provided in
   ${.:/params[0]/name}.
-
-  A body is also provided.
 params:
 - description: |
     is the object identifier with the API component to get.
   dir: null
-  name: _id
+  name: id
 return:
   return: |
     Returns the API component of the object identifier.
diff --git a/spec/rtems/object/if/id-get-class-macro.yml b/spec/rtems/object/if/id-get-class-macro.yml
new file mode 100644
index 0000000..9547b9b
--- /dev/null
+++ b/spec/rtems/object/if/id-get-class-macro.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: null
+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
+index-entries: []
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+name: rtems_object_id_get_class
+notes: null
+params:
+- description: null
+  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
index 172b1d1..c6e440e 100644
--- a/spec/rtems/object/if/id-get-class.yml
+++ b/spec/rtems/object/if/id-get-class.yml
@@ -5,30 +5,35 @@ 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} )
+  default:
+    attributes: null
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: int
   variants: []
 description: null
 enabled-by: true
 index-entries: []
-interface-type: macro
+interface-type: function
 links:
 - role: interface-placement
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-const
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_id_get_class
 notes: |
-  This directive is strictly local and does not impact task scheduling.
-
   This directive does not validate the object identifier provided in
   ${.:/params[0]/name}.
-
-  A body is also provided.
 params:
 - description: |
     is the object identifier with the class component to get.
   dir: null
-  name: _id
+  name: id
 return:
   return: |
     Returns the class component of the object identifier.
diff --git a/spec/rtems/object/if/id-get-index-macro.yml b/spec/rtems/object/if/id-get-index-macro.yml
new file mode 100644
index 0000000..3b5b80d
--- /dev/null
+++ b/spec/rtems/object/if/id-get-index-macro.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: null
+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
+index-entries: []
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+name: rtems_object_id_get_index
+notes: null
+params:
+- description: null
+  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
index 7b85033..218e487 100644
--- a/spec/rtems/object/if/id-get-index.yml
+++ b/spec/rtems/object/if/id-get-index.yml
@@ -5,30 +5,35 @@ 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} )
+  default:
+    attributes: null
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: int
   variants: []
 description: null
 enabled-by: true
 index-entries: []
-interface-type: macro
+interface-type: function
 links:
 - role: interface-placement
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-const
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_id_get_index
 notes: |
-  This directive is strictly local and does not impact task scheduling.
-
   This directive does not validate the object identifier provided in
   ${.:/params[0]/name}.
-
-  A body is also provided.
 params:
 - description: |
     is the object identifier with the index component to get.
   dir: null
-  name: _id
+  name: id
 return:
   return: |
     Returns the index component of the object identifier.
diff --git a/spec/rtems/object/if/id-get-node-macro.yml b/spec/rtems/object/if/id-get-node-macro.yml
new file mode 100644
index 0000000..fead805
--- /dev/null
+++ b/spec/rtems/object/if/id-get-node-macro.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: null
+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
+index-entries: []
+interface-type: macro
+links:
+- role: interface-placement
+  uid: header
+name: rtems_object_id_get_node
+notes: null
+params:
+- description: null
+  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
index 98f752e..664a8ed 100644
--- a/spec/rtems/object/if/id-get-node.yml
+++ b/spec/rtems/object/if/id-get-node.yml
@@ -5,30 +5,35 @@ 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} )
+  default:
+    attributes: null
+    body: null
+    params:
+    - ${../../type/if/id:/name} ${.:/params[0]/name}
+    return: int
   variants: []
 description: null
 enabled-by: true
 index-entries: []
-interface-type: macro
+interface-type: function
 links:
 - role: interface-placement
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-const
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: rtems_object_id_get_node
 notes: |
-  This directive is strictly local and does not impact task scheduling.
-
   This directive does not validate the object identifier provided in
   ${.:/params[0]/name}.
-
-  A body is also provided.
 params:
 - description: |
     is the object identifier with the MPCI node component to get.
   dir: null
-  name: _id
+  name: id
 return:
   return: |
     Returns the MPCI node component of the object identifier.
diff --git a/spec/rtems/object/if/id-initial.yml b/spec/rtems/object/if/id-initial.yml
index 33185b1..f57e472 100644
--- a/spec/rtems/object/if/id-initial.yml
+++ b/spec/rtems/object/if/id-initial.yml
@@ -18,9 +18,12 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-any
+- role: constraint
+  uid: /constraint/directive-no-preempt
 name: RTEMS_OBJECT_ID_INITIAL
-notes: |
-  This directive is strictly local and does not impact task scheduling.
+notes: null
 params:
 - description: |
     is the API of the object identifier to build.
diff --git a/spec/rtems/object/if/set-name.yml b/spec/rtems/object/if/set-name.yml
index 6802d38..35f6fe5 100644
--- a/spec/rtems/object/if/set-name.yml
+++ b/spec/rtems/object/if/set-name.yml
@@ -23,11 +23,14 @@ links:
   uid: header
 - role: interface-ingroup
   uid: group
+- role: constraint
+  uid: /constraint/directive-ctx-devinit
+- role: constraint
+  uid: /constraint/directive-ctx-task
+- role: constraint
+  uid: /constraint/object-allocator
 name: rtems_object_set_name
 notes: |
-  This directive may cause the calling task to be preempted due to an obtain
-  and release of the object allocator mutex.
-
   This directive can be used to set the name of objects which do not have a
   naming scheme per their API.
 



More information about the vc mailing list