RTEMS  5.0.0
apimutex.h
Go to the documentation of this file.
1 
9 /*
10  * COPYRIGHT (c) 1989-2008.
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_SCORE_APIMUTEX_H
19 #define _RTEMS_SCORE_APIMUTEX_H
20 
21 #include <rtems/score/thread.h>
22 
23 #include <sys/lock.h>
24 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
41 typedef struct {
45  struct _Mutex_recursive_Control Mutex;
46 
53 
57 #define API_MUTEX_INITIALIZER( name ) \
58  { _MUTEX_RECURSIVE_NAMED_INITIALIZER( name ), 0 }
59 
66 
73 
80 
96 void _RTEMS_Lock_allocator( void );
97 
98 void _RTEMS_Unlock_allocator( void );
99 
100 bool _RTEMS_Allocator_is_owner( void );
101 
104 #ifdef __cplusplus
105 }
106 #endif
107 
108 #endif
109 /* end of include file */
void _API_Mutex_Lock(API_Mutex_Control *mutex)
Acquires the specified API mutex.
Definition: apimutexlock.c:25
Thread_Life_state
Thread life states.
Definition: thread.h:675
Thread_Life_state previous_thread_life_state
The thread life protection state before the outer-most mutex obtain.
Definition: apimutex.h:51
bool _API_Mutex_Is_owner(const API_Mutex_Control *mutex)
Checks if the specified API mutex is owned by the executing thread.
Definition: apimutexisowner.c:23
Control block used to manage each API mutex.
Definition: apimutex.h:41
void _API_Mutex_Unlock(API_Mutex_Control *mutex)
Releases the specified API mutex.
Definition: apimutexunlock.c:25
Constants and Structures Related with the Thread Control Block.
Definition: mutex.h:4