RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
cpukit
include
rtems
score
coremsg.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
11
12
/*
13
* COPYRIGHT (c) 1989-2009.
14
* On-Line Applications Research Corporation (OAR).
15
*
16
* Redistribution and use in source and binary forms, with or without
17
* modification, are permitted provided that the following conditions
18
* are met:
19
* 1. Redistributions of source code must retain the above copyright
20
* notice, this list of conditions and the following disclaimer.
21
* 2. Redistributions in binary form must reproduce the above copyright
22
* notice, this list of conditions and the following disclaimer in the
23
* documentation and/or other materials provided with the distribution.
24
*
25
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
* POSSIBILITY OF SUCH DAMAGE.
36
*/
37
38
#ifndef _RTEMS_SCORE_COREMSG_H
39
#define _RTEMS_SCORE_COREMSG_H
40
41
#include <
rtems/score/coremsgbuffer.h
>
42
#include <
rtems/score/isrlock.h
>
43
#include <
rtems/score/threadq.h
>
44
#include <
rtems/score/watchdog.h
>
45
46
#ifdef __cplusplus
47
extern
"C"
{
48
#endif
49
62
63
#if defined(RTEMS_POSIX_API)
69
#define RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION
70
#endif
71
76
#define RTEMS_SCORE_COREMSG_ENABLE_BLOCKING_SEND
77
78
typedef
struct
CORE_message_queue_Control
CORE_message_queue_Control
;
79
86
typedef
enum
{
88
CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO
,
90
CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY
91
}
CORE_message_queue_Disciplines
;
92
93
#if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
101
typedef
void (*CORE_message_queue_Notify_Handler)(
102
CORE_message_queue_Control
*,
103
Thread_queue_Context
*
104
);
105
#endif
106
113
struct
CORE_message_queue_Control
{
117
Thread_queue_Control
Wait_queue
;
118
122
const
Thread_queue_Operations
*
operations
;
123
127
uint32_t
maximum_pending_messages
;
130
uint32_t
number_of_pending_messages
;
134
size_t
maximum_message_size
;
138
Chain_Control
Pending_messages
;
143
CORE_message_queue_Buffer
*
message_buffers
;
144
152
void ( *
free_message_buffers
)(
void
* );
153
154
#if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
158
CORE_message_queue_Notify_Handler notify_handler;
159
#endif
163
Chain_Control
Inactive_messages
;
164
};
165
167
168
#ifdef __cplusplus
169
}
170
#endif
171
172
#endif
173
/* end of include file */
coremsgbuffer.h
This header file provides interfaces of the Message Queue Handler which are used by the implementatio...
watchdog.h
This header file provides interfaces of the Watchdog Handler which are used by the implementation and...
CORE_message_queue_Disciplines
CORE_message_queue_Disciplines
The possible blocking disciplines for a message queue.
Definition
coremsg.h:86
CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO
@ CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO
Definition
coremsg.h:88
CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY
@ CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY
Definition
coremsg.h:90
isrlock.h
This header file provides the interfaces of the ISR Locks.
CORE_message_queue_Buffer
The structure is used to organize message buffers of a message queue.
Definition
coremsgbuffer.h:64
CORE_message_queue_Control
Control block used to manage each message queue.
Definition
coremsg.h:113
CORE_message_queue_Control::Inactive_messages
Chain_Control Inactive_messages
Definition
coremsg.h:163
CORE_message_queue_Control::operations
const Thread_queue_Operations * operations
The thread queue operations according to the blocking discipline.
Definition
coremsg.h:122
CORE_message_queue_Control::maximum_message_size
size_t maximum_message_size
Definition
coremsg.h:134
CORE_message_queue_Control::number_of_pending_messages
uint32_t number_of_pending_messages
Definition
coremsg.h:130
CORE_message_queue_Control::message_buffers
CORE_message_queue_Buffer * message_buffers
Definition
coremsg.h:143
CORE_message_queue_Control::Wait_queue
Thread_queue_Control Wait_queue
Definition
coremsg.h:117
CORE_message_queue_Control::free_message_buffers
void(*) free_message_buffers(void *)
This member contains the optional message buffer storage area free handler.
Definition
coremsg.h:152
CORE_message_queue_Control::Pending_messages
Chain_Control Pending_messages
Definition
coremsg.h:138
CORE_message_queue_Control::maximum_pending_messages
uint32_t maximum_pending_messages
Definition
coremsg.h:127
Thread_queue_Context
Thread queue context for the thread queue methods.
Definition
threadq.h:216
Thread_queue_Control
Definition
threadq.h:609
Thread_queue_Operations
The thread queue operations are used to manage the threads of a thread queue.
Definition
threadq.h:554
threadq.h
This header file provides interfaces of the Thread Queue Handler which are used by the implementation...
Chain_Control
This union represents a chain control block.
Definition
chain.h:96
Generated by
1.18.0