44 return STATUS_MESSAGE_INVALID_SIZE;
58 if ( the_thread != NULL ) {
59 return STATUS_SUCCESSFUL;
77 #if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION) 85 && the_message_queue->notify_handler != NULL
87 ( *the_message_queue->notify_handler )(
98 return STATUS_SUCCESSFUL;
101 #if !defined(RTEMS_SCORE_COREMSG_ENABLE_BLOCKING_SEND) 103 return STATUS_TOO_MANY;
112 return STATUS_TOO_MANY;
121 return STATUS_MESSAGE_QUEUE_WAIT_IN_ISR;
bool _ISR_Is_in_progress(void)
Checks if an ISR in progress.
Thread_Wait_information Wait
Thread queue context for the thread queue methods.
Inlined Routines in the Core Message Handler.
int CORE_message_queue_Submit_types
The modes in which a message may be submitted to a message queue.
Data Related to the Management of Processor Interrupt Levels.
const Thread_queue_Operations * operations
The thread queue operations according to the blocking discipline.
uint32_t number_of_pending_messages
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.
Thread_queue_Queue Queue
The actual thread queue.
static __inline__ void _Thread_queue_Context_set_thread_state(Thread_queue_Context *queue_context, States_Control thread_state)
Sets the thread state for the thread to enqueue in the thread queue context.
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.
Inlined Routines in the Object Handler.
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.
The structure is used to organize message buffers of a message queue.
Inlined Routines Associated with Thread State Information.
#define STATES_WAITING_FOR_MESSAGE
Control block used to manage each message queue.
Inlined Routines from the Thread Handler.
static __inline__ Status_Control _Thread_Wait_get_status(const Thread_Control *the_thread)
Get the status of the wait return code of the thread.
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.
void _Thread_queue_Enqueue(Thread_queue_Queue *queue, const Thread_queue_Operations *operations, Thread_Control *the_thread, Thread_queue_Context *queue_context)
Blocks the thread and places it on the thread queue.
static __inline__ void _CORE_message_queue_Release(CORE_message_queue_Control *the_message_queue, Thread_queue_Context *queue_context)
Releases the message queue.
size_t maximum_message_size
Information Related to the RAM Workspace.
Thread_queue_Control Wait_queue