summaryrefslogtreecommitdiffstats
path: root/spec/rtems/part
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rtems/part')
-rw-r--r--spec/rtems/part/if/create.yml50
-rw-r--r--spec/rtems/part/if/delete.yml30
-rw-r--r--spec/rtems/part/if/get-buffer.yml34
-rw-r--r--spec/rtems/part/if/group.yml20
-rw-r--r--spec/rtems/part/if/header.yml12
-rw-r--r--spec/rtems/part/if/ident.yml86
-rw-r--r--spec/rtems/part/if/return-buffer.yml34
-rw-r--r--spec/rtems/part/req/ident.yml15
-rw-r--r--spec/rtems/part/val/ident.yml51
9 files changed, 332 insertions, 0 deletions
diff --git a/spec/rtems/part/if/create.yml b/spec/rtems/part/if/create.yml
new file mode 100644
index 00000000..7a9a7171
--- /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 00000000..db63cebb
--- /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 00000000..691345ed
--- /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 00000000..ae0d0365
--- /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 00000000..040ebb1c
--- /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 00000000..d4e0bb1c
--- /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 00000000..8bc791e6
--- /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 00000000..b6a63f0d
--- /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 00000000..4af46bea
--- /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