summaryrefslogtreecommitdiff
path: root/cpukit/score/src/apimutex.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-11-29 06:23:27 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-12-04 10:53:39 +0100
commit6c2b8a4b35536a5f99ba1ef91139485b011dafc1 (patch)
treeb1ab330104094ec83051c932c4d5cb9e653a4568 /cpukit/score/src/apimutex.c
parent3d7d2a37e6f9da4b75a86ce5336a6e23990b075b (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.c60
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;
-}