diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-11-08 10:45:44 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-11-12 13:25:40 +0100 |
commit | 739df1f58390e4f755807df0da99c6a38a334246 (patch) | |
tree | 837506f22753f35849ddfe1eadf8906674a60d33 /cpukit/include/rtems/rtems/sem.h | |
parent | rtems: Move internal structures to regiondata.h (diff) | |
download | rtems-739df1f58390e4f755807df0da99c6a38a334246.tar.bz2 |
rtems: Move internal structures to semdata.h
Update #3598.
Diffstat (limited to '')
-rw-r--r-- | cpukit/include/rtems/rtems/sem.h | 84 |
1 files changed, 3 insertions, 81 deletions
diff --git a/cpukit/include/rtems/rtems/sem.h b/cpukit/include/rtems/rtems/sem.h index 41b0061979..8e83848465 100644 --- a/cpukit/include/rtems/rtems/sem.h +++ b/cpukit/include/rtems/rtems/sem.h @@ -3,22 +3,7 @@ * * @ingroup ClassicSem * - * @brief Classic Semaphores API - * - * This include file contains all the constants and structures associated - * with the Semaphore Manager. This manager utilizes standard Dijkstra - * counting semaphores to provide synchronization and mutual exclusion - * capabilities. - * - * Directives provided are: - * - * - create a semaphore - * - get an ID of a semaphore - * - delete a semaphore - * - acquire a semaphore - * - release a semaphore - * - flush a semaphore - * - set ceiling priority for a semaphore + * @brief Classic Semaphores Manager API */ /* @@ -33,15 +18,10 @@ #ifndef _RTEMS_RTEMS_SEM_H #define _RTEMS_RTEMS_SEM_H -#include <rtems/rtems/types.h> +#include <rtems/rtems/attr.h> #include <rtems/rtems/options.h> -#include <rtems/rtems/support.h> #include <rtems/rtems/tasks.h> -#include <rtems/rtems/attr.h> -#include <rtems/score/coremutex.h> -#include <rtems/score/object.h> -#include <rtems/score/coresem.h> -#include <rtems/score/mrsp.h> +#include <rtems/rtems/types.h> #ifdef __cplusplus extern "C" { @@ -58,64 +38,6 @@ extern "C" { /**@{*/ /** - * The following defines the control block used to manage each semaphore. - */ -typedef struct { - /** This field is the object management portion of a Semaphore instance. */ - Objects_Control Object; - - /** - * This contains the memory associated with the SuperCore Semaphore or - * Mutex instance that provides the primary functionality of each - * Classic API Semaphore instance. The structure used is dependent - * on the attributes specified by the user on the create directive. - * - * @note Only one of these has meaning in a particular Classic API - * Semaphore instance. - */ - union { - /** - * @brief The thread queue present in all other variants. - */ - Thread_queue_Control Wait_queue; - - /** - * This is the SuperCore Mutex instance associated with this Classic - * API Semaphore instance. - */ - CORE_ceiling_mutex_Control Mutex; - - /** - * This is the SuperCore Semaphore instance associated with this Classic - * API Semaphore instance. - */ - CORE_semaphore_Control Semaphore; - -#if defined(RTEMS_SMP) - MRSP_Control MRSP; -#endif - } Core_control; - - /** - * @brief The semaphore variant. - * - * @see Semaphore_Variant. - */ - unsigned int variant : 3; - - /** - * @brief The semaphore thread queue discipline. - * - * @see Semaphore_Discipline. - */ - unsigned int discipline : 1; - -#if defined(RTEMS_MULTIPROCESSING) - unsigned int is_global : 1; -#endif -} Semaphore_Control; - -/** * @brief rtems_semaphore_create * * This routine implements the rtems_semaphore_create directive. The |