19 #ifndef _RTEMS_POSIX_MQUEUE_INL 20 #define _RTEMS_POSIX_MQUEUE_INL 101 ssize_t _POSIX_Message_queue_Receive_support(
105 unsigned int *msg_prio,
119 unsigned int msg_prio,
147 _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object );
168 _Objects_Get( &_POSIX_Message_queue_Information,
id, location );
178 _POSIX_Message_queue_Priority_to_core(
179 unsigned int priority
197 return (
unsigned int) ((priority >= 0) ? priority : -priority);
205 uint32_t the_message_queue_status
225 _Objects_Free( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object );
236 &_POSIX_Message_queue_Information, &the_mq->Object );
248 &_POSIX_Message_queue_Information_fds,
255 _POSIX_Message_queue_Get_fd_interrupt_disable(
262 &_POSIX_Message_queue_Information_fds,
void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectfree.c:25
Inlined Routines in the Core Message Handler.
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:101
POSIX API Implementation.
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
int CORE_message_queue_Submit_types
The modes in which a message may be submitted to a message queue.
Definition: coremsgimpl.h:65
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control * _POSIX_Message_queue_Allocate(void)
POSIX Message Queue Allocate.
Definition: mqueueimpl.h:131
Objects_Control * _Objects_Get(Objects_Information *information, Objects_Id id, Objects_Locations *location)
Maps object ids to object control blocks.
Definition: objectget.c:23
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control * _POSIX_Message_queue_Get(Objects_Id id, Objects_Locations *location)
POSIX Message Queue Get.
Definition: mqueueimpl.h:162
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Namespace_remove(POSIX_Message_queue_Control *the_mq)
POSIX Message Queue Remove from Namespace.
Definition: mqueueimpl.h:231
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free_fd(POSIX_Message_queue_Control_fd *the_mq_fd)
POSIX Message Queue Free File Descriptor.
Definition: mqueueimpl.h:221
int _POSIX_Name_to_id(Objects_Information *information, const char *name, Objects_Id *id, size_t *len)
Queries the object identifier id for a name.
Definition: psxnametoid.c:30
RTEMS_INLINE_ROUTINE int _POSIX_Message_queue_Name_to_id(const char *name, Objects_Id *id, size_t *len)
Definition: mqueueimpl.h:272
POSIX_EXTERN Objects_Information _POSIX_Message_queue_Information
This defines the information control block used to manage this class of objects.
Definition: mqueueimpl.h:34
POSIX_EXTERN Objects_Information _POSIX_Message_queue_Information_fds
The is used to manage the set of "file descriptors" associated with the message queues.
Definition: mqueueimpl.h:40
POSIX Message Queues Private Private Support.
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd * _POSIX_Message_queue_Allocate_fd(void)
POSIX Message Queue Allocate File Descriptor.
Definition: mqueueimpl.h:212
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free(POSIX_Message_queue_Control *the_mq)
POSIX Message Queue Free.
Definition: mqueueimpl.h:143
int _POSIX_Message_queue_Create_support(const char *name, size_t name_len, int pshared, struct mq_attr *attr, POSIX_Message_queue_Control **message_queue)
POSIX Message Queue Create Support.
Definition: mqueuecreatesupp.c:51
int _POSIX_Message_queue_Translate_core_message_queue_return_code(uint32_t the_message_queue_status)
POSIX Message Queue Translate Score Return Code.
Definition: mqueuetranslatereturncode.c:54
uint32_t Watchdog_Interval
Type is used to specify the length of intervals.
Definition: watchdog.h:47
int _POSIX_Message_queue_Send_support(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned int msg_prio, bool wait, Watchdog_Interval timeout)
POSIX Message Queue Send Support.
Definition: mqueuesendsupp.c:52
Objects_Locations
This enumerated type lists the locations which may be returned by _Objects_Get.
Definition: objectimpl.h:117
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:65
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
Objects_Control * _Objects_Get_isr_disable(Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_lock_Context *lock_context)
Maps object ids to object control blocks.
Definition: objectgetisr.c:23
#define POSIX_EXTERN
The following ensures that all data is declared in the space of the initialization routine for either...
Definition: basedefs.h:123
void _Objects_Namespace_remove(Objects_Information *information, Objects_Control *the_object)
Removes object from namespace.
Definition: objectnamespaceremove.c:25
void _POSIX_Message_queue_Manager_initialization(void)
Initialize message_queue manager related data structures.
Definition: mqueue.c:46
void _POSIX_Message_queue_Delete(POSIX_Message_queue_Control *the_mq)
Delete a POSIX Message Queue.
Definition: mqueuedeletesupp.c:39