RTEMS  5.0.0
coremsg.h
Go to the documentation of this file.
1 
10 /*
11  * COPYRIGHT (c) 1989-2009.
12  * On-Line Applications Research Corporation (OAR).
13  *
14  * The license and distribution terms for this file may be
15  * found in the file LICENSE in this distribution or at
16  * http://www.rtems.org/license/LICENSE.
17  */
18 
19 #ifndef _RTEMS_SCORE_COREMSG_H
20 #define _RTEMS_SCORE_COREMSG_H
21 
22 #include <rtems/score/chain.h>
23 #include <rtems/score/isrlock.h>
24 #include <rtems/score/threadq.h>
25 #include <rtems/score/watchdog.h>
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
46 #define RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY
47 
48 #if defined(RTEMS_POSIX_API)
49 
54  #define RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION
55 #endif
56 
61 #define RTEMS_SCORE_COREMSG_ENABLE_BLOCKING_SEND
62 
64 
74 typedef struct {
76  size_t size;
78  uint32_t buffer[1];
80 
87 typedef struct {
90  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)
91 
92  int priority;
93  #endif
94 
97 
104 typedef enum {
110 
111 #if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
112 
119  typedef void (*CORE_message_queue_Notify_Handler)(
122  );
123 #endif
124 
131 struct CORE_message_queue_Control {
136 
141 
162  #if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
163 
166  CORE_message_queue_Notify_Handler notify_handler;
167  #endif
168 
172 };
173 
176 #ifdef __cplusplus
177 }
178 #endif
179 
180 #endif
181 /* end of include file */
Definition: chain.h:65
Thread queue context for the thread queue methods.
Definition: threadq.h:193
Chain_Control Inactive_messages
Definition: coremsg.h:171
Definition: chain.h:83
Chain_Node Node
Definition: coremsg.h:89
Definition: threadq.h:547
The organization of a message buffer.
Definition: coremsg.h:87
int priority
Definition: coremsg.h:92
const Thread_queue_Operations * operations
The thread queue operations according to the blocking discipline.
Definition: coremsg.h:140
Definition: coremsg.h:106
Constants and Structures Needed to Declare a Thread Queue.
uint32_t number_of_pending_messages
Definition: coremsg.h:148
Thread queue operations.
Definition: threadq.h:512
CORE_message_queue_Buffer Contents
Definition: coremsg.h:95
size_t size
Definition: coremsg.h:76
uint32_t maximum_pending_messages
Definition: coremsg.h:145
Chain_Control Pending_messages
Definition: coremsg.h:156
Data types needed to manipulate the contents of message buffers.
Definition: coremsg.h:74
Constants and Structures Associated with Watchdog Timers.
Chain Handler API.
Control block used to manage each message queue.
Definition: coremsg.h:131
CORE_message_queue_Disciplines
The possible blocking disciplines for a message queue.
Definition: coremsg.h:104
size_t maximum_message_size
Definition: coremsg.h:152
ISR Locks.
Thread_queue_Control Wait_queue
Definition: coremsg.h:135
CORE_message_queue_Buffer * message_buffers
Definition: coremsg.h:161