RTEMS
|
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... | |
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.