[PATCH 23/25] posix: Create message queue implementation header

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Jul 18 14:26:11 UTC 2013


Move implementation specific parts of mqueue.h and mqueue.inl into new
header file mqueueimpl.h.  The mqueue.h contains now only the
application visible API.
---
 cpukit/libcsupport/src/resource_snapshot.c    |    2 +-
 cpukit/posix/Makefile.am                      |    2 +-
 cpukit/posix/include/rtems/posix/mqueue.h     |  210 +--------------
 cpukit/posix/include/rtems/posix/mqueueimpl.h |  368 +++++++++++++++++++++++++
 cpukit/posix/inline/rtems/posix/mqueue.inl    |  162 -----------
 cpukit/posix/preinstall.am                    |    8 +-
 cpukit/posix/src/mqueue.c                     |    2 +-
 cpukit/posix/src/mqueueclose.c                |    2 +-
 cpukit/posix/src/mqueuecreatesupp.c           |    2 +-
 cpukit/posix/src/mqueuedeletesupp.c           |    2 +-
 cpukit/posix/src/mqueuegetattr.c              |    2 +-
 cpukit/posix/src/mqueuenotify.c               |    2 +-
 cpukit/posix/src/mqueueopen.c                 |    2 +-
 cpukit/posix/src/mqueuereceive.c              |    2 +-
 cpukit/posix/src/mqueuerecvsupp.c             |    2 +-
 cpukit/posix/src/mqueuesend.c                 |    2 +-
 cpukit/posix/src/mqueuesendsupp.c             |    2 +-
 cpukit/posix/src/mqueuesetattr.c              |    2 +-
 cpukit/posix/src/mqueuetimedreceive.c         |    2 +-
 cpukit/posix/src/mqueuetimedsend.c            |    2 +-
 cpukit/posix/src/mqueuetranslatereturncode.c  |    2 +-
 cpukit/posix/src/mqueueunlink.c               |    2 +-
 cpukit/sapi/src/posixapi.c                    |    2 +-
 23 files changed, 395 insertions(+), 391 deletions(-)
 create mode 100644 cpukit/posix/include/rtems/posix/mqueueimpl.h
 delete mode 100644 cpukit/posix/inline/rtems/posix/mqueue.inl

diff --git a/cpukit/libcsupport/src/resource_snapshot.c b/cpukit/libcsupport/src/resource_snapshot.c
index 1bb57d2..4fc3f15 100644
--- a/cpukit/libcsupport/src/resource_snapshot.c
+++ b/cpukit/libcsupport/src/resource_snapshot.c
@@ -31,7 +31,7 @@
 #ifdef RTEMS_POSIX_API
   #include <rtems/posix/barrier.h>
   #include <rtems/posix/cond.h>
-  #include <rtems/posix/mqueue.h>
+  #include <rtems/posix/mqueueimpl.h>
   #include <rtems/posix/muteximpl.h>
   #include <rtems/posix/key.h>
   #include <rtems/posix/psignal.h>
diff --git a/cpukit/posix/Makefile.am b/cpukit/posix/Makefile.am
index 6900ce0..0accfd4 100644
--- a/cpukit/posix/Makefile.am
+++ b/cpukit/posix/Makefile.am
@@ -30,6 +30,7 @@ include_rtems_posix_HEADERS += include/rtems/posix/cond.h
 include_rtems_posix_HEADERS += include/rtems/posix/config.h
 include_rtems_posix_HEADERS += include/rtems/posix/key.h
 include_rtems_posix_HEADERS += include/rtems/posix/mqueue.h
+include_rtems_posix_HEADERS += include/rtems/posix/mqueueimpl.h
 include_rtems_posix_HEADERS += include/rtems/posix/mutex.h
 include_rtems_posix_HEADERS += include/rtems/posix/muteximpl.h
 include_rtems_posix_HEADERS += include/rtems/posix/posixapi.h
