diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-18 13:50:25 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-22 16:56:57 +0200 |
commit | 9c743e8e72b602319bf5a4a35a2fea4d60e7dc2e (patch) | |
tree | d01b078a0a32dc95513f34102611ebd448f7acf3 /cpukit/posix/include/rtems/posix/semaphore.h | |
parent | score: Error for non-preemptible tasks on SMP (diff) | |
download | rtems-9c743e8e72b602319bf5a4a35a2fea4d60e7dc2e.tar.bz2 |
posix: Create semaphore implementation header
Move implementation specific parts of semaphore.h and semaphore.inl into
new header file semaphoreimpl.h. The semaphore.h contains now only the
application visible API.
Diffstat (limited to '')
-rw-r--r-- | cpukit/posix/include/rtems/posix/semaphore.h | 134 |
1 files changed, 9 insertions, 125 deletions
diff --git a/cpukit/posix/include/rtems/posix/semaphore.h b/cpukit/posix/include/rtems/posix/semaphore.h index 92be580c0f..81fee49cce 100644 --- a/cpukit/posix/include/rtems/posix/semaphore.h +++ b/cpukit/posix/include/rtems/posix/semaphore.h @@ -19,6 +19,14 @@ #ifndef _RTEMS_POSIX_SEMAPHORE_H #define _RTEMS_POSIX_SEMAPHORE_H +#include <semaphore.h> +#include <rtems/score/object.h> +#include <rtems/score/coresem.h> + +#ifdef __cplusplus +extern "C" { +#endif + /** * @defgroup POSIXSemaphorePrivate POSIX Semaphore Private Support * @@ -28,14 +36,6 @@ */ /**@{*/ -#ifdef __cplusplus -extern "C" { -#endif - -#include <semaphore.h> -#include <rtems/score/coresem.h> -#include <rtems/posix/posixapi.h> - /* * Data Structure used to manage a POSIX semaphore */ @@ -57,127 +57,11 @@ typedef struct { #endif } POSIX_Semaphore_Control; -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -POSIX_EXTERN Objects_Information _POSIX_Semaphore_Information; - -/* - * _POSIX_Semaphore_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _POSIX_Semaphore_Manager_initialization(void); - -/* - * _POSIX_Semaphore_Allocate - * - * DESCRIPTION: - * - * This function allocates a semaphore control block from - * the inactive chain of free semaphore control blocks. - */ - -RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Allocate( void ); - -/* - * _POSIX_Semaphore_Free - * - * DESCRIPTION: - * - * This routine frees a semaphore control block to the - * inactive chain of free semaphore control blocks. - */ - -RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free ( - POSIX_Semaphore_Control *the_semaphore -); - -/* - * _POSIX_Semaphore_Get - * - * DESCRIPTION: - * - * This function maps semaphore IDs to semaphore control blocks. - * If ID corresponds to a local semaphore, then it returns - * the_semaphore control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. if the semaphore ID is global and - * resides on a remote node, then location is set to OBJECTS_REMOTE, - * and the_semaphore is undefined. Otherwise, location is set - * to OBJECTS_ERROR and the_semaphore is undefined. - */ - -RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Get ( - sem_t *id, - Objects_Locations *location -); - -/* - * _POSIX_Semaphore_Create_support - * - * DESCRIPTION: - * - * This routine supports the sem_init and sem_open routines. - */ - -int _POSIX_Semaphore_Create_support( - const char *name, - size_t name_len, - int pshared, - unsigned int value, - POSIX_Semaphore_Control **the_sem -); - -/** - * @brief POSIX delete a semaphore. - * - * DESCRIPTION: - * - * This routine supports the sem_close and sem_unlink routines. - */ -void _POSIX_Semaphore_Delete( - POSIX_Semaphore_Control *the_semaphore -); - -/** - * @brief POSIX semaphore wait support. - * - * DESCRIPTION: - * - * This routine supports the sem_wait, sem_trywait, and sem_timedwait - * services. - */ -int _POSIX_Semaphore_Wait_support( - sem_t *sem, - bool blocking, - Watchdog_Interval timeout -); - -/* - * _POSIX_Semaphore_Translate_core_semaphore_return_code - * - * DESCRIPTION: - * - * A support routine which converts core semaphore status codes into the - * appropriate POSIX status values. - */ - -int _POSIX_Semaphore_Translate_core_semaphore_return_code( - CORE_semaphore_Status the_semaphore_status -); - -#include <rtems/posix/semaphore.inl> +/** @} */ #ifdef __cplusplus } #endif -/** @} */ - #endif /* end of include file */ |