RTEMS  5.1
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/chain.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 
51 #define RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY
52 
53 #if defined(RTEMS_POSIX_API)
54 
59  #define RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION
60 #endif
61 
66 #define RTEMS_SCORE_COREMSG_ENABLE_BLOCKING_SEND
67 
69 
79 typedef struct {
81  size_t size;
83  uint32_t buffer[1];
85 
92 typedef struct {
95  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)
96 
97  int priority;
98  #endif
99 
102 
109 typedef enum {
115 
116 #if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
117 
124  typedef void (*CORE_message_queue_Notify_Handler)(
127  );
128 #endif
129 
141 
146 
167  #if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
168 
171  CORE_message_queue_Notify_Handler notify_handler;
172  #endif
173 
177 };
178 
181 #ifdef __cplusplus
182 }
183 #endif
184 
185 #endif
186 /* end of include file */
Definition: chain.h:68
Definition: coremsg.h:111
Thread queue context for the thread queue methods.
Definition: threadq.h:198
Chain_Control Inactive_messages
Definition: coremsg.h:176
Definition: chain.h:86
Chain_Node Node
Definition: coremsg.h:94
Definition: threadq.h:552
The organization of a message buffer.
Definition: coremsg.h:92
int priority
Definition: coremsg.h:97
const Thread_queue_Operations * operations
The thread queue operations according to the blocking discipline.
Definition: coremsg.h:145
Constants and Structures Needed to Declare a Thread Queue.
uint32_t number_of_pending_messages
Definition: coremsg.h:153
Thread queue operations.
Definition: threadq.h:517
CORE_message_queue_Buffer Contents
Definition: coremsg.h:100
size_t size
Definition: coremsg.h:81
uint32_t maximum_pending_messages
Definition: coremsg.h:150
Chain_Control Pending_messages
Definition: coremsg.h:161
Data types needed to manipulate the contents of message buffers.
Definition: coremsg.h:79
Constants and Structures Associated with Watchdog Timers.
CORE_message_queue_Disciplines
The possible blocking disciplines for a message queue.
Definition: coremsg.h:109
Chain Handler API.
Control block used to manage each message queue.
Definition: coremsg.h:136
size_t maximum_message_size
Definition: coremsg.h:157
ISR Locks.
Thread_queue_Control Wait_queue
Definition: coremsg.h:140
CORE_message_queue_Buffer * message_buffers
Definition: coremsg.h:166