blob: 66a3e5bcd28228955a58006aeaae4f18f022c92f (
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
|
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
brief: |
Puts the message at the rear of the 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}
- const void *${.:/params[1]/name}
- ${/c/if/size_t:/name} ${.:/params[2]/name}
return: ${../../status/if/code:/name}
variants: []
description: |
This directive sends the message ${.:/params[1]/name} of ${.:/params[2]/name}
bytes in length to the queue specified by ${.:/params[0]/name}. If a task is
waiting at the queue, then the message is copied to the waiting task's buffer
and the task is unblocked. If no tasks are waiting at the queue, then the
message is copied to a message buffer which is obtained from this message
queue's message buffer pool. The message buffer is then placed at the rear
of the queue.
enabled-by: true
index-entries:
- send 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_send
notes: null
params:
- description: |
is the queue identifier.
dir: null
name: id
- description: |
is the begin address of the message buffer to send.
dir: null
name: buffer
- description: |
is the size in bytes of the message buffer to send.
dir: null
name: size
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 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}
- description: |
The maximum number of pending messages supported by the queue as defined
by ${create:/name} or ${construct:/name} has been reached.
value: ${../../status/if/too-many:/name}
type: interface
|