RTEMS
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...
 
typedef void *(* CORE_message_queue_Allocate_buffers) (CORE_message_queue_Control *the_message_queue, size_t size, const void *arg)
 This handler shall allocate the message buffer storage area for a message queue. More...
 

Functions

void * _CORE_message_queue_Workspace_allocate (CORE_message_queue_Control *the_message_queue, size_t size, const void *arg)
 This handler allocates the message buffer storage area for a message queue from the RTEMS Workspace. More...
 
Status_Control _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, CORE_message_queue_Allocate_buffers allocate_buffers, const void *arg)
 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 *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...
 
static __inline__ 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...
 
static __inline__ 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...
 
static __inline__ void _CORE_message_queue_Acquire (CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
 Acquires the message queue. More...
 
static __inline__ void _CORE_message_queue_Acquire_critical (CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
 Acquires the message queue critical. More...
 
static __inline__ void _CORE_message_queue_Release (CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
 Releases the message queue. More...
 
static __inline__ 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...
 
static __inline__ CORE_message_queue_Buffer_CORE_message_queue_Allocate_message_buffer (CORE_message_queue_Control *the_message_queue)
 Allocates a message buffer from the inactive message buffer chain. More...
 
static __inline__ void _CORE_message_queue_Free_message_buffer (CORE_message_queue_Control *the_message_queue, CORE_message_queue_Buffer *the_message)
 Frees a message buffer to inactive message buffer chain. More...
 
static __inline__ int _CORE_message_queue_Get_message_priority (const CORE_message_queue_Buffer *the_message)
 Gets message priority. More...
 
static __inline__ CORE_message_queue_Buffer_CORE_message_queue_Get_pending_message (CORE_message_queue_Control *the_message_queue)
 Gets first message of message queue and removes it. More...
 
static __inline__ 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.

Definition in file coremsgimpl.h.