|
RTEMS CPU Kit with SuperCore
|
Private Inlined Routines for POSIX Message Queue. More...
#include <rtems/posix/mqueue.h>#include <rtems/posix/posixapi.h>#include <rtems/score/coremsgimpl.h>

Go to the source code of this file.
Functions | |
| void | _POSIX_Message_queue_Manager_initialization (void) |
| Initialize message_queue manager related data structures. More... | |
| 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. More... | |
| void | _POSIX_Message_queue_Delete (POSIX_Message_queue_Control *the_mq) |
| Delete a POSIX Message Queue. More... | |
| ssize_t | _POSIX_Message_queue_Receive_support (mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned int *msg_prio, bool wait, Watchdog_Interval timeout) |
| 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. More... | |
| RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control * | _POSIX_Message_queue_Allocate (void) |
| POSIX Message Queue Allocate. More... | |
| RTEMS_INLINE_ROUTINE void | _POSIX_Message_queue_Free (POSIX_Message_queue_Control *the_mq) |
| POSIX Message Queue Free. More... | |
| RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control * | _POSIX_Message_queue_Get (Objects_Id id, Objects_Locations *location) |
| POSIX Message Queue Get. More... | |
| RTEMS_INLINE_ROUTINE CORE_message_queue_Submit_types | _POSIX_Message_queue_Priority_to_core (unsigned int priority) |
| RTEMS_INLINE_ROUTINE unsigned int | _POSIX_Message_queue_Priority_from_core (CORE_message_queue_Submit_types priority) |
| int | _POSIX_Message_queue_Translate_core_message_queue_return_code (uint32_t the_message_queue_status) |
| POSIX Message Queue Translate Score Return Code. More... | |
| RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd * | _POSIX_Message_queue_Allocate_fd (void) |
| POSIX Message Queue Allocate File Descriptor. | |
| RTEMS_INLINE_ROUTINE void | _POSIX_Message_queue_Free_fd (POSIX_Message_queue_Control_fd *the_mq_fd) |
| POSIX Message Queue Free File Descriptor. | |
| RTEMS_INLINE_ROUTINE void | _POSIX_Message_queue_Namespace_remove (POSIX_Message_queue_Control *the_mq) |
| POSIX Message Queue Remove from Namespace. | |
| RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd * | _POSIX_Message_queue_Get_fd (mqd_t id, Objects_Locations *location) |
| RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd * | _POSIX_Message_queue_Get_fd_interrupt_disable (mqd_t id, Objects_Locations *location, ISR_lock_Context *lock_context) |
| RTEMS_INLINE_ROUTINE int | _POSIX_Message_queue_Name_to_id (const char *name, Objects_Id *id, size_t *len) |
Variables | |
| POSIX_EXTERN Objects_Information | _POSIX_Message_queue_Information |
| This defines the information control block used to manage this class of objects. | |
| POSIX_EXTERN Objects_Information | _POSIX_Message_queue_Information_fds |
| The is used to manage the set of "file descriptors" associated with the message queues. | |
Private Inlined Routines for POSIX Message Queue.
This include file contains the static inline implementation of the private inlined routines for POSIX Message Queue.
| RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control* _POSIX_Message_queue_Allocate | ( | void | ) |
POSIX Message Queue Allocate.
This function allocates a message queue control block from the inactive chain of free message queue control blocks.
References _Objects_Allocate().
| 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.
This routine performs the creation of a message queue utilizing the core message queue.
| void _POSIX_Message_queue_Delete | ( | POSIX_Message_queue_Control * | the_mq | ) |
Delete a POSIX Message Queue.
This routine supports the mq_unlink and mq_close routines by doing most of the work involved with removing a message queue.
References _CORE_message_queue_Close(), _Objects_Close(), _POSIX_Message_queue_Free(), _POSIX_Message_queue_Information, _Workspace_Free(), CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED, Objects_Control::name, and printk().
| RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free | ( | POSIX_Message_queue_Control * | the_mq | ) |
POSIX Message Queue Free.
This routine frees a message queue control block to the inactive chain of free message queue control blocks.
References _Objects_Free().
Referenced by _POSIX_Message_queue_Delete().
| RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control* _POSIX_Message_queue_Get | ( | Objects_Id | id, |
| Objects_Locations * | location | ||
| ) |
POSIX Message Queue Get.
This function maps message queue IDs to message queue control blocks. If ID corresponds to a local message queue, then it returns the_mq control pointer which maps to ID and location is set to OBJECTS_LOCAL. if the message queue ID is global and resides on a remote node, then location is set to OBJECTS_REMOTE, and the_message queue is undefined. Otherwise, location is set to OBJECTS_ERROR and the_mq is undefined.
References _Objects_Get(), and RTEMS_INLINE_ROUTINE.
| void _POSIX_Message_queue_Manager_initialization | ( | void | ) |
Initialize message_queue manager related data structures.
This routine performs the initialization necessary for this manager.
References _Objects_Initialize_information(), and _POSIX_Message_queue_Information.
| RTEMS_INLINE_ROUTINE int _POSIX_Message_queue_Name_to_id | ( | const char * | name, |
| Objects_Id * | id, | ||
| size_t * | len | ||
| ) |
References _POSIX_Name_to_id().
| 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.
This routine posts a message to a specified message queue.
| int _POSIX_Message_queue_Translate_core_message_queue_return_code | ( | uint32_t | the_message_queue_status | ) |
POSIX Message Queue Translate Score Return Code.
References CORE_MESSAGE_QUEUE_STATUS_LAST.
1.8.13