RTEMS CPU Kit with SuperCore  4.11.3
sem.h
Go to the documentation of this file.
1 
24 /*
25  * COPYRIGHT (c) 1989-2008.
26  * On-Line Applications Research Corporation (OAR).
27  *
28  * The license and distribution terms for this file may be
29  * found in the file LICENSE in this distribution or at
30  * http://www.rtems.org/license/LICENSE.
31  */
32 
33 #ifndef _RTEMS_RTEMS_SEM_H
34 #define _RTEMS_RTEMS_SEM_H
35 
36 #include <rtems/rtems/types.h>
37 #include <rtems/rtems/options.h>
38 #include <rtems/rtems/support.h>
39 #include <rtems/rtems/tasks.h>
40 #include <rtems/rtems/attr.h>
41 #include <rtems/score/coremutex.h>
42 #include <rtems/score/object.h>
43 #include <rtems/score/coresem.h>
44 #include <rtems/score/mrsp.h>
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
63 typedef struct {
66 
73 
83  union {
89 
95 
96 #if defined(RTEMS_SMP)
97  MRSP_Control mrsp;
98 #endif
99  } Core_control;
101 
114  rtems_name name,
115  uint32_t count,
116  rtems_attribute attribute_set,
117  rtems_task_priority priority_ceiling,
118  rtems_id *id
119 );
120 
140  rtems_name name,
141  uint32_t node,
142  rtems_id *id
143 );
144 
158  rtems_id id
159 );
160 
181  rtems_id id,
182  rtems_option option_set,
183  rtems_interval timeout
184 );
185 
198  rtems_id id
199 );
200 
215  rtems_id id
216 );
217 
253  rtems_id semaphore_id,
254  rtems_id scheduler_id,
255  rtems_task_priority new_priority,
256  rtems_task_priority *old_priority
257 );
258 
261 #ifdef __cplusplus
262 }
263 #endif
264 
265 #endif
266 /* end of include file */
rtems_status_code rtems_semaphore_set_priority(rtems_id semaphore_id, rtems_id scheduler_id, rtems_task_priority new_priority, rtems_task_priority *old_priority)
Sets the priority value with respect to the specified scheduler of a semaphore.
Definition: semsetpriority.c:75
Constants and Structures Associated with the Object Handler.
uint32_t rtems_attribute
This defines the type used to contain Classic API attributes.
Definition: attr.h:44
The following defines the Object Control Block used to manage each object local to this node...
Definition: object.h:232
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:80
The following defines the control block used to manage each counting semaphore.
Definition: coresem.h:69
rtems_attribute attribute_set
This is the Classic API attribute provided to the create directive.
Definition: sem.h:72
rtems_status_code rtems_semaphore_delete(rtems_id id)
RTEMS Delete Semaphore.
Definition: semdelete.c:40
Objects_Control Object
This field is the object management portion of a Semaphore instance.
Definition: sem.h:65
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:119
rtems_status_code rtems_semaphore_ident(rtems_name name, uint32_t node, rtems_id *id)
RTEMS Semaphore Name to Id.
Definition: semident.c:34
Priority_Control rtems_task_priority
Define the type for an RTEMS API task priority.
Definition: tasks.h:79
rtems_status_code
Classic API Status.
Definition: status.h:46
rtems_status_code rtems_semaphore_release(rtems_id id)
RTEMS Semaphore Release.
Definition: semrelease.c:56
uint32_t rtems_name
Classic API object name type.
Definition: types.h:74
rtems_status_code rtems_semaphore_obtain(rtems_id id, rtems_option option_set, rtems_interval timeout)
RTEMS Obtain Semaphore.
Definition: semobtain.c:34
The following defines the control block used to manage each semaphore.
Definition: sem.h:63
uint32_t rtems_option
The following type defines the control block used to manage option sets.
Definition: options.h:45
CORE_semaphore_Control semaphore
This is the SuperCore Semaphore instance associated with this Classic API Semaphore instance...
Definition: sem.h:94
rtems_status_code rtems_semaphore_flush(rtems_id id)
RTEMS Semaphore Flush.
Definition: semflush.c:40
rtems_status_code rtems_semaphore_create(rtems_name name, uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id)
rtems_semaphore_create
Definition: semcreate.c:55
Control block used to manage each mutex.
Definition: coremutex.h:149
CORE_mutex_Control mutex
This is the SuperCore Mutex instance associated with this Classic API Semaphore instance.
Definition: sem.h:88
CORE Mutex API.
Data Associated with the Counting Semaphore Handler.