score: Add _Debug_Is_owner_of_allocator()

This commit is contained in:
Sebastian Huber
2014-03-18 12:11:37 +01:00
parent a3dd225b88
commit 72f4b98be7
3 changed files with 46 additions and 0 deletions

View File

@@ -333,6 +333,7 @@ libscore_a_SOURCES += src/apiext.c src/chain.c src/chainappend.c \
src/chainnodecount.c \
src/debugisthreaddispatchingallowed.c \
src/interr.c src/isr.c src/wkspace.c src/wkstringduplicate.c
libscore_a_SOURCES += src/debugisownerofallocator.c
libscore_a_SOURCES += src/profilingisrentryexit.c
EXTRA_DIST = src/Unlimited.txt

View File

@@ -59,6 +59,14 @@ extern "C" {
#endif
#endif
/**
* @brief Returns true if the current thread of execution owns the allocator
* mutex.
*/
#if defined( RTEMS_DEBUG )
bool _Debug_Is_owner_of_allocator( void );
#endif
#ifdef __cplusplus
}
#endif /* __cplusplus */

View File

@@ -0,0 +1,37 @@
/*
* Copyright (c) 2014 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/score/assert.h>
#include <rtems/score/apimutex.h>
#include <rtems/score/thread.h>
#if defined( RTEMS_DEBUG )
bool _Debug_Is_owner_of_allocator( void )
{
API_Mutex_Control *mutex = _RTEMS_Allocator_Mutex;
bool owner;
if ( mutex != NULL ) {
owner = mutex->Mutex.holder == _Thread_Get_executing();
} else {
owner = false;
}
return owner;
}
#endif