diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-11-29 06:23:27 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-12-04 10:53:39 +0100 |
commit | 6c2b8a4b35536a5f99ba1ef91139485b011dafc1 (patch) | |
tree | b1ab330104094ec83051c932c4d5cb9e653a4568 /cpukit/score/src/apimutex.c | |
parent | 3d7d2a37e6f9da4b75a86ce5336a6e23990b075b (diff) |
score: Use self-contained API mutex
Use a self-contained recursive mutex for API_Mutex_Control. The API
mutexes are protected against asynchronous thread cancellation.
Add dedicated mutexes for libatomic and TOD.
Close #2629.
Close #2630.
Diffstat (limited to 'cpukit/score/src/apimutex.c')
-rw-r--r-- | cpukit/score/src/apimutex.c | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/cpukit/score/src/apimutex.c b/cpukit/score/src/apimutex.c deleted file mode 100644 index ed5cfd5831..0000000000 --- a/cpukit/score/src/apimutex.c +++ /dev/null @@ -1,60 +0,0 @@ -/** - * @file - * - * @brief Initialization and Allocation for API Mutex Handler - * - * @ingroup ScoreAPIMutex - */ - -/* - * COPYRIGHT (c) 1989-2007. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include <rtems/score/apimutex.h> -#include <rtems/score/coremuteximpl.h> -#include <rtems/score/objectimpl.h> - -static Objects_Information _API_Mutex_Information; - -void _API_Mutex_Initialization( - uint32_t maximum_mutexes -) -{ - _Objects_Initialize_information( - &_API_Mutex_Information, /* object information table */ - OBJECTS_INTERNAL_API, /* object API */ - OBJECTS_INTERNAL_MUTEXES, /* object class */ - maximum_mutexes, /* maximum objects of this class */ - sizeof( API_Mutex_Control ), /* size of this object's control block */ - false, /* true if the name is a string */ - 0, /* maximum length of an object name */ - NULL /* Proxy extraction support callout */ - ); -} - -void _API_Mutex_Allocate( - API_Mutex_Control **the_mutex -) -{ - API_Mutex_Control *mutex; - - mutex = (API_Mutex_Control *) - _Objects_Allocate_unprotected( &_API_Mutex_Information ); - - _Assert( mutex != NULL ); - - _CORE_recursive_mutex_Initialize( &mutex->Mutex ); - - _Objects_Open_u32( &_API_Mutex_Information, &mutex->Object, 1 ); - - *the_mutex = mutex; -} |