summaryrefslogtreecommitdiffstats
path: root/spec/rtems/message/if/delete.yml
blob: e64b97cc2eb8ddf3987d4bfa79ebbc9a7f988f30 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
brief: |
  Deletes the message queue.
copyrights:
- Copyright (C) 2021 embedded brains GmbH & Co. KG
- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
definition:
  default:
    attributes: null
    body: null
    params:
    - ${../../type/if/id:/name} ${.:/params[0]/name}
    return: ${../../status/if/code:/name}
  variants: []
description: |
  This directive deletes the message queue specified by ${.:/params[0]/name}.
  As a result of this directive, all tasks blocked waiting to receive a message
  from this queue will be readied and returned a status code which indicates
  that the message queue was deleted.
enabled-by: true
index-entries:
- delete a message queue
interface-type: function
links:
- role: interface-placement
  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
- role: constraint
  uid: /constraint/mp-send
- role: constraint
  uid: ../../constraint/delete-by-any-task
- role: constraint
  uid: /constraint/obj-unlimited-free
name: rtems_message_queue_delete
notes: |
  When the message queue is deleted, any messages in the queue are returned to
  the free message buffer pool.  Any information stored in those messages is
  lost.  The message buffers allocated for the message queue are reclaimed.

  The ${/glossary/qcb:/term} for the deleted message queue is reclaimed by
  RTEMS.

  When a global message queue is deleted, the message queue identifier must be
  transmitted to every node in the system for deletion from the local copy of
  the global object table.

  The message queue must reside on the local node, even if the message queue
  was created with the ${../../attr/if/global:/name} attribute.

  Proxies, used to represent remote tasks, are reclaimed when the message queue
  is deleted.
params:
- description: |
    is the message queue identifier.
  dir: null
  name: id
return:
  return: null
  return-values:
  - description: |
      The requested operation was successful.
    value: ${../../status/if/successful:/name}
  - description: |
      There was no message queue associated with the identifier specified by
      ${.:/params[0]/name}.
    value: ${../../status/if/invalid-id:/name}
  - description: |
      The message queue resided on a remote node.
    value: ${../../status/if/illegal-on-remote-object:/name}
type: interface