summaryrefslogtreecommitdiffstats
path: root/spec/rtems/message
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rtems/message')
-rw-r--r--spec/rtems/message/if/broadcast.yml42
-rw-r--r--spec/rtems/message/if/create.yml46
-rw-r--r--spec/rtems/message/if/delete.yml30
-rw-r--r--spec/rtems/message/if/flush.yml34
-rw-r--r--spec/rtems/message/if/get-number-pending.yml34
-rw-r--r--spec/rtems/message/if/group.yml20
-rw-r--r--spec/rtems/message/if/header.yml12
-rw-r--r--spec/rtems/message/if/ident.yml86
-rw-r--r--spec/rtems/message/if/receive.yml46
-rw-r--r--spec/rtems/message/if/send.yml38
-rw-r--r--spec/rtems/message/if/urgent.yml38
-rw-r--r--spec/rtems/message/req/ident.yml15
-rw-r--r--spec/rtems/message/val/ident.yml49
13 files changed, 490 insertions, 0 deletions
diff --git a/spec/rtems/message/if/broadcast.yml b/spec/rtems/message/if/broadcast.yml
new file mode 100644
index 00000000..ab2e45d0
--- /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 00000000..88f0cdb1
--- /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 00000000..3e6fb462
--- /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 00000000..faeb0c81
--- /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 00000000..aab16f4d
--- /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 00000000..82c9944d
--- /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 00000000..519439da
--- /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 00000000..a80d93d9
--- /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 00000000..5c77dedf
--- /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 00000000..7ce5dd07
--- /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 00000000..bf21ed90
--- /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 00000000..1e623ab9
--- /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 00000000..2a1e9ff4
--- /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