diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-17 13:52:00 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-18 09:58:56 +0200 |
commit | 2bbea657ae366f6b73dd6ca5db98af7ea3c29759 (patch) | |
tree | fcbee133028ad2e37bb6c15cdfc1b9f7eb25fdf4 | |
parent | libtests/gxx01: Avoid random memory read/write (diff) | |
download | rtems-2bbea657ae366f6b73dd6ca5db98af7ea3c29759.tar.bz2 |
rtems: Create semaphore implementation header
Move implementation specific parts of sem.h and sem.inl into new header
file semimpl.h. The sem.h contains now only the application visible
API.
25 files changed, 111 insertions, 112 deletions
diff --git a/cpukit/libcsupport/src/resource_snapshot.c b/cpukit/libcsupport/src/resource_snapshot.c index 1ac9e63d4c..f44f2829d5 100644 --- a/cpukit/libcsupport/src/resource_snapshot.c +++ b/cpukit/libcsupport/src/resource_snapshot.c @@ -25,6 +25,8 @@ #include <rtems/score/wkspace.h> #include <rtems/score/protectedheap.h> +#include <rtems/rtems/semimpl.h> + #ifdef RTEMS_POSIX_API #include <rtems/posix/barrier.h> #include <rtems/posix/cond.h> diff --git a/cpukit/libmisc/monitor/mon-object.c b/cpukit/libmisc/monitor/mon-object.c index 77f95be591..f431fda347 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/semimpl.h> #if defined(RTEMS_POSIX_API) #include <rtems/posix/pthread.h> #endif diff --git a/cpukit/libnetworking/rtems/rtems_glue.c b/cpukit/libnetworking/rtems/rtems_glue.c index 95cabe4d27..61ac9053c1 100644 --- a/cpukit/libnetworking/rtems/rtems_glue.c +++ b/cpukit/libnetworking/rtems/rtems_glue.c @@ -17,6 +17,7 @@ #include <rtems/libio.h> #include <rtems/error.h> #include <rtems/rtems_bsdnet.h> +#include <rtems/rtems/semimpl.h> #include <sys/types.h> #include <sys/param.h> #include <sys/domain.h> diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am index 31e2c3d4be..c61ca5a26b 100644 --- a/cpukit/rtems/Makefile.am +++ b/cpukit/rtems/Makefile.am @@ -33,6 +33,7 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/ratemon.h include_rtems_rtems_HEADERS += include/rtems/rtems/region.h include_rtems_rtems_HEADERS += include/rtems/rtems/rtemsapi.h include_rtems_rtems_HEADERS += include/rtems/rtems/sem.h +include_rtems_rtems_HEADERS += include/rtems/rtems/semimpl.h include_rtems_rtems_HEADERS += include/rtems/rtems/signal.h include_rtems_rtems_HEADERS += include/rtems/rtems/smp.h include_rtems_rtems_HEADERS += include/rtems/rtems/status.h @@ -69,7 +70,6 @@ include_rtems_rtems_HEADERS += inline/rtems/rtems/options.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 -include_rtems_rtems_HEADERS += inline/rtems/rtems/sem.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/status.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/support.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/tasks.inl diff --git a/cpukit/rtems/include/rtems/rtems/sem.h b/cpukit/rtems/include/rtems/rtems/sem.h index 046c0f2de8..fbe5590cfd 100644 --- a/cpukit/rtems/include/rtems/rtems/sem.h +++ b/cpukit/rtems/include/rtems/rtems/sem.h @@ -1,11 +1,9 @@ /** - * @file rtems/rtems/sem.h + * @file * - * @brief Semaphore Manager + * @ingroup ClassicSem * - * @defgroup ClassicSem Semaphores - * - * @ingroup ClassicRTEMS + * @brief Classic Semaphores API * * This include file contains all the constants and structures associated * with the Semaphore Manager. This manager utilizes standard Dijkstra @@ -32,25 +30,6 @@ #ifndef _RTEMS_RTEMS_SEM_H #define _RTEMS_RTEMS_SEM_H -/** - * @brief Instantiate Semaphore Data - * - * Semaphore Manager -- Data Instantiation - * - * 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_SEM_EXTERN -#define RTEMS_SEM_EXTERN extern -#endif - -#ifdef __cplusplus -extern "C" { -#endif - #include <rtems/rtems/types.h> #include <rtems/rtems/options.h> #include <rtems/rtems/support.h> @@ -60,6 +39,10 @@ extern "C" { #include <rtems/score/object.h> #include <rtems/score/coresem.h> +#ifdef __cplusplus +extern "C" { +#endif + /** * @defgroup ClassicSem Semaphores * @@ -109,19 +92,6 @@ typedef struct { } Semaphore_Control; /** - * The following defines the information control block used to manage - * this class of objects. - */ -RTEMS_SEM_EXTERN Objects_Information _Semaphore_Information; - -/** - * @brief Semaphore Manager Initialization - * - * This routine performs the initialization necessary for this manager. - */ -void _Semaphore_Manager_initialization(void); - -/** * @brief rtems_semaphore_create * * This routine implements the rtems_semaphore_create directive. The @@ -238,46 +208,11 @@ rtems_status_code rtems_semaphore_flush( rtems_id id ); -/** - * @brief Semaphore Translate Core Mutex Return Code - * - * This function returns a RTEMS status code based on the mutex - * status code specified. - * - * @param[in] the_mutex_status is the mutex status code to translate - * - * @retval translated RTEMS status code - */ -rtems_status_code _Semaphore_Translate_core_mutex_return_code ( - uint32_t the_mutex_status -); - -/** - * @brief Semaphore Translate Core Semaphore Return Code - * - * This function returns a RTEMS status code based on the semaphore - * status code specified. - * - * @param[in] the_mutex_status is the semaphore status code to translate - * - * @retval translated RTEMS status code - */ -rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( - uint32_t the_mutex_status -); - -#ifndef __RTEMS_APPLICATION__ -#include <rtems/rtems/sem.inl> -#endif -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/rtems/semmp.h> -#endif +/**@}*/ #ifdef __cplusplus } #endif -/**@}*/ - #endif /* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/sem.inl b/cpukit/rtems/include/rtems/rtems/semimpl.h index d1cdbb20e6..5a433e2789 100644 --- a/cpukit/rtems/inline/rtems/rtems/sem.inl +++ b/cpukit/rtems/include/rtems/rtems/semimpl.h @@ -1,8 +1,9 @@ /** - * @file rtems/rtems/sem.inl + * @file * - * This file contains the static inlin implementation of the inlined - * routines from the Semaphore Manager. + * @ingroup ClassicSem + * + * @brief Classic Semaphores Implementation */ /* COPYRIGHT (c) 1989-2008. @@ -13,17 +14,70 @@ * http://www.rtems.com/license/LICENSE. */ -#ifndef _RTEMS_RTEMS_SEM_H -# error "Never use <rtems/rtems/sem.inl> directly; include <rtems/rtems/sem.h> instead." +#ifndef _RTEMS_RTEMS_SEMIMPL_H +#define _RTEMS_RTEMS_SEMIMPL_H + +#include <rtems/rtems/sem.h> + +#ifdef __cplusplus +extern "C" { #endif -#ifndef _RTEMS_RTEMS_SEM_INL -#define _RTEMS_RTEMS_SEM_INL +/** + * @brief Instantiate Semaphore Data + * + * Semaphore Manager -- Data Instantiation + * + * 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_SEM_EXTERN +#define RTEMS_SEM_EXTERN extern +#endif /** - * @addtogroup ClassicSem - * @{ + * The following defines the information control block used to manage + * this class of objects. */ +RTEMS_SEM_EXTERN Objects_Information _Semaphore_Information; + +/** + * @brief Semaphore Manager Initialization + * + * This routine performs the initialization necessary for this manager. + */ +void _Semaphore_Manager_initialization(void); + +/** + * @brief Semaphore Translate Core Mutex Return Code + * + * This function returns a RTEMS status code based on the mutex + * status code specified. + * + * @param[in] the_mutex_status is the mutex status code to translate + * + * @retval translated RTEMS status code + */ +rtems_status_code _Semaphore_Translate_core_mutex_return_code ( + uint32_t the_mutex_status +); + +/** + * @brief Semaphore Translate Core Semaphore Return Code + * + * This function returns a RTEMS status code based on the semaphore + * status code specified. + * + * @param[in] the_mutex_status is the semaphore status code to translate + * + * @retval translated RTEMS status code + */ +rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( + uint32_t the_mutex_status +); /** * @brief Allocates a semaphore control block from @@ -92,7 +146,13 @@ RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get_interrupt_disable ( _Objects_Get_isr_disable( &_Semaphore_Information, id, location, level ); } -/**@}*/ +#ifdef __cplusplus +} +#endif + +#ifdef RTEMS_MULTIPROCESSING +#include <rtems/rtems/semmp.h> +#endif #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/semmp.h b/cpukit/rtems/include/rtems/rtems/semmp.h index d52176de7d..a3fd2d9b2e 100644 --- a/cpukit/rtems/include/rtems/rtems/semmp.h +++ b/cpukit/rtems/include/rtems/rtems/semmp.h @@ -21,17 +21,14 @@ #ifndef _RTEMS_RTEMS_SEMMP_H #define _RTEMS_RTEMS_SEMMP_H +#ifndef _RTEMS_RTEMS_SEMIMPL_H +# error "Never use <rtems/rtems/semmp.h> directly; include <rtems/rtems/semimpl.h> instead." +#endif + #ifdef __cplusplus extern "C" { #endif -#include <rtems/score/mppkt.h> -#include <rtems/score/object.h> -#include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> -#include <rtems/score/thread.h> -#include <rtems/score/watchdog.h> - /** * @defgroup ClassicSEM Semaphore MP Support * diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am index 128d78f789..b1e8368bf5 100644 --- a/cpukit/rtems/preinstall.am +++ b/cpukit/rtems/preinstall.am @@ -103,6 +103,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/sem.h: include/rtems/rtems/sem.h $(PROJECT_INCLUD $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/sem.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/sem.h +$(PROJECT_INCLUDE)/rtems/rtems/semimpl.h: include/rtems/rtems/semimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/semimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/semimpl.h + $(PROJECT_INCLUDE)/rtems/rtems/signal.h: include/rtems/rtems/signal.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/signal.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/signal.h @@ -136,7 +140,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/atomic.h: include/rtems/rtems/atomic.h $(PROJECT_ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/atomic.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/atomic.h endif - $(PROJECT_INCLUDE)/rtems/rtems/mainpage.h: mainpage.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/mainpage.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/mainpage.h @@ -222,10 +225,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/region.inl: inline/rtems/rtems/region.inl $(PROJE $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/region.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/region.inl -$(PROJECT_INCLUDE)/rtems/rtems/sem.inl: inline/rtems/rtems/sem.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/sem.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/sem.inl - $(PROJECT_INCLUDE)/rtems/rtems/status.inl: inline/rtems/rtems/status.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/status.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/status.inl diff --git a/cpukit/rtems/src/sem.c b/cpukit/rtems/src/sem.c index 4e22dacb36..47188e2cd5 100644 --- a/cpukit/rtems/src/sem.c +++ b/cpukit/rtems/src/sem.c @@ -26,7 +26,7 @@ #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/coremutex.h> #include <rtems/score/coresem.h> #include <rtems/score/states.h> diff --git a/cpukit/rtems/src/semcreate.c b/cpukit/rtems/src/semcreate.c index e7f7b77c50..60ce2cc6d8 100644 --- a/cpukit/rtems/src/semcreate.c +++ b/cpukit/rtems/src/semcreate.c @@ -25,7 +25,7 @@ #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/coremutex.h> #include <rtems/score/coresem.h> #include <rtems/score/states.h> diff --git a/cpukit/rtems/src/semdata.c b/cpukit/rtems/src/semdata.c index d19f0cc876..ca4fb17f08 100644 --- a/cpukit/rtems/src/semdata.c +++ b/cpukit/rtems/src/semdata.c @@ -21,5 +21,4 @@ /* instantiate semaphore data */ #define RTEMS_SEM_EXTERN -#include <rtems/system.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> diff --git a/cpukit/rtems/src/semdelete.c b/cpukit/rtems/src/semdelete.c index 12eb37f51a..070529258b 100644 --- a/cpukit/rtems/src/semdelete.c +++ b/cpukit/rtems/src/semdelete.c @@ -25,7 +25,7 @@ #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/coremutex.h> #include <rtems/score/coresem.h> #include <rtems/score/states.h> diff --git a/cpukit/rtems/src/semflush.c b/cpukit/rtems/src/semflush.c index bed91aa13f..0b5aaeb659 100644 --- a/cpukit/rtems/src/semflush.c +++ b/cpukit/rtems/src/semflush.c @@ -25,7 +25,7 @@ #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/coremutex.h> #include <rtems/score/coresem.h> #include <rtems/score/states.h> diff --git a/cpukit/rtems/src/semident.c b/cpukit/rtems/src/semident.c index b770d69ef4..df6f05047f 100644 --- a/cpukit/rtems/src/semident.c +++ b/cpukit/rtems/src/semident.c @@ -25,7 +25,7 @@ #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/coremutex.h> #include <rtems/score/coresem.h> #include <rtems/score/states.h> diff --git a/cpukit/rtems/src/semmp.c b/cpukit/rtems/src/semmp.c index 1712c66a4f..02e1d98559 100644 --- a/cpukit/rtems/src/semmp.c +++ b/cpukit/rtems/src/semmp.c @@ -24,7 +24,7 @@ #include <rtems/score/mppkt.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/thread.h> #include <rtems/score/watchdog.h> #include <rtems/rtems/support.h> diff --git a/cpukit/rtems/src/semobtain.c b/cpukit/rtems/src/semobtain.c index 5b68974d2a..38917823c4 100644 --- a/cpukit/rtems/src/semobtain.c +++ b/cpukit/rtems/src/semobtain.c @@ -25,7 +25,7 @@ #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/coremutex.h> #include <rtems/score/coresem.h> #include <rtems/score/states.h> diff --git a/cpukit/rtems/src/semrelease.c b/cpukit/rtems/src/semrelease.c index a5da108736..be3f7d0579 100644 --- a/cpukit/rtems/src/semrelease.c +++ b/cpukit/rtems/src/semrelease.c @@ -40,7 +40,7 @@ #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/coremutex.h> #include <rtems/score/coresem.h> #include <rtems/score/states.h> diff --git a/cpukit/rtems/src/semtranslatereturncode.c b/cpukit/rtems/src/semtranslatereturncode.c index a06a84871d..531a904039 100644 --- a/cpukit/rtems/src/semtranslatereturncode.c +++ b/cpukit/rtems/src/semtranslatereturncode.c @@ -25,7 +25,7 @@ #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/score/coremutex.h> #include <rtems/score/coresem.h> #include <rtems/score/states.h> diff --git a/cpukit/sapi/include/rtems/sptables.h b/cpukit/sapi/include/rtems/sptables.h index f32729c7eb..3c26de466f 100644 --- a/cpukit/sapi/include/rtems/sptables.h +++ b/cpukit/sapi/include/rtems/sptables.h @@ -43,7 +43,6 @@ extern "C" { #include <rtems/rtems/part.h> #include <rtems/rtems/ratemon.h> #include <rtems/rtems/region.h> -#include <rtems/rtems/sem.h> #include <rtems/rtems/signal.h> #include <rtems/rtems/timer.h> diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c index d59daa19c5..f4370fe649 100644 --- a/cpukit/sapi/src/rtemsapi.c +++ b/cpukit/sapi/src/rtemsapi.c @@ -38,7 +38,7 @@ #include <rtems/rtems/part.h> #include <rtems/rtems/ratemon.h> #include <rtems/rtems/region.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/rtems/signal.h> #include <rtems/rtems/timer.h> diff --git a/testsuites/sptests/spintrcritical01/init.c b/testsuites/sptests/spintrcritical01/init.c index 7859a14a0e..9e1bbaa05a 100644 --- a/testsuites/sptests/spintrcritical01/init.c +++ b/testsuites/sptests/spintrcritical01/init.c @@ -11,10 +11,11 @@ #include "config.h" #endif -#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 1 #include <tmacros.h> #include <intrcritical.h> +#include <rtems/rtems/semimpl.h> + /* forward declarations to avoid warnings */ rtems_task Init(rtems_task_argument argument); rtems_timer_service_routine test_release_from_isr(rtems_id timer, void *arg); diff --git a/testsuites/sptests/spintrcritical09/init.c b/testsuites/sptests/spintrcritical09/init.c index a00aae0e31..a7f79b2be8 100644 --- a/testsuites/sptests/spintrcritical09/init.c +++ b/testsuites/sptests/spintrcritical09/init.c @@ -15,6 +15,8 @@ #include <tmacros.h> #include <intrcritical.h> +#include <rtems/rtems/semimpl.h> + static rtems_id Semaphore; static bool case_hit; diff --git a/testsuites/sptests/spintrcritical16/init.c b/testsuites/sptests/spintrcritical16/init.c index 4d551bae79..4a32de2a47 100644 --- a/testsuites/sptests/spintrcritical16/init.c +++ b/testsuites/sptests/spintrcritical16/init.c @@ -15,6 +15,8 @@ #include <tmacros.h> #include <intrcritical.h> +#include <rtems/rtems/semimpl.h> + /* forward declarations to avoid warnings */ rtems_task Init(rtems_task_argument argument); rtems_timer_service_routine test_release_from_isr(rtems_id timer, void *arg); diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c index 2a77927dda..3e5e52e968 100644 --- a/testsuites/sptests/spsize/size.c +++ b/testsuites/sptests/spsize/size.c @@ -37,7 +37,7 @@ #include <rtems/score/priority.h> #include <rtems/rtems/ratemon.h> #include <rtems/rtems/region.h> -#include <rtems/rtems/sem.h> +#include <rtems/rtems/semimpl.h> #include <rtems/rtems/signal.h> #include <rtems/score/scheduler.h> #include <rtems/score/sysstate.h> @@ -355,7 +355,7 @@ uninitialized = /*scheduler.h*/ SCHEDULER_OVHD + -/*sem.h*/ (sizeof _Semaphore_Information) + +/*semimpl.h*/ (sizeof _Semaphore_Information) + #if defined(RTEMS_MULTIPROCESSING) /*semmp.h*/ 0 + diff --git a/testsuites/tmtests/tm26/task1.c b/testsuites/tmtests/tm26/task1.c index 5cf3e7a2b6..2c8ddfca61 100644 --- a/testsuites/tmtests/tm26/task1.c +++ b/testsuites/tmtests/tm26/task1.c @@ -20,6 +20,7 @@ #include <tmacros.h> #include <timesys.h> +#include <rtems/rtems/semimpl.h> /* TEST DATA */ rtems_id Semaphore_id; |