RTEMS  5.1
Macros | Typedefs | Functions
coremsgimpl.h File Reference

Inlined Routines in the Core Message Handler. More...

#include <rtems/score/coremsg.h>
#include <rtems/score/status.h>
#include <rtems/score/chainimpl.h>
#include <rtems/score/threaddispatch.h>
#include <rtems/score/threadqimpl.h>
#include <limits.h>
#include <string.h>

Go to the source code of this file.

Macros

#define CORE_MESSAGE_QUEUE_SEND_REQUEST   INT_MAX
 Used when appending messages onto a message queue. More...
 
#define CORE_MESSAGE_QUEUE_URGENT_REQUEST   INT_MIN
 Used when prepending messages onto a message queue. More...
 
#define _CORE_message_queue_Set_notify(the_message_queue, the_handler)   do { } while ( 0 )
 Initializes notification information. More...
 

Typedefs

typedef int CORE_message_queue_Submit_types
 The modes in which a message may be submitted to a message queue. More...
 

Functions

bool _CORE_message_queue_Initialize (CORE_message_queue_Control *the_message_queue, CORE_message_queue_Disciplines discipline, uint32_t maximum_pending_messages, size_t maximum_message_size)
 Initializes a message queue. More...
 
void _CORE_message_queue_Close (CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
 Closes a message queue. More...
 
uint32_t _CORE_message_queue_Flush (CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
 Flushes pending messages. More...
 
Status_Control _CORE_message_queue_Broadcast (CORE_message_queue_Control *the_message_queue, const void *buffer, size_t size, uint32_t *count, Thread_queue_Context *queue_context)
 Broadcasts a message to the message queue. More...
 
Status_Control _CORE_message_queue_Submit (CORE_message_queue_Control *the_message_queue, Thread_Control *executing, const void *buffer, size_t size, CORE_message_queue_Submit_types submit_type, bool wait, Thread_queue_Context *queue_context)
 Submits a message to the message queue. More...
 
Status_Control _CORE_message_queue_Seize (CORE_message_queue_Control *the_message_queue, Thread_Control *executing, void *buffer, size_t *size_p, bool wait, Thread_queue_Context *queue_context)
 Seizes a message from the message queue. More...
 
void _CORE_message_queue_Insert_message (CORE_message_queue_Control *the_message_queue, CORE_message_queue_Buffer_control *the_message, const void *content_source, size_t content_size, CORE_message_queue_Submit_types submit_type)
 Inserts a message into the message queue. More...
 
RTEMS_INLINE_ROUTINE Status_Control _CORE_message_queue_Send (CORE_message_queue_Control *the_message_queue, const void *buffer, size_t size, bool wait, Thread_queue_Context *queue_context)
 Sends a message to the message queue. More...
 
RTEMS_INLINE_ROUTINE Status_Control _CORE_message_queue_Urgent (CORE_message_queue_Control *the_message_queue, const void *buffer, size_t size, bool wait, Thread_queue_Context *queue_context)
 Sends an urgent message to the message queue. More...
 
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Acquire (CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
 Acquires the message queue. More...
 
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Acquire_critical (CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
 Acquires the message queue critical. More...
 
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Release (CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
 Releases the message queue. More...
 
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Copy_buffer (const void *source, void *destination, size_t size)
 Copies the source message buffer to the destination message buffer. More...
 
RTEMS_INLINE_ROUTINE CORE_message_queue_Buffer_control_CORE_message_queue_Allocate_message_buffer (CORE_message_queue_Control *the_message_queue)
 Allocates a message buffer from the inactive message buffer chain. More...
 
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer (CORE_message_queue_Control *the_message_queue, CORE_message_queue_Buffer_control *the_message)
 Frees a message buffer to inactive message buffer chain. More...
 
RTEMS_INLINE_ROUTINE int _CORE_message_queue_Get_message_priority (const CORE_message_queue_Buffer_control *the_message)
 Gets message priority. More...
 
RTEMS_INLINE_ROUTINE CORE_message_queue_Buffer_control_CORE_message_queue_Get_pending_message (CORE_message_queue_Control *the_message_queue)
 Gets first message of message queue and removes it. More...
 
RTEMS_INLINE_ROUTINE Thread_Control_CORE_message_queue_Dequeue_receiver (CORE_message_queue_Control *the_message_queue, const void *buffer, size_t size, CORE_message_queue_Submit_types submit_type, Thread_queue_Context *queue_context)
 Gets the first locked thread waiting to receive and dequeues it. More...
 

Detailed Description

Inlined Routines in the Core Message Handler.

This include file contains the static inline implementation of all inlined routines in the Core Message Handler.