RTEMS
cpukit
include
rtems
score
coremsg.h
Go to the documentation of this file.
1
12
/*
13
* COPYRIGHT (c) 1989-2009.
14
* On-Line Applications Research Corporation (OAR).
15
*
16
* The license and distribution terms for this file may be
17
* found in the file LICENSE in this distribution or at
18
* http://www.rtems.org/license/LICENSE.
19
*/
20
21
#ifndef _RTEMS_SCORE_COREMSG_H
22
#define _RTEMS_SCORE_COREMSG_H
23
24
#include <
rtems/score/coremsgbuffer.h
>
25
#include <
rtems/score/isrlock.h
>
26
#include <
rtems/score/threadq.h
>
27
#include <
rtems/score/watchdog.h
>
28
29
#ifdef __cplusplus
30
extern
"C"
{
31
#endif
32
46
#if defined(RTEMS_POSIX_API)
47
52
#define RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION
53
#endif
54
59
#define RTEMS_SCORE_COREMSG_ENABLE_BLOCKING_SEND
60
61
typedef
struct
CORE_message_queue_Control
CORE_message_queue_Control
;
62
69
typedef
enum
{
71
CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO
,
73
CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY
74
}
CORE_message_queue_Disciplines
;
75
76
#if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
77
84
typedef
void (*CORE_message_queue_Notify_Handler)(
85
CORE_message_queue_Control
*,
86
Thread_queue_Context
*
87
);
88
#endif
89
96
struct
CORE_message_queue_Control
{
100
Thread_queue_Control
Wait_queue
;
101
105
const
Thread_queue_Operations
*
operations
;
106
110
uint32_t
maximum_pending_messages
;
113
uint32_t
number_of_pending_messages
;
117
size_t
maximum_message_size
;
121
Chain_Control
Pending_messages
;
126
CORE_message_queue_Buffer
*
message_buffers
;
127
135
void ( *
free_message_buffers
)(
void
* );
136
137
#if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
138
141
CORE_message_queue_Notify_Handler notify_handler;
142
#endif
143
146
Chain_Control
Inactive_messages
;
147
};
148
151
#ifdef __cplusplus
152
}
153
#endif
154
155
#endif
156
/* end of include file */
CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO
Definition:
coremsg.h:71
Thread_queue_Context
Thread queue context for the thread queue methods.
Definition:
threadq.h:198
CORE_message_queue_Control::Inactive_messages
Chain_Control Inactive_messages
Definition:
coremsg.h:146
CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY
Definition:
coremsg.h:73
Chain_Control
Definition:
chain.h:86
Thread_queue_Control
Definition:
threadq.h:552
watchdog.h
Constants and Structures Associated with Watchdog Timers.
CORE_message_queue_Control::operations
const Thread_queue_Operations * operations
The thread queue operations according to the blocking discipline.
Definition:
coremsg.h:105
threadq.h
Constants and Structures Needed to Declare a Thread Queue.
CORE_message_queue_Control::number_of_pending_messages
uint32_t number_of_pending_messages
Definition:
coremsg.h:113
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:135
Thread_queue_Operations
Thread queue operations.
Definition:
threadq.h:517
coremsgbuffer.h
This header file defines the buffer data structure used by the Message Queue Handler.
CORE_message_queue_Control::maximum_pending_messages
uint32_t maximum_pending_messages
Definition:
coremsg.h:110
CORE_message_queue_Control::Pending_messages
Chain_Control Pending_messages
Definition:
coremsg.h:121
CORE_message_queue_Buffer
The structure is used to organize message buffers of a message queue.
Definition:
coremsgbuffer.h:63
CORE_message_queue_Disciplines
CORE_message_queue_Disciplines
The possible blocking disciplines for a message queue.
Definition:
coremsg.h:69
CORE_message_queue_Control
Control block used to manage each message queue.
Definition:
coremsg.h:96
CORE_message_queue_Control::maximum_message_size
size_t maximum_message_size
Definition:
coremsg.h:117
isrlock.h
ISR Locks.
CORE_message_queue_Control::Wait_queue
Thread_queue_Control Wait_queue
Definition:
coremsg.h:100
CORE_message_queue_Control::message_buffers
CORE_message_queue_Buffer * message_buffers
Definition:
coremsg.h:126
Generated by
1.8.14