RTEMS  5.0.0
semdata.h
Go to the documentation of this file.
1 
9 /*
10  * COPYRIGHT (c) 1989-2008, 2016.
11  * On-Line Applications Research Corporation (OAR).
12  *
13  * The license and distribution terms for this file may be
14  * found in the file LICENSE in this distribution or at
15  * http://www.rtems.org/license/LICENSE.
16  */
17 
18 #ifndef _RTEMS_RTEMS_SEMDATA_H
19 #define _RTEMS_RTEMS_SEMDATA_H
20 
21 #include <rtems/rtems/sem.h>
22 #include <rtems/score/coremutex.h>
23 #include <rtems/score/coresem.h>
24 #include <rtems/score/mrsp.h>
25 #include <rtems/score/object.h>
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
40 typedef struct {
43 
53  union {
58 
64 
70 
71 #if defined(RTEMS_SMP)
72  MRSP_Control MRSP;
73 #endif
74  } Core_control;
75 
81  unsigned int variant : 3;
82 
88  unsigned int discipline : 1;
89 
90 #if defined(RTEMS_MULTIPROCESSING)
91  unsigned int is_global : 1;
92 #endif
94 
99 
100 #if defined(RTEMS_MULTIPROCESSING)
101 
108 void _Semaphore_MP_Send_extract_proxy (
109  Thread_Control *the_thread,
110  Objects_Id id
111 );
112 #endif
113 
123 #define SEMAPHORE_INFORMATION_DEFINE( max ) \
124  OBJECTS_INFORMATION_DEFINE( \
125  _Semaphore, \
126  OBJECTS_CLASSIC_API, \
127  OBJECTS_RTEMS_SEMAPHORES, \
128  Semaphore_Control, \
129  max, \
130  OBJECTS_NO_STRING_NAME, \
131  _Semaphore_MP_Send_extract_proxy \
132  )
133 
136 #ifdef __cplusplus
137 }
138 #endif
139 
140 #endif
141 /* end of include file */
Definition: objectdata.h:39
CORE_ceiling_mutex_Control Mutex
Definition: semdata.h:63
Definition: coresem.h:44
Constants and Structures Associated with the Object Handler.
Thread_queue_Control Wait_queue
The thread queue present in all other variants.
Definition: semdata.h:57
Definition: threadq.h:547
Objects_Control Object
Definition: semdata.h:42
Classic Semaphores Manager API.
Definition: thread.h:728
Definition: semdata.h:40
The information structure used to manage each API class of objects.
Definition: objectdata.h:160
unsigned int discipline
The semaphore thread queue discipline.
Definition: semdata.h:88
CORE_semaphore_Control Semaphore
Definition: semdata.h:69
Objects_Information _Semaphore_Information
The Classic Semaphore objects information.
The recursive mutex control with priority ceiling protocol support.
Definition: coremutex.h:78
uint32_t Objects_Id
Definition: object.h:75
CORE Mutex API.
unsigned int variant
The semaphore variant.
Definition: semdata.h:81
Data Associated with the Counting Semaphore Handler.