RTEMS CPU Kit with SuperCore
4.11.2
|
Inlined Routines in the Core Message Handler. More...
#include <rtems/score/coremsg.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_STATUS_LAST CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT |
Core message queue last status value. More... | |
#define | _CORE_message_queue_Set_notify(the_message_queue, the_handler, the_argument) |
This routine initializes the notification information for the_message_queue. | |
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_API_mp_support_callout) (Thread_Control *, Objects_Id) |
Callout provides to support global/multiprocessor operations. More... | |
Enumerations | |
enum | CORE_message_queue_Status { CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL, CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE, CORE_MESSAGE_QUEUE_STATUS_TOO_MANY, CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED, CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT, CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED, CORE_MESSAGE_QUEUE_STATUS_TIMEOUT, CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT } |
The possible set of Core Message Queue handler return statuses. More... | |
Functions | |
bool | _CORE_message_queue_Initialize (CORE_message_queue_Control *the_message_queue, CORE_message_queue_Attributes *the_message_queue_attributes, uint32_t maximum_pending_messages, size_t maximum_message_size) |
Initialize a message queue. More... | |
void | _CORE_message_queue_Close (CORE_message_queue_Control *the_message_queue, Thread_queue_Flush_callout remote_extract_callout, uint32_t status) |
Close a message queue. More... | |
uint32_t | _CORE_message_queue_Flush (CORE_message_queue_Control *the_message_queue, ISR_lock_Context *lock_context) |
Flush pending messages. More... | |
CORE_message_queue_Status | _CORE_message_queue_Broadcast (CORE_message_queue_Control *the_message_queue, const void *buffer, size_t size, Objects_Id id, CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, uint32_t *count, ISR_lock_Context *lock_context) |
Broadcast a message to the message queue. More... | |
CORE_message_queue_Status | _CORE_message_queue_Submit (CORE_message_queue_Control *the_message_queue, Thread_Control *executing, const void *buffer, size_t size, Objects_Id id, CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, CORE_message_queue_Submit_types submit_type, bool wait, Watchdog_Interval timeout, ISR_lock_Context *lock_context) |
Submit a message to the message queue. More... | |
void | _CORE_message_queue_Seize (CORE_message_queue_Control *the_message_queue, Thread_Control *executing, Objects_Id id, void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout, ISR_lock_Context *lock_context) |
Size 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, CORE_message_queue_Submit_types submit_type) |
Insert a message into the message queue. More... | |
RTEMS_INLINE_ROUTINE CORE_message_queue_Status | _CORE_message_queue_Send (CORE_message_queue_Control *the_message_queue, const void *buffer, size_t size, Objects_Id id, CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, bool wait, Watchdog_Interval timeout, ISR_lock_Context *lock_context) |
This routine sends a message to the end of the specified message queue. | |
RTEMS_INLINE_ROUTINE CORE_message_queue_Status | _CORE_message_queue_Urgent (CORE_message_queue_Control *the_message_queue, const void *buffer, size_t size, Objects_Id id, CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, bool wait, Watchdog_Interval timeout, ISR_lock_Context *lock_context) |
This routine sends a message to the front of the specified message queue. | |
RTEMS_INLINE_ROUTINE void | _CORE_message_queue_Acquire (CORE_message_queue_Control *the_message_queue, ISR_lock_Context *lock_context) |
RTEMS_INLINE_ROUTINE void | _CORE_message_queue_Acquire_critical (CORE_message_queue_Control *the_message_queue, ISR_lock_Context *lock_context) |
RTEMS_INLINE_ROUTINE void | _CORE_message_queue_Release (CORE_message_queue_Control *the_message_queue, ISR_lock_Context *lock_context) |
RTEMS_INLINE_ROUTINE void | _CORE_message_queue_Copy_buffer (const void *source, void *destination, size_t size) |
This routine copies the contents of the source message buffer to the destination message buffer. | |
RTEMS_INLINE_ROUTINE CORE_message_queue_Buffer_control * | _CORE_message_queue_Allocate_message_buffer (CORE_message_queue_Control *the_message_queue) |
This function allocates a message buffer from the inactive message buffer chain. | |
RTEMS_INLINE_ROUTINE void | _CORE_message_queue_Free_message_buffer (CORE_message_queue_Control *the_message_queue, CORE_message_queue_Buffer_control *the_message) |
This routine frees a message buffer to the inactive message buffer chain. | |
RTEMS_INLINE_ROUTINE int | _CORE_message_queue_Get_message_priority (const CORE_message_queue_Buffer_control *the_message) |
This function returns the priority of the_message. More... | |
RTEMS_INLINE_ROUTINE void | _CORE_message_queue_Set_message_priority (CORE_message_queue_Buffer_control *the_message, int priority) |
This function sets the priority of the_message. More... | |
RTEMS_INLINE_ROUTINE CORE_message_queue_Buffer_control * | _CORE_message_queue_Get_pending_message (CORE_message_queue_Control *the_message_queue) |
This function removes the first message from the_message_queue and returns a pointer to it. | |
RTEMS_INLINE_ROUTINE bool | _CORE_message_queue_Is_priority (CORE_message_queue_Attributes *the_attribute) |
This function returns true if the priority attribute is enabled in the attribute_set and false otherwise. | |
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, ISR_lock_Context *lock_context) |
Inlined Routines in the Core Message Handler.
This include file contains the static inline implementation of all inlined routines in the Core Message Handler.