RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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>
23#include <rtems/score/coresem.h>
24#include <rtems/score/mrsp.h>
25#include <rtems/score/object.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
40typedef struct {
51
61 union {
66
72
78
79#if defined(RTEMS_SMP)
80 MRSP_Control MRSP;
81#endif
82 } Core_control;
84
89
90#if defined(RTEMS_MULTIPROCESSING)
98void _Semaphore_MP_Send_extract_proxy (
99 Thread_Control *the_thread,
100 Objects_Id id
101);
102#endif
103
115#if defined(RTEMS_SMP)
116#define SEMAPHORE_INFORMATION_DEFINE( max, scheduler_count ) \
117 typedef union { \
118 Objects_Control Object; \
119 Semaphore_Control Semaphore; \
120 struct { \
121 Objects_Control Object; \
122 MRSP_Control Control; \
123 Priority_Control ceiling_priorities[ scheduler_count ]; \
124 } MRSP; \
125 } Semaphore_Configured_control; \
126 OBJECTS_INFORMATION_DEFINE( \
127 _Semaphore, \
128 OBJECTS_CLASSIC_API, \
129 OBJECTS_RTEMS_SEMAPHORES, \
130 Semaphore_Configured_control, \
131 max, \
132 OBJECTS_NO_STRING_NAME, \
133 _Semaphore_MP_Send_extract_proxy \
134 )
135#else
136#define SEMAPHORE_INFORMATION_DEFINE( max, scheduler_count ) \
137 OBJECTS_INFORMATION_DEFINE( \
138 _Semaphore, \
139 OBJECTS_CLASSIC_API, \
140 OBJECTS_RTEMS_SEMAPHORES, \
141 Semaphore_Control, \
142 max, \
143 OBJECTS_NO_STRING_NAME, \
144 _Semaphore_MP_Send_extract_proxy \
145 )
146#endif
147
150#ifdef __cplusplus
151}
152#endif
153
154#endif
155/* end of include file */
CORE Mutex API.
Data Associated with the Counting Semaphore Handler.
Objects_Information _Semaphore_Information
The Classic Semaphore objects information.
uint32_t Objects_Id
Definition: object.h:80
Definitions for Multiprocessor Resource Sharing Protocol (MrsP).
Constants and Structures Associated with the Object Handler.
Classic Semaphores Manager API.
The recursive mutex control with priority ceiling protocol support.
Definition: coremutex.h:83
Definition: coresem.h:48
Definition: objectdata.h:39
The information structure used to manage each API class of objects.
Definition: objectdata.h:176
Definition: semdata.h:40
Thread_queue_Control Wait_queue
The thread queue present in all other variants.
Definition: semdata.h:65
Objects_Control Object
The object management portion of a semaphore instance.
Definition: semdata.h:50
CORE_semaphore_Control Semaphore
Definition: semdata.h:77
CORE_ceiling_mutex_Control Mutex
Definition: semdata.h:71
Definition: threadq.h:553
Definition: thread.h:732