From 562815cf0bae82467311becd5cf670ba35cd94b8 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 23 Jul 2013 13:00:31 +0200 Subject: rtems: Create dpmem implementation header Move implementation specific parts of dpmem.h and dpmem.inl into new header file dpmemimpl.h. The dpmem.h contains now only the application visible API. --- cpukit/libcsupport/src/resource_snapshot.c | 1 + cpukit/rtems/Makefile.am | 2 +- cpukit/rtems/include/rtems/rtems/dpmem.h | 34 +------- cpukit/rtems/include/rtems/rtems/dpmemimpl.h | 119 +++++++++++++++++++++++++++ cpukit/rtems/inline/rtems/rtems/dpmem.inl | 90 -------------------- cpukit/rtems/preinstall.am | 8 +- cpukit/rtems/src/dpmem.c | 2 +- cpukit/rtems/src/dpmemcreate.c | 3 +- cpukit/rtems/src/dpmemdata.c | 3 +- cpukit/rtems/src/dpmemdelete.c | 3 +- cpukit/rtems/src/dpmemexternal2internal.c | 3 +- cpukit/rtems/src/dpmemident.c | 3 +- cpukit/rtems/src/dpmeminternal2external.c | 3 +- cpukit/sapi/src/rtemsapi.c | 2 +- testsuites/sptests/spsize/size.c | 4 +- 15 files changed, 138 insertions(+), 142 deletions(-) create mode 100644 cpukit/rtems/include/rtems/rtems/dpmemimpl.h delete mode 100644 cpukit/rtems/inline/rtems/rtems/dpmem.inl diff --git a/cpukit/libcsupport/src/resource_snapshot.c b/cpukit/libcsupport/src/resource_snapshot.c index 917da8a2ee..eda4a5361c 100644 --- a/cpukit/libcsupport/src/resource_snapshot.c +++ b/cpukit/libcsupport/src/resource_snapshot.c @@ -28,6 +28,7 @@ #include #include +#include #include #include diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am index 285d4401c6..512b0f6273 100644 --- a/cpukit/rtems/Makefile.am +++ b/cpukit/rtems/Makefile.am @@ -24,6 +24,7 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/cache.h include_rtems_rtems_HEADERS += include/rtems/rtems/clock.h include_rtems_rtems_HEADERS += include/rtems/rtems/config.h include_rtems_rtems_HEADERS += include/rtems/rtems/dpmem.h +include_rtems_rtems_HEADERS += include/rtems/rtems/dpmemimpl.h include_rtems_rtems_HEADERS += include/rtems/rtems/event.h include_rtems_rtems_HEADERS += include/rtems/rtems/eventimpl.h include_rtems_rtems_HEADERS += include/rtems/rtems/intr.h @@ -65,7 +66,6 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/signalmp.h include_rtems_rtems_HEADERS += include/rtems/rtems/taskmp.h endif -include_rtems_rtems_HEADERS += inline/rtems/rtems/dpmem.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/part.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/ratemon.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/region.inl diff --git a/cpukit/rtems/include/rtems/rtems/dpmem.h b/cpukit/rtems/include/rtems/rtems/dpmem.h index aea8aea6a4..fd931c3f33 100644 --- a/cpukit/rtems/include/rtems/rtems/dpmem.h +++ b/cpukit/rtems/include/rtems/rtems/dpmem.h @@ -32,24 +32,13 @@ #ifndef _RTEMS_RTEMS_DPMEM_H #define _RTEMS_RTEMS_DPMEM_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_DPMEM_EXTERN -#define RTEMS_DPMEM_EXTERN extern -#endif +#include +#include #ifdef __cplusplus extern "C" { #endif -#include -#include -#include - /** * @defgroup ClassicDPMEM Dual Ported Memory * @@ -76,19 +65,6 @@ typedef struct { uint32_t length; } Dual_ported_memory_Control; -/** - * @brief Define the internal Dual Ported Memory information - * The following define the internal Dual Ported Memory information. - */ -RTEMS_DPMEM_EXTERN Objects_Information _Dual_ported_memory_Information; - -/** - * @brief Dual Ported Memory Manager Initialization - * - * This routine performs the initialization necessary for this manager. - */ -void _Dual_ported_memory_Manager_initialization(void); - /** * @brief Creates a port into a dual-ported memory area. * @@ -193,15 +169,11 @@ rtems_status_code rtems_port_internal_to_external( void **external ); -#ifndef __RTEMS_APPLICATION__ -#include -#endif +/**@}*/ #ifdef __cplusplus } #endif -/**@}*/ - #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/dpmemimpl.h b/cpukit/rtems/include/rtems/rtems/dpmemimpl.h new file mode 100644 index 0000000000..1fa636dc35 --- /dev/null +++ b/cpukit/rtems/include/rtems/rtems/dpmemimpl.h @@ -0,0 +1,119 @@ +/** + * @file + * + * @ingroup ClassicDPMEMImpl + * + * @brief Dual Ported Memory Manager Implementation + */ + +/* 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_DPMEM_INL +#define _RTEMS_RTEMS_DPMEM_INL + +#include + +/** + * @defgroup ClassicDPMEMImpl Dual Ported Memory Manager Implementation + * + * @ingroup ClassicDPMEM + * + * @{ + */ + +/** + * 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_DPMEM_EXTERN +#define RTEMS_DPMEM_EXTERN extern +#endif + +/** + * @brief Define the internal Dual Ported Memory information + * The following define the internal Dual Ported Memory information. + */ +RTEMS_DPMEM_EXTERN Objects_Information _Dual_ported_memory_Information; + +/** + * @brief Dual Ported Memory Manager Initialization + * + * This routine performs the initialization necessary for this manager. + */ +void _Dual_ported_memory_Manager_initialization(void); + +/** + * @brief Allocates a port control block from the inactive chain + * of free port control blocks. + * + * This routine allocates a port control block from the inactive chain + * of free port control blocks. + */ +RTEMS_INLINE_ROUTINE Dual_ported_memory_Control + *_Dual_ported_memory_Allocate ( void ) +{ + return (Dual_ported_memory_Control *) + _Objects_Allocate( &_Dual_ported_memory_Information ); +} + +/** + * @brief Frees a port control block to the inactive chain + * of free port control blocks. + * + * This routine frees a port control block to the inactive chain + * of free port control blocks. + */ +RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free ( + Dual_ported_memory_Control *the_port +) +{ + _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object ); +} + +/** + * @brief Maps port IDs to port control blocks. + * + * This function maps port IDs to port control blocks. If ID + * corresponds to a local port, then it returns the_port control + * pointer which maps to ID and location is set to OBJECTS_LOCAL. + * Global ports are not supported, thus if ID does not map to a + * local port, location is set to OBJECTS_ERROR and the_port is + * undefined. + */ +RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( + Objects_Id id, + Objects_Locations *location +) +{ + return (Dual_ported_memory_Control *) + _Objects_Get( &_Dual_ported_memory_Information, id, location ); +} + +/** + * @brief Checks if the_port is NULL. + * + * This function returns true if the_port is NULL and false otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Dual_ported_memory_Is_null( + Dual_ported_memory_Control *the_port +) +{ + return ( the_port == NULL ); +} + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/dpmem.inl b/cpukit/rtems/inline/rtems/rtems/dpmem.inl deleted file mode 100644 index 19a4addbca..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/dpmem.inl +++ /dev/null @@ -1,90 +0,0 @@ -/** - * @file rtems/rtems/dpmem.inl - * - * This include file contains the inline routine used in conjunction - * with the Dual Ported Memory 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_DPMEM_H -# error "Never use directly; include instead." -#endif - -#ifndef _RTEMS_RTEMS_DPMEM_INL -#define _RTEMS_RTEMS_DPMEM_INL - -/** - * @addtogroup ClassicDPMEM - * @{ - */ - -/** - * @brief Allocates a port control block from the inactive chain - * of free port control blocks. - * - * This routine allocates a port control block from the inactive chain - * of free port control blocks. - */ -RTEMS_INLINE_ROUTINE Dual_ported_memory_Control - *_Dual_ported_memory_Allocate ( void ) -{ - return (Dual_ported_memory_Control *) - _Objects_Allocate( &_Dual_ported_memory_Information ); -} - -/** - * @brief Frees a port control block to the inactive chain - * of free port control blocks. - * - * This routine frees a port control block to the inactive chain - * of free port control blocks. - */ -RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free ( - Dual_ported_memory_Control *the_port -) -{ - _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object ); -} - -/** - * @brief Maps port IDs to port control blocks. - * - * This function maps port IDs to port control blocks. If ID - * corresponds to a local port, then it returns the_port control - * pointer which maps to ID and location is set to OBJECTS_LOCAL. - * Global ports are not supported, thus if ID does not map to a - * local port, location is set to OBJECTS_ERROR and the_port is - * undefined. - */ -RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Dual_ported_memory_Control *) - _Objects_Get( &_Dual_ported_memory_Information, id, location ); -} - -/** - * @brief Checks if the_port is NULL. - * - * This function returns true if the_port is NULL and false otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Dual_ported_memory_Is_null( - Dual_ported_memory_Control *the_port -) -{ - return ( the_port == NULL ); -} - -/**@}*/ - -#endif -/* end of include file */ diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am index 19e5bd6645..b1140a3e13 100644 --- a/cpukit/rtems/preinstall.am +++ b/cpukit/rtems/preinstall.am @@ -67,6 +67,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/dpmem.h: include/rtems/rtems/dpmem.h $(PROJECT_IN $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/dpmem.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/dpmem.h +$(PROJECT_INCLUDE)/rtems/rtems/dpmemimpl.h: include/rtems/rtems/dpmemimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/dpmemimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/dpmemimpl.h + $(PROJECT_INCLUDE)/rtems/rtems/event.h: include/rtems/rtems/event.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/event.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/event.h @@ -205,10 +209,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h: include/rtems/rtems/taskmp.h $(PROJECT_ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h endif -$(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl: inline/rtems/rtems/dpmem.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl - $(PROJECT_INCLUDE)/rtems/rtems/part.inl: inline/rtems/rtems/part.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/part.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/part.inl diff --git a/cpukit/rtems/src/dpmem.c b/cpukit/rtems/src/dpmem.c index 88f06caeee..a1003d622a 100644 --- a/cpukit/rtems/src/dpmem.c +++ b/cpukit/rtems/src/dpmem.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/dpmemcreate.c b/cpukit/rtems/src/dpmemcreate.c index 6987670e61..f8ca546078 100644 --- a/cpukit/rtems/src/dpmemcreate.c +++ b/cpukit/rtems/src/dpmemcreate.c @@ -22,10 +22,9 @@ #include #include #include -#include +#include #include #include -#include rtems_status_code rtems_port_create( rtems_name name, diff --git a/cpukit/rtems/src/dpmemdata.c b/cpukit/rtems/src/dpmemdata.c index dac78730c7..1d2c272859 100644 --- a/cpukit/rtems/src/dpmemdata.c +++ b/cpukit/rtems/src/dpmemdata.c @@ -21,5 +21,4 @@ /* instantiate semaphore data */ #define RTEMS_DPMEM_EXTERN -#include -#include +#include diff --git a/cpukit/rtems/src/dpmemdelete.c b/cpukit/rtems/src/dpmemdelete.c index 6746e158b5..50e81f81d6 100644 --- a/cpukit/rtems/src/dpmemdelete.c +++ b/cpukit/rtems/src/dpmemdelete.c @@ -22,10 +22,9 @@ #include #include #include -#include +#include #include #include -#include rtems_status_code rtems_port_delete( rtems_id id diff --git a/cpukit/rtems/src/dpmemexternal2internal.c b/cpukit/rtems/src/dpmemexternal2internal.c index 010429dc6d..9e540aae9e 100644 --- a/cpukit/rtems/src/dpmemexternal2internal.c +++ b/cpukit/rtems/src/dpmemexternal2internal.c @@ -22,10 +22,9 @@ #include #include #include -#include +#include #include #include -#include rtems_status_code rtems_port_external_to_internal( rtems_id id, diff --git a/cpukit/rtems/src/dpmemident.c b/cpukit/rtems/src/dpmemident.c index 13512be410..73d3b5a3a9 100644 --- a/cpukit/rtems/src/dpmemident.c +++ b/cpukit/rtems/src/dpmemident.c @@ -22,10 +22,9 @@ #include #include #include -#include +#include #include #include -#include rtems_status_code rtems_port_ident( rtems_name name, diff --git a/cpukit/rtems/src/dpmeminternal2external.c b/cpukit/rtems/src/dpmeminternal2external.c index 7881d6b9a9..bf93f417b2 100644 --- a/cpukit/rtems/src/dpmeminternal2external.c +++ b/cpukit/rtems/src/dpmeminternal2external.c @@ -22,10 +22,9 @@ #include #include #include -#include +#include #include #include -#include rtems_status_code rtems_port_internal_to_external( rtems_id id, diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c index 22be0f15a9..d4d440a625 100644 --- a/cpukit/sapi/src/rtemsapi.c +++ b/cpukit/sapi/src/rtemsapi.c @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include #if defined(RTEMS_MULTIPROCESSING) diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c index f12770fb36..da0fb30ddb 100644 --- a/testsuites/sptests/spsize/size.c +++ b/testsuites/sptests/spsize/size.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include @@ -267,7 +267,7 @@ uninitialized = /*debug.h*/ (sizeof _Debug_Level) + -/*dpmem.h*/ (sizeof _Dual_ported_memory_Information) + +/*dpmemimpl.h*/ (sizeof _Dual_ported_memory_Information) + /*eventimpl.h*/ (sizeof _Event_Sync_state) + -- cgit v1.2.3