summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-18 15:05:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-22 16:56:58 +0200
commit993a888dfde91cadbc723344035805ef770c8894 (patch)
tree97a819df192fdc3ec9f9fb9f86a02f1d22e870aa
parentscore: Avoid direct usage of _Thread_Executing (diff)
downloadrtems-993a888dfde91cadbc723344035805ef770c8894.tar.bz2
rtems: Create message queue implementation header
Move implementation specific parts of message.h and message.inl into new header file messageimpl.h. The message.h contains now only the application visible API.
-rw-r--r--cpukit/libcsupport/src/resource_snapshot.c1
-rw-r--r--cpukit/libmisc/monitor/mon-object.c1
-rw-r--r--cpukit/libmisc/monitor/mon-queue.c1
-rw-r--r--cpukit/libmisc/shell/main_wkspaceinfo.c1
-rw-r--r--cpukit/rtems/Makefile.am2
-rw-r--r--cpukit/rtems/include/rtems/rtems/message.h129
-rw-r--r--cpukit/rtems/include/rtems/rtems/messageimpl.h175
-rw-r--r--cpukit/rtems/include/rtems/rtems/msgmp.h30
-rw-r--r--cpukit/rtems/inline/rtems/rtems/message.inl82
-rw-r--r--cpukit/rtems/preinstall.am8
-rw-r--r--cpukit/rtems/src/msg.c2
-rw-r--r--cpukit/rtems/src/msgdata.c2
-rw-r--r--cpukit/rtems/src/msgmp.c2
-rw-r--r--cpukit/rtems/src/msgqallocate.c2
-rw-r--r--cpukit/rtems/src/msgqbroadcast.c2
-rw-r--r--cpukit/rtems/src/msgqcreate.c2
-rw-r--r--cpukit/rtems/src/msgqdelete.c2
-rw-r--r--cpukit/rtems/src/msgqflush.c2
-rw-r--r--cpukit/rtems/src/msgqgetnumberpending.c2
-rw-r--r--cpukit/rtems/src/msgqident.c2
-rw-r--r--cpukit/rtems/src/msgqreceive.c2
-rw-r--r--cpukit/rtems/src/msgqsend.c2
-rw-r--r--cpukit/rtems/src/msgqtranslatereturncode.c2
-rw-r--r--cpukit/rtems/src/msgqurgent.c2
-rw-r--r--cpukit/sapi/include/rtems/sptables.h1
-rw-r--r--cpukit/sapi/src/rtemsapi.c2
-rw-r--r--testsuites/sptests/spsize/size.c4
27 files changed, 236 insertions, 229 deletions
diff --git a/cpukit/libcsupport/src/resource_snapshot.c b/cpukit/libcsupport/src/resource_snapshot.c
index fba8a2e2a5..1bb57d245e 100644
--- a/cpukit/libcsupport/src/resource_snapshot.c
+++ b/cpukit/libcsupport/src/resource_snapshot.c
@@ -25,6 +25,7 @@
#include <rtems/score/wkspace.h>
#include <rtems/score/protectedheap.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/semimpl.h>
#ifdef RTEMS_POSIX_API
diff --git a/cpukit/libmisc/monitor/mon-object.c b/cpukit/libmisc/monitor/mon-object.c
index f431fda347..6e55012fb3 100644
--- a/cpukit/libmisc/monitor/mon-object.c
+++ b/cpukit/libmisc/monitor/mon-object.c
@@ -20,6 +20,7 @@
#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__
#include <rtems.h>
#include <rtems/monitor.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/semimpl.h>
#if defined(RTEMS_POSIX_API)
#include <rtems/posix/pthread.h>
diff --git a/cpukit/libmisc/monitor/mon-queue.c b/cpukit/libmisc/monitor/mon-queue.c
index 962e834242..9a77d55ce5 100644
--- a/cpukit/libmisc/monitor/mon-queue.c
+++ b/cpukit/libmisc/monitor/mon-queue.c
@@ -4,6 +4,7 @@
#include <rtems.h>
#include <rtems/monitor.h>
+#include <rtems/rtems/messageimpl.h>
#include <stdio.h>
diff --git a/cpukit/libmisc/shell/main_wkspaceinfo.c b/cpukit/libmisc/shell/main_wkspaceinfo.c
index 5a0561e807..7a2f819a0b 100644
--- a/cpukit/libmisc/shell/main_wkspaceinfo.c
+++ b/cpukit/libmisc/shell/main_wkspaceinfo.c
@@ -20,6 +20,7 @@
#include <rtems/malloc.h>
#include <rtems/shell.h>
#include <rtems/score/protectedheap.h>
+#include <rtems/score/wkspace.h>
#include "internal.h"
void rtems_shell_print_unified_work_area_message(void)
diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am
index c61ca5a26b..04963b55ce 100644
--- a/cpukit/rtems/Makefile.am
+++ b/cpukit/rtems/Makefile.am
@@ -25,6 +25,7 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/event.h
include_rtems_rtems_HEADERS += include/rtems/rtems/eventset.h
include_rtems_rtems_HEADERS += include/rtems/rtems/intr.h
include_rtems_rtems_HEADERS += include/rtems/rtems/message.h
+include_rtems_rtems_HEADERS += include/rtems/rtems/messageimpl.h
include_rtems_rtems_HEADERS += include/rtems/rtems/modes.h
include_rtems_rtems_HEADERS += include/rtems/rtems/object.h
include_rtems_rtems_HEADERS += include/rtems/rtems/options.h
@@ -64,7 +65,6 @@ include_rtems_rtems_HEADERS += inline/rtems/rtems/barrier.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/dpmem.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/event.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/eventset.inl
-include_rtems_rtems_HEADERS += inline/rtems/rtems/message.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/modes.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/options.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/part.inl
diff --git a/cpukit/rtems/include/rtems/rtems/message.h b/cpukit/rtems/include/rtems/rtems/message.h
index e8bbee8cc4..1c248857a0 100644
--- a/cpukit/rtems/include/rtems/rtems/message.h
+++ b/cpukit/rtems/include/rtems/rtems/message.h
@@ -33,56 +33,20 @@
#ifndef _RTEMS_RTEMS_MESSAGE_H
#define _RTEMS_RTEMS_MESSAGE_H
-/**
- * This constant is defined to extern most of the time when using
- * this header file. However by defining it to nothing, the data
- * declared in this header file can be instantiated. This is done
- * in a single per manager file.
- */
-#ifndef RTEMS_MESSAGE_EXTERN
-#define RTEMS_MESSAGE_EXTERN extern
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#include <rtems/rtems/types.h>
#include <rtems/rtems/status.h>
#include <rtems/rtems/options.h>
-#include <rtems/score/chain.h>
-#include <rtems/score/object.h>
#include <rtems/rtems/attr.h>
+#include <rtems/score/object.h>
#include <rtems/score/coremsg.h>
-/**
- * @defgroup ClassicMessageQueue Message Queues
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality which XXX
- */
-/**@{*/
-
-/**
- * The following enumerated type details the modes in which a message
- * may be submitted to a message queue. The message may be posted
- * in a send or urgent fashion.
- */
-typedef enum {
- /**
- * This value indicates the user wants to send the message using the
- * normal message insertion protocol (FIFO or priority).
- */
- MESSAGE_QUEUE_SEND_REQUEST = 0,
- /**
- * This value indicates the user considers the message to be urgent
- * and wants it inserted at the head of the pending message queue.
- */
- MESSAGE_QUEUE_URGENT_REQUEST = 1
-} Message_queue_Submit_types;
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
+ * @ingroup ClassicMessageQueueImpl
+ *
* The following records define the control block used to manage
* each message queue.
*/
@@ -96,17 +60,13 @@ typedef struct {
} Message_queue_Control;
/**
- * The following defines the information control block used to
- * manage this class of objects.
- */
-RTEMS_MESSAGE_EXTERN Objects_Information _Message_queue_Information;
-
-/**
- * @brief Message Queue Manager Initialization
+ * @defgroup ClassicMessageQueue Message Queues
+ *
+ * @ingroup ClassicRTEMS
*
- * This routine performs the initialization necessary for this manager.
+ * This encapsulates functionality which XXX
*/
-void _Message_queue_Manager_initialization(void);
+/**@{*/
/**
* @brief RTEMS Create Message Queue
@@ -299,76 +259,11 @@ rtems_status_code rtems_message_queue_get_number_pending(
uint32_t *count
);
-
-/**
- * @brief Message_queue_Submit
- *
- * This routine implements the directives rtems_message_queue_send
- * and rtems_message_queue_urgent. It processes a message that is
- * to be submitted to the designated message queue. The message will
- * either be processed as a send send message which it will be inserted
- * at the rear of the queue or it will be processed as an urgent message
- * which will be inserted at the front of the queue.
- */
-rtems_status_code _Message_queue_Submit(
- rtems_id id,
- const void *buffer,
- size_t size,
- Message_queue_Submit_types submit_type
-);
-
-/**
- * @brief Message Queue Allocate
- *
- * This function allocates a message queue control block from
- * the inactive chain of free message queue control blocks.
- *
- * @retval the_message_queue filled in if successful, NULL otherwise
- */
-Message_queue_Control *_Message_queue_Allocate (void);
-
-/**
- * @brief Message queue Translate Core Message Queue Return Code
- *
- * This function returns a RTEMS status code based on
- * @a the_message_queue_status.
- *
- * @param[in] the_message_queue_status is the status code to translate
- *
- * @retval translated RTEMS status code
- */
-rtems_status_code _Message_queue_Translate_core_message_queue_return_code (
- uint32_t the_message_queue_status
-);
-
-#if defined(RTEMS_MULTIPROCESSING)
-/**
- * @brief Message_queue_Core_message_queue_mp_support
- *
- * Input parameters:
- * the_thread - the remote thread the message was submitted to
- * id - id of the message queue
- *
- * Output parameters: NONE
- */
-void _Message_queue_Core_message_queue_mp_support (
- Thread_Control *the_thread,
- rtems_id id
-);
-#endif
-
-#ifndef __RTEMS_APPLICATION__
-#include <rtems/rtems/message.inl>
-#endif
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/rtems/msgmp.h>
-#endif
+/**@}*/
#ifdef __cplusplus
}
#endif
-/**@}*/
-
#endif
/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/messageimpl.h b/cpukit/rtems/include/rtems/rtems/messageimpl.h
new file mode 100644
index 0000000000..90cc5178e2
--- /dev/null
+++ b/cpukit/rtems/include/rtems/rtems/messageimpl.h
@@ -0,0 +1,175 @@
+/**
+ * @file rtems/rtems/message.inl
+ *
+ * This include file contains the static inline implementation of all
+ * inlined routines in the Message Manager.
+ */
+
+/* COPYRIGHT (c) 1989-2008.
+ * 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_RTEMS_MESSAGEIMPL_H
+#define _RTEMS_RTEMS_MESSAGEIMPL_H
+
+#include <rtems/rtems/message.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup ClassicMessageQueueImpl Classic Message Queue Implementation
+ *
+ * @ingroup ClassicMessageQueue
+ *
+ * @{
+ */
+
+/**
+ * This constant is defined to extern most of the time when using
+ * this header file. However by defining it to nothing, the data
+ * declared in this header file can be instantiated. This is done
+ * in a single per manager file.
+ */
+#ifndef RTEMS_MESSAGE_EXTERN
+#define RTEMS_MESSAGE_EXTERN extern
+#endif
+
+/**
+ * The following enumerated type details the modes in which a message
+ * may be submitted to a message queue. The message may be posted
+ * in a send or urgent fashion.
+ */
+typedef enum {
+ /**
+ * This value indicates the user wants to send the message using the
+ * normal message insertion protocol (FIFO or priority).
+ */
+ MESSAGE_QUEUE_SEND_REQUEST = 0,
+ /**
+ * This value indicates the user considers the message to be urgent
+ * and wants it inserted at the head of the pending message queue.
+ */
+ MESSAGE_QUEUE_URGENT_REQUEST = 1
+} Message_queue_Submit_types;
+
+/**
+ * The following defines the information control block used to
+ * manage this class of objects.
+ */
+RTEMS_MESSAGE_EXTERN Objects_Information _Message_queue_Information;
+
+/**
+ * @brief Message Queue Manager Initialization
+ *
+ * This routine performs the initialization necessary for this manager.
+ */
+void _Message_queue_Manager_initialization(void);
+
+/**
+ * @brief Message_queue_Submit
+ *
+ * This routine implements the directives rtems_message_queue_send
+ * and rtems_message_queue_urgent. It processes a message that is
+ * to be submitted to the designated message queue. The message will
+ * either be processed as a send send message which it will be inserted
+ * at the rear of the queue or it will be processed as an urgent message
+ * which will be inserted at the front of the queue.
+ */
+rtems_status_code _Message_queue_Submit(
+ rtems_id id,
+ const void *buffer,
+ size_t size,
+ Message_queue_Submit_types submit_type
+);
+
+/**
+ * @brief Message Queue Allocate
+ *
+ * This function allocates a message queue control block from
+ * the inactive chain of free message queue control blocks.
+ *
+ * @retval the_message_queue filled in if successful, NULL otherwise
+ */
+Message_queue_Control *_Message_queue_Allocate (void);
+
+/**
+ * @brief Message queue Translate Core Message Queue Return Code
+ *
+ * This function returns a RTEMS status code based on
+ * @a the_message_queue_status.
+ *
+ * @param[in] the_message_queue_status is the status code to translate
+ *
+ * @retval translated RTEMS status code
+ */
+rtems_status_code _Message_queue_Translate_core_message_queue_return_code (
+ uint32_t the_message_queue_status
+);
+
+/**
+ * @brief Check whether message queue is null.
+ *
+ * This function places the_message at the rear of the outstanding
+ * messages on the_message_queue.
+ */
+RTEMS_INLINE_ROUTINE bool _Message_queue_Is_null (
+ Message_queue_Control *the_message_queue
+)
+{
+ return ( the_message_queue == NULL );
+}
+
+
+/**
+ * @brief Deallocates a message queue control block into
+ * the inactive chain of free message queue control blocks.
+ *
+ * This routine deallocates a message queue control block into
+ * the inactive chain of free message queue control blocks.
+ */
+RTEMS_INLINE_ROUTINE void _Message_queue_Free (
+ Message_queue_Control *the_message_queue
+)
+{
+ _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
+}
+
+/**
+ * @brief Maps message queue IDs to message queue control blocks.
+ *
+ * This function maps message queue IDs to message queue control
+ * blocks. If ID corresponds to a local message queue, then it
+ * returns the_message_queue 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_message_queue is undefined.
+ */
+RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get (
+ Objects_Id id,
+ Objects_Locations *location
+)
+{
+ return (Message_queue_Control *)
+ _Objects_Get( &_Message_queue_Information, id, location );
+}
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#if defined(RTEMS_MULTIPROCESSING)
+#include <rtems/rtems/msgmp.h>
+#endif
+
+#endif
+/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/msgmp.h b/cpukit/rtems/include/rtems/rtems/msgmp.h
index f01a687ae3..ddb21b2781 100644
--- a/cpukit/rtems/include/rtems/rtems/msgmp.h
+++ b/cpukit/rtems/include/rtems/rtems/msgmp.h
@@ -18,17 +18,19 @@
#ifndef _RTEMS_RTEMS_MSGMP_H
#define _RTEMS_RTEMS_MSGMP_H
-#ifdef __cplusplus
-extern "C" {
+#ifndef _RTEMS_RTEMS_MESSAGEIMPL_H
+# error "Never use <rtems/rtems/msgmp.h> directly; include <rtems/rtems/messageimpl.h> instead."
#endif
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/score/mppkt.h>
-#include <rtems/score/object.h>
-#include <rtems/rtems/options.h>
#include <rtems/score/thread.h>
#include <rtems/score/watchdog.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/**
* @defgroup ClassicMsgMP Message Queue MP Support
*
@@ -80,6 +82,20 @@ typedef struct {
offsetof(Message_queue_MP_Packet, Buffer.buffer)
/**
+ * @brief Message_queue_Core_message_queue_mp_support
+ *
+ * Input parameters:
+ * the_thread - the remote thread the message was submitted to
+ * id - id of the message queue
+ *
+ * Output parameters: NONE
+ */
+void _Message_queue_Core_message_queue_mp_support (
+ Thread_Control *the_thread,
+ rtems_id id
+);
+
+/**
* @brief _Message_queue_MP_Send_process_packet
*
* This routine performs a remote procedure call so that a
@@ -159,11 +175,11 @@ void _Message_queue_MP_Send_extract_proxy (
*/
Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void );
+/**@}*/
+
#ifdef __cplusplus
}
#endif
-/**@}*/
-
#endif
/* end of file */
diff --git a/cpukit/rtems/inline/rtems/rtems/message.inl b/cpukit/rtems/inline/rtems/rtems/message.inl
deleted file mode 100644
index 16c15c75a9..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/message.inl
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * @file rtems/rtems/message.inl
- *
- * This include file contains the static inline implementation of all
- * inlined routines in the Message Manager.
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * 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_RTEMS_MESSAGE_H
-# error "Never use <rtems/rtems/message.inl> directly; include <rtems/rtems/message.h> instead."
-#endif
-
-#ifndef _RTEMS_RTEMS_MESSAGE_INL
-#define _RTEMS_RTEMS_MESSAGE_INL
-
-#include <rtems/score/wkspace.h>
-
-/**
- * @addtogroup ClassicMessageQueue
- * @{
- */
-
-/**
- * @brief Check whether message queue is null.
- *
- * This function places the_message at the rear of the outstanding
- * messages on the_message_queue.
- */
-RTEMS_INLINE_ROUTINE bool _Message_queue_Is_null (
- Message_queue_Control *the_message_queue
-)
-{
- return ( the_message_queue == NULL );
-}
-
-
-/**
- * @brief Deallocates a message queue control block into
- * the inactive chain of free message queue control blocks.
- *
- * This routine deallocates a message queue control block into
- * the inactive chain of free message queue control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Message_queue_Free (
- Message_queue_Control *the_message_queue
-)
-{
- _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
-}
-
-/**
- * @brief Maps message queue IDs to message queue control blocks.
- *
- * This function maps message queue IDs to message queue control
- * blocks. If ID corresponds to a local message queue, then it
- * returns the_message_queue 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_message_queue is undefined.
- */
-RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Message_queue_Control *)
- _Objects_Get( &_Message_queue_Information, id, location );
-}
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am
index b1e8368bf5..f10504be2b 100644
--- a/cpukit/rtems/preinstall.am
+++ b/cpukit/rtems/preinstall.am
@@ -71,6 +71,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/message.h: include/rtems/rtems/message.h $(PROJEC
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/message.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/message.h
+$(PROJECT_INCLUDE)/rtems/rtems/messageimpl.h: include/rtems/rtems/messageimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/messageimpl.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/messageimpl.h
+
$(PROJECT_INCLUDE)/rtems/rtems/modes.h: include/rtems/rtems/modes.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/modes.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/modes.h
@@ -201,10 +205,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/eventset.inl: inline/rtems/rtems/eventset.inl $(P
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/eventset.inl
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/eventset.inl
-$(PROJECT_INCLUDE)/rtems/rtems/message.inl: inline/rtems/rtems/message.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/message.inl
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/message.inl
-
$(PROJECT_INCLUDE)/rtems/rtems/modes.inl: inline/rtems/rtems/modes.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/modes.inl
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/modes.inl
diff --git a/cpukit/rtems/src/msg.c b/cpukit/rtems/src/msg.c
index 9ce07ebd22..ed17202267 100644
--- a/cpukit/rtems/src/msg.c
+++ b/cpukit/rtems/src/msg.c
@@ -33,7 +33,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgdata.c b/cpukit/rtems/src/msgdata.c
index 4e6b937e52..f579309f05 100644
--- a/cpukit/rtems/src/msgdata.c
+++ b/cpukit/rtems/src/msgdata.c
@@ -21,5 +21,5 @@
#define RTEMS_MESSAGE_EXTERN
#include <rtems/system.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
diff --git a/cpukit/rtems/src/msgmp.c b/cpukit/rtems/src/msgmp.c
index 39f824750b..e6e4a48351 100644
--- a/cpukit/rtems/src/msgmp.c
+++ b/cpukit/rtems/src/msgmp.c
@@ -20,7 +20,7 @@
#include <rtems/system.h>
#include <rtems/rtems/status.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/score/mpci.h>
#include <rtems/rtems/msgmp.h>
#include <rtems/score/object.h>
diff --git a/cpukit/rtems/src/msgqallocate.c b/cpukit/rtems/src/msgqallocate.c
index 7251289314..9dd03d6fdb 100644
--- a/cpukit/rtems/src/msgqallocate.c
+++ b/cpukit/rtems/src/msgqallocate.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqbroadcast.c b/cpukit/rtems/src/msgqbroadcast.c
index c56ab1a335..bca22fd70e 100644
--- a/cpukit/rtems/src/msgqbroadcast.c
+++ b/cpukit/rtems/src/msgqbroadcast.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqcreate.c b/cpukit/rtems/src/msgqcreate.c
index 8a7abfa313..73e5d5cde9 100644
--- a/cpukit/rtems/src/msgqcreate.c
+++ b/cpukit/rtems/src/msgqcreate.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqdelete.c b/cpukit/rtems/src/msgqdelete.c
index 557ab83475..1ca3d89764 100644
--- a/cpukit/rtems/src/msgqdelete.c
+++ b/cpukit/rtems/src/msgqdelete.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqflush.c b/cpukit/rtems/src/msgqflush.c
index 90b0660bab..d26ecb8062 100644
--- a/cpukit/rtems/src/msgqflush.c
+++ b/cpukit/rtems/src/msgqflush.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqgetnumberpending.c b/cpukit/rtems/src/msgqgetnumberpending.c
index 27d7db09bc..db0f3c58eb 100644
--- a/cpukit/rtems/src/msgqgetnumberpending.c
+++ b/cpukit/rtems/src/msgqgetnumberpending.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqident.c b/cpukit/rtems/src/msgqident.c
index ea527e871b..b503f6f214 100644
--- a/cpukit/rtems/src/msgqident.c
+++ b/cpukit/rtems/src/msgqident.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqreceive.c b/cpukit/rtems/src/msgqreceive.c
index 3c9d0609c3..a5047bd887 100644
--- a/cpukit/rtems/src/msgqreceive.c
+++ b/cpukit/rtems/src/msgqreceive.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqsend.c b/cpukit/rtems/src/msgqsend.c
index 54bb86e94a..ec83dddfc6 100644
--- a/cpukit/rtems/src/msgqsend.c
+++ b/cpukit/rtems/src/msgqsend.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqtranslatereturncode.c b/cpukit/rtems/src/msgqtranslatereturncode.c
index d7d1a5610d..c5d219a1d8 100644
--- a/cpukit/rtems/src/msgqtranslatereturncode.c
+++ b/cpukit/rtems/src/msgqtranslatereturncode.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/msgqurgent.c b/cpukit/rtems/src/msgqurgent.c
index 7b157fbbc9..a573ee90d1 100644
--- a/cpukit/rtems/src/msgqurgent.c
+++ b/cpukit/rtems/src/msgqurgent.c
@@ -32,7 +32,7 @@
#endif
#include <rtems/rtems/status.h>
#include <rtems/rtems/attr.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/options.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/sapi/include/rtems/sptables.h b/cpukit/sapi/include/rtems/sptables.h
index 3c26de466f..fdef83eab2 100644
--- a/cpukit/sapi/include/rtems/sptables.h
+++ b/cpukit/sapi/include/rtems/sptables.h
@@ -36,7 +36,6 @@ extern "C" {
#include <rtems/rtems/tasks.h>
#include <rtems/rtems/dpmem.h>
#include <rtems/rtems/event.h>
-#include <rtems/rtems/message.h>
#if defined(RTEMS_MULTIPROCESSING)
#include <rtems/rtems/mp.h>
#endif
diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c
index f4370fe649..bf5ac492fb 100644
--- a/cpukit/sapi/src/rtemsapi.c
+++ b/cpukit/sapi/src/rtemsapi.c
@@ -31,7 +31,7 @@
#include <rtems/rtems/tasks.h>
#include <rtems/rtems/dpmem.h>
#include <rtems/rtems/event.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#if defined(RTEMS_MULTIPROCESSING)
#include <rtems/rtems/mp.h>
#endif
diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c
index 3e5e52e968..4885397562 100644
--- a/testsuites/sptests/spsize/size.c
+++ b/testsuites/sptests/spsize/size.c
@@ -28,7 +28,7 @@
#include <rtems/score/isr.h>
#include <rtems/rtems/intr.h>
#include <rtems/io.h>
-#include <rtems/rtems/message.h>
+#include <rtems/rtems/messageimpl.h>
#if defined(RTEMS_MULTIPROCESSING)
#include <rtems/rtems/mp.h>
#include <rtems/score/mpci.h>
@@ -296,7 +296,7 @@ uninitialized =
(sizeof _ISR_Vector_table) +
#endif
-/*message.h*/ (sizeof _Message_queue_Information) +
+/*messageimpl.h*/ (sizeof _Message_queue_Information) +
/*modes.h*/ 0 +