diff options
Diffstat (limited to '')
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; |