@@ -49,7 +50,6 @@ include_rtems_posix_HEADERS += include/rtems/posix/spinlock.h
 
 include_rtems_posix_HEADERS += inline/rtems/posix/cond.inl
 include_rtems_posix_HEADERS += inline/rtems/posix/key.inl
-include_rtems_posix_HEADERS += inline/rtems/posix/mqueue.inl
 include_rtems_posix_HEADERS += inline/rtems/posix/pthread.inl
 include_rtems_posix_HEADERS += inline/rtems/posix/priority.inl
 include_rtems_posix_HEADERS += inline/rtems/posix/timer.inl
diff --git a/cpukit/posix/include/rtems/posix/mqueue.h b/cpukit/posix/include/rtems/posix/mqueue.h
index d6f370c..1db54b1 100644
--- a/cpukit/posix/include/rtems/posix/mqueue.h
+++ b/cpukit/posix/include/rtems/posix/mqueue.h
@@ -35,7 +35,10 @@
 #include <mqueue.h> /* struct mq_attr */
 #include <rtems/score/coremsg.h>
 #include <rtems/score/object.h>
-#include <rtems/posix/posixapi.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 /**
  *  @defgroup POSIX_MQUEUE_P Message Queues Private Support
@@ -44,9 +47,6 @@
  * 
  */
 /**@{**/
-#ifdef __cplusplus
-extern "C" {
-#endif
 
 /*
  *  Data Structure used to manage a POSIX message queue
@@ -68,208 +68,6 @@ typedef struct {
    int                          oflag;
 } POSIX_Message_queue_Control_fd;
 
-/*
- *  The following defines the information control block used to manage
- *  this class of objects.  The second item is used to manage the set
- *  of "file descriptors" associated with the message queues.
- */
-
-POSIX_EXTERN Objects_Information  _POSIX_Message_queue_Information;
-POSIX_EXTERN Objects_Information  _POSIX_Message_queue_Information_fds;
-
-/**
- * @brief Initialize message_queue manager related data structures.
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- *
- * NOTE:  The structure of the routines is identical to that of POSIX
- *        Message_queues to leave the option of having unnamed message
- *        queues at a future date.  They are currently not part of the
- *        POSIX standard but unnamed message_queues are.  This is also
- *        the reason for the apparently unnecessary tracking of
- *        the process_shared attribute.  [In addition to the fact that
- *        it would be trivial to add pshared to the mq_attr structure
- *        and have process private message queues.]
- *
- *        This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
- *        time.
- *
- */
-
-void _POSIX_Message_queue_Manager_initialization(void);
-
-/*
- *
- *  _POSIX_Message_queue_Create_support
- *
- *  DESCRIPTION:
- *
- *  This routine performs the creation of a message queue utilizing the
- *  core message queue.
- */
-
-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
-);
-
-/**
- * @brief Delete a POSIX message queue.
- *
- * DESCRIPTION:
- *
- * This routine supports the mq_unlink and mq_close routines by
- * doing most of the work involved with removing a message queue.
- */
-void _POSIX_Message_queue_Delete(
-  POSIX_Message_queue_Control *the_mq
-);
-
-/*
- *  @brief POSIX Message Queue Receive Support
- *
- *  DESCRIPTION:
- *
- *  This routine supports the various flavors of receiving a message.
- *
- *  NOTE:  The structure of the routines is identical to that of POSIX
- *         Message_queues to leave the option of having unnamed message
- *         queues at a future date.  They are currently not part of the
- *         POSIX standard but unnamed message_queues are.  This is also
- *         the reason for the apparently unnecessary tracking of
- *         the process_shared attribute.  [In addition to the fact that
- *         it would be trivial to add pshared to the mq_attr structure
- *         and have process private message queues.]
- *
- *         This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
- *         time.
- */
-
-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
-);
-
-/*
- *  _POSIX_Message_queue_Send_support
- *
- *  DESCRIPTION:
- *
- *  This routine posts a message to a specified message queue.
- */
-
-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_Allocate
- *
- *  DESCRIPTION:
- *
- *  This function allocates a message queue control block from
- *  the inactive chain of free message queue control blocks.
- */
-
-RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Allocate( void );
-
-/*
- *  _POSIX_Message_queue_Free
- *
- *  DESCRIPTION:
- *
- *  This routine frees a message queue control block to the
- *  inactive chain of free message queue control blocks.
- */
-
-RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free (
-  POSIX_Message_queue_Control *the_mq
-);
-
-/*
- *  _POSIX_Message_queue_Get
- *
- *  DESCRIPTION:
- *
- *  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.
- */
-
-RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Get (
-  Objects_Id         id,
-  Objects_Locations *location
-);
-
-/*
- *  _POSIX_Message_queue_Is_null
- *
- *  DESCRIPTION:
- *
- *  This function returns TRUE if the_message_queue is NULL and FALSE otherwise.
- */
-
-RTEMS_INLINE_ROUTINE bool    _POSIX_Message_queue_Is_null (
-  POSIX_Message_queue_Control *the_mq
-);
-
-/*
- *  _POSIX_Message_queue_Priority_to_core
- *
- *  DESCRIPTION:
- *
- *  XXX
- */
-
-RTEMS_INLINE_ROUTINE CORE_message_queue_Submit_types _POSIX_Message_queue_Priority_to_core(
-  unsigned int priority
-);
-
-/*
- *  _POSIX_Message_queue_Priority_from_core
- *
- *  DESCRIPTION:
- *
- *  XXX
- */
-
-RTEMS_INLINE_ROUTINE unsigned int _POSIX_Message_queue_Priority_from_core(
-  CORE_message_queue_Submit_types priority
-);
-
-/*
- *  _POSIX_Message_queue_Translate_core_message_queue_return_code
- *
- *  DESCRIPTION:
- *
- *  XXX
- */
-
-int _POSIX_Message_queue_Translate_core_message_queue_return_code(
-  uint32_t   the_message_queue_status
-);
-
-
-#include <rtems/posix/mqueue.inl>
-
 /** @} */
 
 #ifdef __cplusplus
