diff options
Diffstat (limited to 'spec/rtems/message')
-rw-r--r-- | spec/rtems/message/if/broadcast.yml | 42 | ||||
-rw-r--r-- | spec/rtems/message/if/create.yml | 46 | ||||
-rw-r--r-- | spec/rtems/message/if/delete.yml | 30 | ||||
-rw-r--r-- | spec/rtems/message/if/flush.yml | 34 | ||||
-rw-r--r-- | spec/rtems/message/if/get-number-pending.yml | 34 | ||||
-rw-r--r-- | spec/rtems/message/if/group.yml | 20 | ||||
-rw-r--r-- | spec/rtems/message/if/header.yml | 12 | ||||
-rw-r--r-- | spec/rtems/message/if/ident.yml | 86 | ||||
-rw-r--r-- | spec/rtems/message/if/receive.yml | 46 | ||||
-rw-r--r-- | spec/rtems/message/if/send.yml | 38 | ||||
-rw-r--r-- | spec/rtems/message/if/urgent.yml | 38 | ||||
-rw-r--r-- | spec/rtems/message/req/ident.yml | 15 | ||||
-rw-r--r-- | spec/rtems/message/val/ident.yml | 49 |
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 |