Select one of the symbols to view example projects that use it.
 
Outline
#include <time.h>
mqd_t
mq_attr
mq_close(mqd_t);
mq_getattr(mqd_t, struct mq_attr *);
mq_open(const char *, int, ...);
mq_receive(mqd_t, char *, size_t, unsigned int *);
mq_send(mqd_t, const char *, size_t, unsigned int);
mq_timedreceive(mqd_t, char *, size_t, unsigned int *, const struct timespec *);
mq_timedsend(mqd_t, const char *, size_t, unsigned int, const struct timespec *);
mq_unlink(const char *);
mq_notify(mqd_t, const struct sigevent *);
mq_setattr(mqd_t, const struct mq_attr *restrict, struct mq_attr *restrict);
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/rt/include/mqueue.h
 
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * Amazon FreeRTOS+POSIX V1.0.0 * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * SPDX-FileCopyrightText: 2018 Amazon.com, Inc. or its affiliates * * SPDX-License-Identifier: MIT * * SPDX-FileContributor: 2024 Espressif Systems (Shanghai) CO LTD * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * http://aws.amazon.com/freertos * http://www.FreeRTOS.org *//* ... */ /** * @file mqueue.h * @brief Message queues. * * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html *//* ... */ #pragma once #include <time.h> #ifdef __cplusplus extern "C" { #endif /** * @brief Message queue descriptor. *//* ... */ typedef void * mqd_t; /** * @brief Message queue attributes. *//* ... */ struct mq_attr { long mq_flags; /**< Message queue flags. */ long mq_maxmsg; /**< Maximum number of messages. */ long mq_msgsize; /**< Maximum message size. */ long mq_curmsgs; /**< Number of messages currently queued. */ }{ ... }; /** * @brief Close a message queue. * * Please refer to http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_close.html for more details. *//* ... */ int mq_close( mqd_t mqdes ); /** * @brief Get message queue attributes. * * Please refer to http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_getattr.html for more details. *//* ... */ int mq_getattr( mqd_t mqdes, struct mq_attr * mqstat ); /** * @brief Open a message queue. * * Please refer to http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_open.html for more details. * * @note Supported name pattern: leading &lt;slash&gt; character in name is always required; * the maximum length (excluding null-terminator) of the name argument can be NAME_MAX + 2. * @note mode argument is not supported. * @note Supported oflags: O_RDWR, O_CREAT, O_EXCL, and O_NONBLOCK. *//* ... */ mqd_t mq_open( const char * name, int oflag, ... ); /** * @brief Receive a message from a message queue. * * Please refer to http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_receive.html for more details. * * @note msg_prio argument is not supported. Messages are not checked for corruption. *//* ... */ ssize_t mq_receive( mqd_t mqdes, char * msg_ptr, size_t msg_len, unsigned int * msg_prio ); /** * @brief Send a message to a message queue. * * Please refer to http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_send.html for more details. * * @note msg_prio argument is not supported. *//* ... */ int mq_send( mqd_t mqdes, const char * msg_ptr, size_t msg_len, unsigned msg_prio ); /** * @brief Receive a message from a message queue with timeout. * * Please refer to http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_timedreceive.html for more details. * * @note msg_prio argument is not supported. Messages are not checked for corruption. *//* ... */ ssize_t mq_timedreceive( mqd_t mqdes, char * msg_ptr, size_t msg_len, unsigned * msg_prio, const struct timespec * abstime ); /** * @brief Send a message to a message queue with timeout. * * Please refer to http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_timedsend.html for more details. * * @note msg_prio argument is not supported. *//* ... */ int mq_timedsend( mqd_t mqdes, const char * msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec * abstime ); /** * @brief Remove a message queue. * * Please refer to http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_unlink.html for more details. *//* ... */ int mq_unlink( const char * name ); /* Added by Espressif - specified but not implemented functions, return ENOSYS */ int mq_notify( mqd_t, const struct sigevent * ); int mq_setattr( mqd_t, const struct mq_attr *, struct mq_attr * ); #ifdef __cplusplus }{...} #endif
Details