25 THREAD_QUEUE_OBJECT_ASSERT(
27 message_queue.Wait_queue,
42 Status_Control status;
44 if ( buffer == NULL ) {
52 the_message_queue = _Message_queue_Get(
id, &queue_context );
54 if ( the_message_queue == NULL ) {
55 #if defined(RTEMS_MULTIPROCESSING) 56 return _Message_queue_MP_Receive(
id, buffer, size, option_set, timeout );
67 executing = _Thread_Executing;
77 return _Status_Get( status );
Thread queue context for the thread queue methods.
Classic Message Queue Manager Implementation.
static __inline__ void _Thread_queue_Context_set_enqueue_timeout_ticks(Thread_queue_Context *queue_context, Watchdog_Interval ticks)
Sets the enqueue callout to add a relative monotonic timeout in ticks.
uint32_t rtems_option
This type is used to represent an option set.
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.
Classic Options Implementation.
RTEMS_INLINE_ROUTINE bool _Options_Is_no_wait(rtems_option option_set)
Checks if the RTEMS_NO_WAIT option is enabled in option_set.
rtems_status_code rtems_message_queue_receive(rtems_id id, void *buffer, size_t *size, rtems_option option_set, rtems_interval timeout)
%
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Classic Status Implementation.
CORE_message_queue_Control message_queue
This status code indicates that a specified address was invalid.
Watchdog_Interval rtems_interval
This type is used to represent clock tick intervals.
This status code indicates that an object identifier was invalid.
Objects_Id rtems_id
Values of this type identify an RTEMS object.
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.