blob: 0a2f77b312f45da5c5f336b64b5d13c2c195c9dc (
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
78
79
80
81
82
83
84
85
86
|
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
brief: |
Broadcasts the messages to the tasks waiting at the queue.
copyrights:
- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
definition:
default:
attributes: null
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: |
This directive causes all tasks that are waiting at the queue specified by
${.:/params[0]/name} to be unblocked and sent the message contained in
${.:/params[1]/name}. Before a task is unblocked, the message
${.:/params[1]/name} of ${.:/params[2]/name} bytes in length is copied to
that task's message buffer. The number of tasks that were unblocked is
returned in ${.:/params[3]/name}.
enabled-by: true
index-entries:
- broadcast message to a queue
interface-type: function
links:
- role: interface-placement
uid: header
- role: interface-ingroup
uid: group
- role: constraint
uid: /constraint/directive-ctx-task
- role: constraint
uid: /constraint/directive-ctx-isr
- role: constraint
uid: /constraint/unblock-may-preempt
- role: constraint
uid: /constraint/directive-remote
name: rtems_message_queue_broadcast
notes: |
The execution time of this directive is directly related to the number of
tasks waiting on the message queue, although it is more efficient than the
equivalent number of invocations of ${send:/name}.
params:
- description: |
is the queue identifier.
dir: null
name: id
- description: |
is the begin address of the message buffer to broadcast.
dir: null
name: buffer
- description: |
is the size in bytes of the message buffer to broadcast.
dir: null
name: size
- description: |
is the pointer to an ${/c/if/uint32_t:/name} object. When the directive
call is successful, the number of unblocked tasks will be stored in this
object.
dir: out
name: count
return:
return: null
return-values:
- description: |
The requested operation was successful.
value: ${../../status/if/successful:/name}
- description: |
There was no queue associated with the identifier specified by
${.:/params[0]/name}.
value: ${../../status/if/invalid-id:/name}
- description: |
The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
value: ${../../status/if/invalid-address:/name}
- description: |
The ${.:/params[3]/name} parameter was ${/c/if/null:/name}.
value: ${../../status/if/invalid-address:/name}
- description: |
The size of the message exceeded the maximum message size of the queue as
defined by ${create:/name} or ${construct:/name}.
value: ${../../status/if/invalid-size:/name}
type: interface
|