summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems/posix/mutex.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-17 14:34:05 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-18 09:58:57 +0200
commitf9d533a5f3205b77da40c160516fc8bc7585b36f (patch)
treef04120040c88733da6190dd11aafd97644419124 /cpukit/posix/include/rtems/posix/mutex.h
parentrtems: Create semaphore implementation header (diff)
downloadrtems-f9d533a5f3205b77da40c160516fc8bc7585b36f.tar.bz2
posix: Create mutex implementation header
Move implementation specific parts of mutex.h and mutex.inl into new header file muteximpl.h. The mutex.h contains now only the application visible API.
Diffstat (limited to 'cpukit/posix/include/rtems/posix/mutex.h')
-rw-r--r--cpukit/posix/include/rtems/posix/mutex.h172
1 files changed, 4 insertions, 168 deletions
diff --git a/cpukit/posix/include/rtems/posix/mutex.h b/cpukit/posix/include/rtems/posix/mutex.h
index f228644377..1cff3642f1 100644
--- a/cpukit/posix/include/rtems/posix/mutex.h
+++ b/cpukit/posix/include/rtems/posix/mutex.h
@@ -19,6 +19,9 @@
#ifndef _RTEMS_POSIX_MUTEX_H
#define _RTEMS_POSIX_MUTEX_H
+#include <rtems/score/coremutex.h>
+#include <pthread.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -33,9 +36,6 @@ extern "C" {
*/
/**@{**/
-#include <rtems/score/coremutex.h>
-#include <pthread.h>
-
/*
* Data Structure used to manage a POSIX mutex
*/
@@ -46,175 +46,11 @@ typedef struct {
CORE_mutex_Control Mutex;
} POSIX_Mutex_Control;
-/*
- * The following defines the information control block used to manage
- * this class of objects.
- */
-
-POSIX_EXTERN Objects_Information _POSIX_Mutex_Information;
-
-/*
- * The default mutex attributes structure.
- */
-
-POSIX_EXTERN pthread_mutexattr_t _POSIX_Mutex_Default_attributes;
-
-/*
- * @brief POSIX Mutex Manager Initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _POSIX_Mutex_Manager_initialization(void);
-
-/*
- * _POSIX_Mutex_Allocate
- *
- * DESCRIPTION:
- *
- * This function allocates a mutexes control block from
- * the inactive chain of free mutexes control blocks.
- */
-
-RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Allocate( void );
-
-/*
- * _POSIX_Mutex_Free
- *
- * DESCRIPTION:
- *
- * This routine frees a mutexes control block to the
- * inactive chain of free mutexes control blocks.
- */
-
-RTEMS_INLINE_ROUTINE void _POSIX_Mutex_Free (
- POSIX_Mutex_Control *the_mutex
-);
-
-#if 0
-/*
- * _POSIX_Mutex_Get
- *
- * DESCRIPTION:
- *
- * This function maps mutexes IDs to mutexes control blocks.
- * If ID corresponds to a local mutexes, then it returns
- * the_mutex control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. if the mutexes ID is global and
- * resides on a remote node, then location is set to OBJECTS_REMOTE,
- * and the_mutex is undefined. Otherwise, location is set
- * to OBJECTS_ERROR and the_mutex is undefined.
- */
-
-RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Get (
- Objects_Id *id,
- Objects_Locations *location
-);
-
-/*
- * _POSIX_Mutex_Is_null
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_mutex is NULL and FALSE otherwise.
- */
-
-RTEMS_INLINE_ROUTINE bool _POSIX_Mutex_Is_null (
- POSIX_Mutex_Control *the_mutex
-);
-#endif
-
-/*
- * _POSIX_Mutex_Lock_support
- *
- * DESCRIPTION:
- *
- * A support routine which implements guts of the blocking, non-blocking, and
- * timed wait version of mutex lock.
- */
-
-int _POSIX_Mutex_Lock_support(
- pthread_mutex_t *mutex,
- bool blocking,
- Watchdog_Interval timeout
-);
-
-/**
- * @brief Convert core mutex status codes into the appropriate POSIX status
- * values.
- *
- * DESCRIPTION:
- *
- * A support routine which converts core mutex status codes into the
- * appropriate POSIX status values.
- *
- * @param[in] the_mutex_status is the mutex status code to translate
- *
- * @retval 0 Mutex status code indicates the operation completed successfully.
- * @retval EBUSY Mutex status code indicates that the operation unable to
- * complete immediately because the resource was unavailable.
- * @retval EDEADLK Mutex status code indicates that an attempt was made to
- * relock a mutex for which nesting is not configured.
- * @retval EPERM Mutex status code indicates that an attempt was made to
- * release a mutex by a thread other than the thread which locked it.
- * @retval EINVAL Mutex status code indicates that the thread was blocked
- * waiting for an operation to complete and the mutex was deleted.
- * @retval ETIMEDOUT Mutex status code indicates that the calling task was
- * willing to block but the operation was unable to complete within the time
- * allotted because the resource never became available.
- */
-
-int _POSIX_Mutex_Translate_core_mutex_return_code(
- CORE_mutex_Status the_mutex_status
-);
-
-
-/*
- * _POSIX_Mutex_Get
- *
- * DESCRIPTION:
- *
- * A support routine which translates the mutex id into a local pointer.
- * As a side-effect, it may create the mutex.
- *
- * NOTE:
- *
- * This version of the method uses a dispatching critical section.
- */
-
-POSIX_Mutex_Control *_POSIX_Mutex_Get (
- pthread_mutex_t *mutex,
- Objects_Locations *location
-);
-
-/*
- * _POSIX_Mutex_Get
- *
- * DESCRIPTION:
- *
- * A support routine which translates the mutex id into a local pointer.
- * As a side-effect, it may create the mutex.
- *
- * NOTE:
- *
- * This version of the method uses an interrupt critical section.
- */
-
-POSIX_Mutex_Control *_POSIX_Mutex_Get_interrupt_disable (
- pthread_mutex_t *mutex,
- Objects_Locations *location,
- ISR_Level *level
-);
-
-#include <rtems/posix/mutex.inl>
+/** @} */
#ifdef __cplusplus
}
#endif
-/** @} */
-
#endif
/* end of include file */