diff --git a/cpukit/posix/include/rtems/posix/mqueueimpl.h b/cpukit/posix/include/rtems/posix/mqueueimpl.h
new file mode 100644
index 0000000..0f86e7f
--- /dev/null
+++ b/cpukit/posix/include/rtems/posix/mqueueimpl.h
@@ -0,0 +1,368 @@
+/**
+ * @file
+ *
+ * @brief Private Inlined Routines for POSIX Message Queue
+ * 
+ * This include file contains the static inline implementation of the private 
+ * inlined routines for POSIX Message Queue.
+ */
+
+/*
+ *  COPYRIGHT (c) 1989-2011.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef _RTEMS_POSIX_MQUEUE_INL
+#define _RTEMS_POSIX_MQUEUE_INL
+
+#include <rtems/posix/mqueue.h>
+#include <rtems/posix/posixapi.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  The following defines the information control block used to manage
+ *  this class of objects.  The second item is used to manage the set
+ *  of "file descriptors" associated with the message queues.
+ */
+
+POSIX_EXTERN Objects_Information  _POSIX_Message_queue_Information;
+POSIX_EXTERN Objects_Information  _POSIX_Message_queue_Information_fds;
+
+/**
+ * @brief Initialize message_queue manager related data structures.
+ *
+ * DESCRIPTION:
+ *
+ * This routine performs the initialization necessary for this manager.
+ *
+ * NOTE:  The structure of the routines is identical to that of POSIX
+ *        Message_queues to leave the option of having unnamed message
+ *        queues at a future date.  They are currently not part of the
+ *        POSIX standard but unnamed message_queues are.  This is also
+ *        the reason for the apparently unnecessary tracking of
+ *        the process_shared attribute.  [In addition to the fact that
+ *        it would be trivial to add pshared to the mq_attr structure
+ *        and have process private message queues.]
+ *
+ *        This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
+ *        time.
+ *
+ */
+
+void _POSIX_Message_queue_Manager_initialization(void);
+
+/*
+ *
+ *  _POSIX_Message_queue_Create_support
+ *
+ *  DESCRIPTION:
+ *
+ *  This routine performs the creation of a message queue utilizing the
+ *  core message queue.
+ */
+
+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
+);
+
+/**
+ * @brief Delete a POSIX message queue.
+ *
+ * DESCRIPTION:
+ *
+ * This routine supports the mq_unlink and mq_close routines by
+ * doing most of the work involved with removing a message queue.
+ */
+void _POSIX_Message_queue_Delete(
+  POSIX_Message_queue_Control *the_mq
+);
+
+/*
+ *  @brief POSIX Message Queue Receive Support
+ *
+ *  DESCRIPTION:
+ *
+ *  This routine supports the various flavors of receiving a message.
+ *
+ *  NOTE:  The structure of the routines is identical to that of POSIX
+ *         Message_queues to leave the option of having unnamed message
+ *         queues at a future date.  They are currently not part of the
+ *         POSIX standard but unnamed message_queues are.  This is also
+ *         the reason for the apparently unnecessary tracking of
+ *         the process_shared attribute.  [In addition to the fact that
+ *         it would be trivial to add pshared to the mq_attr structure
+ *         and have process private message queues.]
+ *
+ *         This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
+ *         time.
+ */
+
+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
+);
+
+/*
+ *  _POSIX_Message_queue_Send_support
+ *
+ *  DESCRIPTION:
+ *
+ *  This routine posts a message to a specified message queue.
+ */
+
+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_Allocate
+ *
+ *  DESCRIPTION:
+ *
+ *  This function allocates a message queue control block from
+ *  the inactive chain of free message queue control blocks.
+ */
+
+RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Allocate( void );
+
+/*
+ *  _POSIX_Message_queue_Free
+ *
+ *  DESCRIPTION:
+ *
+ *  This routine frees a message queue control block to the
+ *  inactive chain of free message queue control blocks.
+ */
+
+RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free (
+  POSIX_Message_queue_Control *the_mq
+);
+
+/*
+ *  _POSIX_Message_queue_Get
+ *
+ *  DESCRIPTION:
+ *
+ *  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.
+ */
+
+RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Get (
+  Objects_Id         id,
+  Objects_Locations *location
+);
+
+/*
+ *  _POSIX_Message_queue_Is_null
+ *
+ *  DESCRIPTION:
+ *
+ *  This function returns TRUE if the_message_queue is NULL and FALSE otherwise.
+ */
+
+RTEMS_INLINE_ROUTINE bool    _POSIX_Message_queue_Is_null (
+  POSIX_Message_queue_Control *the_mq
+);
+
+/*
+ *  _POSIX_Message_queue_Priority_to_core
+ *
+ *  DESCRIPTION:
+ *
+ *  XXX
+ */
+
+RTEMS_INLINE_ROUTINE CORE_message_queue_Submit_types _POSIX_Message_queue_Priority_to_core(
+  unsigned int priority
+);
+
+/*
+ *  _POSIX_Message_queue_Priority_from_core
+ *
+ *  DESCRIPTION:
+ *
+ *  XXX
+ */
+
+RTEMS_INLINE_ROUTINE unsigned int _POSIX_Message_queue_Priority_from_core(
+  CORE_message_queue_Submit_types priority
+);
+
+/*
+ *  _POSIX_Message_queue_Translate_core_message_queue_return_code
+ *
+ *  DESCRIPTION:
+ *
+ *  XXX
+ */
+
+int _POSIX_Message_queue_Translate_core_message_queue_return_code(
+  uint32_t   the_message_queue_status
+);
+ 
+/*
+ *  _POSIX_Message_queue_Allocate
+ */
+ 
+RTEMS_INLINE_ROUTINE
+  POSIX_Message_queue_Control *_POSIX_Message_queue_Allocate( void )
+{
+  return (POSIX_Message_queue_Control *)
+    _Objects_Allocate( &_POSIX_Message_queue_Information );
+}
+ 
+/*
+ *  _POSIX_Message_queue_Allocate_fd
+ */
+ 
+RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *
+  _POSIX_Message_queue_Allocate_fd( void )
+{
+  return (POSIX_Message_queue_Control_fd *)
+    _Objects_Allocate( &_POSIX_Message_queue_Information_fds );
+}
+ 
+/*
+ *  _POSIX_Message_queue_Free
+ */
+ 
+RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free (
+  POSIX_Message_queue_Control *the_mq
+)
+{
+  _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object );
+}
+
+/*
+ *  _POSIX_Message_queue_Free_fd
+ */
+ 
+RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free_fd (
+  POSIX_Message_queue_Control_fd *the_mq_fd
+)
+{
+  _Objects_Free( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object );
+}
+
+/*
+ *  _POSIX_Message_queue_Namespace_remove
+ */
+ 
+RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Namespace_remove (
+  POSIX_Message_queue_Control *the_mq
+)
+{
+  _Objects_Namespace_remove( 
+    &_POSIX_Message_queue_Information, &the_mq->Object );
+}
+ 
+/*
+ *  _POSIX_Message_queue_Get
+ */
+ 
+RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Get (
+  Objects_Id         id,
+  Objects_Locations *location
+)
+{
+  return (POSIX_Message_queue_Control *)
+    _Objects_Get( &_POSIX_Message_queue_Information, id, location );
+}
+ 
+/*
+ *  _POSIX_Message_queue_Get_fd
+ */
+ 
+RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd (
+  mqd_t              id,
+  Objects_Locations *location
+)
+{
+  return (POSIX_Message_queue_Control_fd *) _Objects_Get(
+    &_POSIX_Message_queue_Information_fds,
+    (Objects_Id)id,
+    location
+  );
+}
+ 
+/*
+ *  _POSIX_Message_queue_Is_null
+ */
+ 
+RTEMS_INLINE_ROUTINE bool _POSIX_Message_queue_Is_null (
+  POSIX_Message_queue_Control *the_mq
+)
+{
+  return !the_mq;
+}
+
+/*
+ *  _POSIX_Message_queue_Priority_to_core
+ */
+ 
+RTEMS_INLINE_ROUTINE CORE_message_queue_Submit_types _POSIX_Message_queue_Priority_to_core(
+  unsigned int priority
+)
+{
+  return (CORE_message_queue_Submit_types) priority * -1;
+}
+
+/*
+ *  _POSIX_Message_queue_Priority_from_core
+ * 
+ *  DESCRIPTION:
+ *
+ *  XXX
+ */
+ 
+RTEMS_INLINE_ROUTINE unsigned int _POSIX_Message_queue_Priority_from_core(
+  CORE_message_queue_Submit_types priority
+)
+{
+  /* absolute value without a library dependency */
+  return (unsigned int) ((priority >= 0) ? priority : -priority);
+}
+
+/**
+ * @see _POSIX_Name_to_id().
+ */
+RTEMS_INLINE_ROUTINE int _POSIX_Message_queue_Name_to_id(
+  const char          *name,
+  Objects_Id          *id,
+  size_t              *len
+)
+{
+  return _POSIX_Name_to_id( &_POSIX_Message_queue_Information, name, id, len );
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/*  end of include file */
diff --git a/cpukit/posix/inline/rtems/posix/mqueue.inl b/cpukit/posix/inline/rtems/posix/mqueue.inl
deleted file mode 100644
index e27efca..0000000
--- a/cpukit/posix/inline/rtems/posix/mqueue.inl
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- * @file
- *
- * @brief Private Inlined Routines for POSIX Message Queue
- * 
- * This include file contains the static inline implementation of the private 
- * inlined routines for POSIX Message Queue.
- */
-
-/*
- *  COPYRIGHT (c) 1989-2011.
- *  On-Line Applications Research Corporation (OAR).
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.com/license/LICENSE.
- */
- 
-#ifndef _RTEMS_POSIX_MQUEUE_H
-# error "Never use <rtems/posix/mqueue.inl> directly; include <rtems/posix/mqueue.h> instead."
-#endif
-
-#ifndef _RTEMS_POSIX_MQUEUE_INL
-#define _RTEMS_POSIX_MQUEUE_INL
- 
-/*
- *  _POSIX_Message_queue_Allocate
- */
- 
-RTEMS_INLINE_ROUTINE
-  POSIX_Message_queue_Control *_POSIX_Message_queue_Allocate( void )
-{
-  return (POSIX_Message_queue_Control *)
-    _Objects_Allocate( &_POSIX_Message_queue_Information );
-}
- 
-/*
- *  _POSIX_Message_queue_Allocate_fd
- */
- 
-RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *
-  _POSIX_Message_queue_Allocate_fd( void )
-{
-  return (POSIX_Message_queue_Control_fd *)
-    _Objects_Allocate( &_POSIX_Message_queue_Information_fds );
-}
- 
-/*
- *  _POSIX_Message_queue_Free
- */
- 
-RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free (
-  POSIX_Message_queue_Control *the_mq
-)
-{
-  _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object );
-}
-
-/*
- *  _POSIX_Message_queue_Free_fd
- */
- 
-RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free_fd (
-  POSIX_Message_queue_Control_fd *the_mq_fd
-)
-{
-  _Objects_Free( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object );
-}
-
-/*
- *  _POSIX_Message_queue_Namespace_remove
- */
- 
-RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Namespace_remove (
-  POSIX_Message_queue_Control *the_mq
-)
-{
-  _Objects_Namespace_remove( 
-    &_POSIX_Message_queue_Information, &the_mq->Object );
-}
- 
-/*
- *  _POSIX_Message_queue_Get
- */
- 
-RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Get (
-  Objects_Id         id,
-  Objects_Locations *location
-)
-{
-  return (POSIX_Message_queue_Control *)
-    _Objects_Get( &_POSIX_Message_queue_Information, id, location );
-}
- 
-/*
- *  _POSIX_Message_queue_Get_fd
- */
- 
-RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd (
-  mqd_t              id,
-  Objects_Locations *location
-)
-{
-  return (POSIX_Message_queue_Control_fd *) _Objects_Get(
-    &_POSIX_Message_queue_Information_fds,
-    (Objects_Id)id,
-    location
-  );
-}
- 
-/*
- *  _POSIX_Message_queue_Is_null
- */
- 
-RTEMS_INLINE_ROUTINE bool _POSIX_Message_queue_Is_null (
-  POSIX_Message_queue_Control *the_mq
-)
-{
-  return !the_mq;
-}
-
-/*
- *  _POSIX_Message_queue_Priority_to_core
- */
- 
-RTEMS_INLINE_ROUTINE CORE_message_queue_Submit_types _POSIX_Message_queue_Priority_to_core(
-  unsigned int priority
-)
-{
-  return (CORE_message_queue_Submit_types) priority * -1;
-}
-
-/*
- *  _POSIX_Message_queue_Priority_from_core
- * 
- *  DESCRIPTION:
- *
- *  XXX
- */
- 
-RTEMS_INLINE_ROUTINE unsigned int _POSIX_Message_queue_Priority_from_core(
-  CORE_message_queue_Submit_types priority
-)
-{
-  /* absolute value without a library dependency */
-  return (unsigned int) ((priority >= 0) ? priority : -priority);
-}
-
-/**
- * @see _POSIX_Name_to_id().
- */
-RTEMS_INLINE_ROUTINE int _POSIX_Message_queue_Name_to_id(
-  const char          *name,
-  Objects_Id          *id,
-  size_t              *len
-)
-{
-  return _POSIX_Name_to_id( &_POSIX_Message_queue_Information, name, id, len );
-}
-
-#endif
-/*  end of include file */
diff --git a/cpukit/posix/preinstall.am b/cpukit/posix/preinstall.am
index 0fda0df..aee07c0 100644
--- a/cpukit/posix/preinstall.am
+++ b/cpukit/posix/preinstall.am
@@ -64,6 +64,10 @@ $(PROJECT_INCLUDE)/rtems/posix/mqueue.h: include/rtems/posix/mqueue.h $(PROJECT_
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/mqueue.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/mqueue.h
 
+$(PROJECT_INCLUDE)/rtems/posix/mqueueimpl.h: include/rtems/posix/mqueueimpl.h $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/mqueueimpl.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/mqueueimpl.h
+
 $(PROJECT_INCLUDE)/rtems/posix/mutex.h: include/rtems/posix/mutex.h $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/mutex.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/mutex.h
@@ -136,10 +140,6 @@ $(PROJECT_INCLUDE)/rtems/posix/key.inl: inline/rtems/posix/key.inl $(PROJECT_INC
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/key.inl
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/key.inl
 
-$(PROJECT_INCLUDE)/rtems/posix/mqueue.inl: inline/rtems/posix/mqueue.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/mqueue.inl
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/mqueue.inl
-
 $(PROJECT_INCLUDE)/rtems/posix/pthread.inl: inline/rtems/posix/pthread.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/pthread.inl
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/pthread.inl
diff --git a/cpukit/posix/src/mqueue.c b/cpukit/posix/src/mqueue.c
index 93d6f1b..5d2dec7 100644
--- a/cpukit/posix/src/mqueue.c
+++ b/cpukit/posix/src/mqueue.c
@@ -30,7 +30,7 @@
 #include <rtems/config.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueueclose.c b/cpukit/posix/src/mqueueclose.c
index f4d8661..4d082d7 100644
--- a/cpukit/posix/src/mqueueclose.c
+++ b/cpukit/posix/src/mqueueclose.c
@@ -41,7 +41,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueuecreatesupp.c b/cpukit/posix/src/mqueuecreatesupp.c
index 94b91d0..7628940 100644
--- a/cpukit/posix/src/mqueuecreatesupp.c
+++ b/cpukit/posix/src/mqueuecreatesupp.c
@@ -37,7 +37,7 @@
 #include <rtems/score/watchdog.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueuedeletesupp.c b/cpukit/posix/src/mqueuedeletesupp.c
index 1a72462..b1fef27 100644
--- a/cpukit/posix/src/mqueuedeletesupp.c
+++ b/cpukit/posix/src/mqueuedeletesupp.c
@@ -30,7 +30,7 @@
 #include <rtems/score/watchdog.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 #if defined(RTEMS_DEBUG)
   #include <rtems/bspIo.h>
diff --git a/cpukit/posix/src/mqueuegetattr.c b/cpukit/posix/src/mqueuegetattr.c
index f4244d0..3bdc386 100644
--- a/cpukit/posix/src/mqueuegetattr.c
+++ b/cpukit/posix/src/mqueuegetattr.c
@@ -41,7 +41,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueuenotify.c b/cpukit/posix/src/mqueuenotify.c
index e2a53e9..84a7d0d 100644
--- a/cpukit/posix/src/mqueuenotify.c
+++ b/cpukit/posix/src/mqueuenotify.c
@@ -31,7 +31,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueueopen.c b/cpukit/posix/src/mqueueopen.c
index 01d3d57..e01be7a 100644
--- a/cpukit/posix/src/mqueueopen.c
+++ b/cpukit/posix/src/mqueueopen.c
@@ -41,7 +41,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueuereceive.c b/cpukit/posix/src/mqueuereceive.c
index c5f9257..b02380e 100644
--- a/cpukit/posix/src/mqueuereceive.c
+++ b/cpukit/posix/src/mqueuereceive.c
@@ -29,7 +29,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 ssize_t mq_receive(
diff --git a/cpukit/posix/src/mqueuerecvsupp.c b/cpukit/posix/src/mqueuerecvsupp.c
index cf1698f..5eb856a 100644
--- a/cpukit/posix/src/mqueuerecvsupp.c
+++ b/cpukit/posix/src/mqueuerecvsupp.c
@@ -29,7 +29,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueuesend.c b/cpukit/posix/src/mqueuesend.c
index 11016e4..6e3ed09 100644
--- a/cpukit/posix/src/mqueuesend.c
+++ b/cpukit/posix/src/mqueuesend.c
@@ -41,7 +41,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueuesendsupp.c b/cpukit/posix/src/mqueuesendsupp.c
index 093c425..2b2acb8 100644
--- a/cpukit/posix/src/mqueuesendsupp.c
+++ b/cpukit/posix/src/mqueuesendsupp.c
@@ -41,7 +41,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 
diff --git a/cpukit/posix/src/mqueuesetattr.c b/cpukit/posix/src/mqueuesetattr.c
index 0e16f1f..09a31d6 100644
--- a/cpukit/posix/src/mqueuesetattr.c
+++ b/cpukit/posix/src/mqueuesetattr.c
@@ -29,7 +29,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 int mq_setattr(
diff --git a/cpukit/posix/src/mqueuetimedreceive.c b/cpukit/posix/src/mqueuetimedreceive.c
index 53b3364..c4868d6 100644
--- a/cpukit/posix/src/mqueuetimedreceive.c
+++ b/cpukit/posix/src/mqueuetimedreceive.c
@@ -43,7 +43,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/posix/src/mqueuetimedsend.c b/cpukit/posix/src/mqueuetimedsend.c
index da7e0e1..c3df3a9 100644
--- a/cpukit/posix/src/mqueuetimedsend.c
+++ b/cpukit/posix/src/mqueuetimedsend.c
@@ -29,7 +29,7 @@
 #include <rtems/system.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 int mq_timedsend(
diff --git a/cpukit/posix/src/mqueuetranslatereturncode.c b/cpukit/posix/src/mqueuetranslatereturncode.c
index 6142261..ef7072a 100644
--- a/cpukit/posix/src/mqueuetranslatereturncode.c
+++ b/cpukit/posix/src/mqueuetranslatereturncode.c
@@ -25,7 +25,7 @@
 
 #include <rtems/system.h>
 #include <rtems/score/coremsg.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 
 /*
  *  _POSIX_Message_queue_Translate_core_message_queue_return_code
diff --git a/cpukit/posix/src/mqueueunlink.c b/cpukit/posix/src/mqueueunlink.c
index 0f68ae7..e2bf2a2 100644
--- a/cpukit/posix/src/mqueueunlink.c
+++ b/cpukit/posix/src/mqueueunlink.c
@@ -30,7 +30,7 @@
 #include <rtems/score/watchdog.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/seterr.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/time.h>
 
 /*
diff --git a/cpukit/sapi/src/posixapi.c b/cpukit/sapi/src/posixapi.c
index bda9a28..41bce8d 100644
--- a/cpukit/sapi/src/posixapi.c
+++ b/cpukit/sapi/src/posixapi.c
@@ -32,7 +32,7 @@
 #include <rtems/posix/cond.h>
 #include <rtems/posix/config.h>
 #include <rtems/posix/key.h>
-#include <rtems/posix/mqueue.h>
+#include <rtems/posix/mqueueimpl.h>
 #include <rtems/posix/muteximpl.h>
 #include <rtems/posix/posixapi.h>
 #include <rtems/posix/priority.h>
-- 
1.7.7




More information about the devel mailing list