diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-19 10:42:39 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-22 16:57:21 +0200 |
commit | 0b32bb8042c908bcf376f763de8ac0401dc17288 (patch) | |
tree | b70741c56d1007f0bfb450c37e2d3fef127ec29c | |
parent | score: Include <limits.h> in basedefs.h (diff) | |
download | rtems-0b32bb8042c908bcf376f763de8ac0401dc17288.tar.bz2 |
rtems: Create barrier implementation header
Move implementation specific parts of barrier.h and barrier.inl into new
header file barrierimpl.h. The barrier.h contains now only the
application visible API.
-rw-r--r-- | cpukit/libcsupport/src/resource_snapshot.c | 1 | ||||
-rw-r--r-- | cpukit/libfs/src/pipe/fifo.c | 1 | ||||
-rw-r--r-- | cpukit/rtems/Makefile.am | 2 | ||||
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/barrier.h | 68 | ||||
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/barrierimpl.h (renamed from cpukit/rtems/inline/rtems/rtems/barrier.inl) | 61 | ||||
-rw-r--r-- | cpukit/rtems/preinstall.am | 8 | ||||
-rw-r--r-- | cpukit/rtems/src/barrier.c | 2 | ||||
-rw-r--r-- | cpukit/rtems/src/barriercreate.c | 2 | ||||
-rw-r--r-- | cpukit/rtems/src/barrierdata.c | 2 | ||||
-rw-r--r-- | cpukit/rtems/src/barrierdelete.c | 2 | ||||
-rw-r--r-- | cpukit/rtems/src/barrierident.c | 2 | ||||
-rw-r--r-- | cpukit/rtems/src/barrierrelease.c | 2 | ||||
-rw-r--r-- | cpukit/rtems/src/barriertranslatereturncode.c | 2 | ||||
-rw-r--r-- | cpukit/rtems/src/barrierwait.c | 2 | ||||
-rw-r--r-- | cpukit/sapi/src/rtemsapi.c | 2 |
15 files changed, 82 insertions, 77 deletions
diff --git a/cpukit/libcsupport/src/resource_snapshot.c b/cpukit/libcsupport/src/resource_snapshot.c index 4fc3f15e58..cb3d6d7459 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/barrierimpl.h> #include <rtems/rtems/messageimpl.h> #include <rtems/rtems/semimpl.h> diff --git a/cpukit/libfs/src/pipe/fifo.c b/cpukit/libfs/src/pipe/fifo.c index b8eed9b449..635e7650b5 100644 --- a/cpukit/libfs/src/pipe/fifo.c +++ b/cpukit/libfs/src/pipe/fifo.c @@ -27,6 +27,7 @@ #include <rtems.h> #include <rtems/libio_.h> +#include <rtems/rtems/barrierimpl.h> #include "pipe.h" diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am index 04963b55ce..5d39b4843d 100644 --- a/cpukit/rtems/Makefile.am +++ b/cpukit/rtems/Makefile.am @@ -17,6 +17,7 @@ include_rtems_rtems_HEADERS = include_rtems_rtems_HEADERS += include/rtems/rtems/asr.h include_rtems_rtems_HEADERS += include/rtems/rtems/attr.h include_rtems_rtems_HEADERS += include/rtems/rtems/barrier.h +include_rtems_rtems_HEADERS += include/rtems/rtems/barrierimpl.h 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 @@ -61,7 +62,6 @@ endif include_rtems_rtems_HEADERS += inline/rtems/rtems/asr.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/attr.inl -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 diff --git a/cpukit/rtems/include/rtems/rtems/barrier.h b/cpukit/rtems/include/rtems/rtems/barrier.h index b27f81b378..e362bb0db3 100644 --- a/cpukit/rtems/include/rtems/rtems/barrier.h +++ b/cpukit/rtems/include/rtems/rtems/barrier.h @@ -29,6 +29,16 @@ #ifndef _RTEMS_RTEMS_BARRIER_H #define _RTEMS_RTEMS_BARRIER_H +#include <rtems/rtems/types.h> +#include <rtems/rtems/status.h> +#include <rtems/rtems/attr.h> +#include <rtems/score/object.h> +#include <rtems/score/corebarrier.h> + +#ifdef __cplusplus +extern "C" { +#endif + /** * @defgroup ClassicBarrier Barriers * @@ -40,31 +50,6 @@ /**@{*/ /** - * @brief Instantiate Barrier Data - * - * Barrier Manager -- Instantiate Data - * - * 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_BARRIER_EXTERN -#define RTEMS_BARRIER_EXTERN extern -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include <rtems/rtems/types.h> -#include <rtems/rtems/support.h> -#include <rtems/rtems/attr.h> -#include <rtems/rtems/status.h> -#include <rtems/score/object.h> -#include <rtems/score/corebarrier.h> - -/** * This type defines the control block used to manage each barrier. */ typedef struct { @@ -77,19 +62,6 @@ typedef struct { } Barrier_Control; /** - * The following defines the information control block used to manage - * this class of objects. - */ -RTEMS_BARRIER_EXTERN Objects_Information _Barrier_Information; - -/** - * @brief _Barrier_Manager_initialization - * - * This routine performs the initialization necessary for this manager. - */ -void _Barrier_Manager_initialization(void); - -/** * @brief RTEMS Create Barrier * * Barrier Manager -- Create a Barrier Instance @@ -191,29 +163,11 @@ rtems_status_code rtems_barrier_release( uint32_t *released ); -/** - * @brief Translate SuperCore Barrier Status Code to RTEMS Status Code - * - * This function returns a RTEMS status code based on the barrier - * status code specified. - * - * @param[in] the_status is the SuperCore Barrier status to translate. - * - * @retval a status code indicating success or the reason for failure. - */ -rtems_status_code _Barrier_Translate_core_barrier_return_code ( - CORE_barrier_Status the_status -); - -#ifndef __RTEMS_APPLICATION__ -#include <rtems/rtems/barrier.inl> -#endif +/**@}*/ #ifdef __cplusplus } #endif -/**@}*/ - #endif /* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/barrier.inl b/cpukit/rtems/include/rtems/rtems/barrierimpl.h index 0d0ee4cf88..9c630fb2eb 100644 --- a/cpukit/rtems/inline/rtems/rtems/barrier.inl +++ b/cpukit/rtems/include/rtems/rtems/barrierimpl.h @@ -19,19 +19,51 @@ * http://www.rtems.com/license/LICENSE. */ -#ifndef _RTEMS_RTEMS_BARRIER_H -# error "Never use <rtems/rtems/barrier.inl> directly; include <rtems/rtems/barrier.h> instead." -#endif +#ifndef _RTEMS_RTEMS_BARRIERIMPL_H +#define _RTEMS_RTEMS_BARRIERIMPL_H + +#include <rtems/rtems/barrier.h> -#ifndef _RTEMS_RTEMS_BARRIER_INL -#define _RTEMS_RTEMS_BARRIER_INL +#ifdef __cplusplus +extern "C" { +#endif /** - * @addtogroup ClassicBarrier + * @defgroup ClassicBarrierImpl Classic Barrier Implementation + * + * @ingroup ClassicBarrier + * * @{ */ /** + * @brief Instantiate Barrier Data + * + * Barrier Manager -- Instantiate Data + * + * 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_BARRIER_EXTERN +#define RTEMS_BARRIER_EXTERN extern +#endif + +/** + * The following defines the information control block used to manage + * this class of objects. + */ +RTEMS_BARRIER_EXTERN Objects_Information _Barrier_Information; + +/** + * @brief _Barrier_Manager_initialization + * + * This routine performs the initialization necessary for this manager. + */ +void _Barrier_Manager_initialization(void); + +/** * @brief _Barrier_Allocate * * This function allocates a barrier control block from @@ -86,8 +118,25 @@ RTEMS_INLINE_ROUTINE bool _Barrier_Is_null ( { return ( the_barrier == NULL ); } +/** + * @brief Translate SuperCore Barrier Status Code to RTEMS Status Code + * + * This function returns a RTEMS status code based on the barrier + * status code specified. + * + * @param[in] the_status is the SuperCore Barrier status to translate. + * + * @retval a status code indicating success or the reason for failure. + */ +rtems_status_code _Barrier_Translate_core_barrier_return_code ( + CORE_barrier_Status the_status +); /**@}*/ +#ifdef __cplusplus +} +#endif + #endif /* end of include file */ diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am index f10504be2b..18e3f4738f 100644 --- a/cpukit/rtems/preinstall.am +++ b/cpukit/rtems/preinstall.am @@ -39,6 +39,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/barrier.h: include/rtems/rtems/barrier.h $(PROJEC $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrier.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrier.h +$(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h: include/rtems/rtems/barrierimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h + $(PROJECT_INCLUDE)/rtems/rtems/cache.h: include/rtems/rtems/cache.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/cache.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/cache.h @@ -189,10 +193,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/attr.inl: inline/rtems/rtems/attr.inl $(PROJECT_I $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/attr.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/attr.inl -$(PROJECT_INCLUDE)/rtems/rtems/barrier.inl: inline/rtems/rtems/barrier.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrier.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrier.inl - $(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 diff --git a/cpukit/rtems/src/barrier.c b/cpukit/rtems/src/barrier.c index 0cdd32005f..fc96703c59 100644 --- a/cpukit/rtems/src/barrier.c +++ b/cpukit/rtems/src/barrier.c @@ -30,7 +30,7 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/object.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> #if defined(RTEMS_MULTIPROCESSING) #include <rtems/score/mpci.h> #endif diff --git a/cpukit/rtems/src/barriercreate.c b/cpukit/rtems/src/barriercreate.c index b2450148d0..16721375cd 100644 --- a/cpukit/rtems/src/barriercreate.c +++ b/cpukit/rtems/src/barriercreate.c @@ -24,7 +24,7 @@ #include <rtems/rtems/attr.h> #include <rtems/score/isr.h> #include <rtems/score/object.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> /* * rtems_barrier_create diff --git a/cpukit/rtems/src/barrierdata.c b/cpukit/rtems/src/barrierdata.c index 6481dbc3f7..32f095b685 100644 --- a/cpukit/rtems/src/barrierdata.c +++ b/cpukit/rtems/src/barrierdata.c @@ -22,5 +22,5 @@ #define RTEMS_BARRIER_EXTERN #include <rtems/system.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> diff --git a/cpukit/rtems/src/barrierdelete.c b/cpukit/rtems/src/barrierdelete.c index db6f9288da..83ed480bfa 100644 --- a/cpukit/rtems/src/barrierdelete.c +++ b/cpukit/rtems/src/barrierdelete.c @@ -21,7 +21,7 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> #include <rtems/score/states.h> #include <rtems/score/thread.h> #include <rtems/score/threadq.h> diff --git a/cpukit/rtems/src/barrierident.c b/cpukit/rtems/src/barrierident.c index dc047f1d27..ce801f4f8c 100644 --- a/cpukit/rtems/src/barrierident.c +++ b/cpukit/rtems/src/barrierident.c @@ -23,7 +23,7 @@ #include <rtems/rtems/support.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> rtems_status_code rtems_barrier_ident( rtems_name name, diff --git a/cpukit/rtems/src/barrierrelease.c b/cpukit/rtems/src/barrierrelease.c index 38aaa83cc3..1840ca981c 100644 --- a/cpukit/rtems/src/barrierrelease.c +++ b/cpukit/rtems/src/barrierrelease.c @@ -21,7 +21,7 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> #include <rtems/score/thread.h> #include <rtems/score/threadq.h> diff --git a/cpukit/rtems/src/barriertranslatereturncode.c b/cpukit/rtems/src/barriertranslatereturncode.c index 424be88892..bfce0271e0 100644 --- a/cpukit/rtems/src/barriertranslatereturncode.c +++ b/cpukit/rtems/src/barriertranslatereturncode.c @@ -21,7 +21,7 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> rtems_status_code _Barrier_Translate_core_barrier_return_code_[] = { RTEMS_SUCCESSFUL, /* CORE_BARRIER_STATUS_SUCCESSFUL */ diff --git a/cpukit/rtems/src/barrierwait.c b/cpukit/rtems/src/barrierwait.c index aae06c8694..515f9352c7 100644 --- a/cpukit/rtems/src/barrierwait.c +++ b/cpukit/rtems/src/barrierwait.c @@ -21,7 +21,7 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> #include <rtems/score/thread.h> #include <rtems/score/threadq.h> diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c index bf5ac492fb..dcf6fc044d 100644 --- a/cpukit/sapi/src/rtemsapi.c +++ b/cpukit/sapi/src/rtemsapi.c @@ -26,7 +26,7 @@ #include <rtems/rtems/rtemsapi.h> #include <rtems/rtems/intr.h> -#include <rtems/rtems/barrier.h> +#include <rtems/rtems/barrierimpl.h> #include <rtems/rtems/clock.h> #include <rtems/rtems/tasks.h> #include <rtems/rtems/dpmem.h> |