forked from Imagelibrary/rtems
Use "cpu" for an arbitrary Per_CPU_Control variable. Use "cpu_self" for the Per_CPU_Control of the current processor. Use "cpu_index" for an arbitrary processor index. Use "cpu_index_self" for the processor index of the current processor. Use "cpu_count" for the processor count obtained via _SMP_Get_processor_count(). Use "cpu_max" for the processor maximum obtained by rtems_configuration_get_maximum_processors().
37 lines
861 B
C
37 lines
861 B
C
/*
|
|
* Copyright (c) 2013-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.org/license/LICENSE.
|
|
*/
|
|
|
|
#if HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include <rtems/score/assert.h>
|
|
#include <rtems/score/threaddispatch.h>
|
|
|
|
#if defined( RTEMS_DEBUG )
|
|
bool _Debug_Is_thread_dispatching_allowed( void )
|
|
{
|
|
bool dispatch_allowed;
|
|
ISR_Level level;
|
|
Per_CPU_Control *cpu_self;
|
|
|
|
_ISR_Disable_without_giant( level );
|
|
cpu_self = _Per_CPU_Get_snapshot();
|
|
dispatch_allowed = cpu_self->thread_dispatch_disable_level == 0;
|
|
_ISR_Enable_without_giant( level );
|
|
|
|
return dispatch_allowed;
|
|
}
|
|
#endif
|