mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-20 22:55:36 +08:00
score: Delete _Thread_Dispatch_set_disable_level()
This function was only used in some tests and can be replaced with other functions.
This commit is contained in:
@@ -120,14 +120,6 @@ RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void )
|
||||
*/
|
||||
void _Giant_Drop( uint32_t self_cpu );
|
||||
|
||||
/**
|
||||
* @brief Sets thread dispatch level to the value passed in.
|
||||
*
|
||||
* This routine sets thread dispatch level to the
|
||||
* value passed in.
|
||||
*/
|
||||
uint32_t _Thread_Dispatch_set_disable_level(uint32_t value);
|
||||
|
||||
/**
|
||||
* @brief Increments the thread dispatch level.
|
||||
*
|
||||
@@ -142,18 +134,6 @@ RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void )
|
||||
*/
|
||||
uint32_t _Thread_Dispatch_decrement_disable_level(void);
|
||||
#else /* RTEMS_SMP */
|
||||
/**
|
||||
* @brief Set thread dispatch disable level.
|
||||
*
|
||||
* This routine sets thread dispatch level to the
|
||||
* value passed in.
|
||||
*/
|
||||
RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_set_disable_level(uint32_t value)
|
||||
{
|
||||
_Thread_Dispatch_disable_level = value;
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Increase thread dispatch disable level.
|
||||
*
|
||||
|
||||
@@ -118,46 +118,6 @@ uint32_t _Thread_Dispatch_decrement_disable_level( void )
|
||||
return disable_level;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Note this method is taking a heavy handed approach to
|
||||
* setting the dispatch level. This may be optimized at a
|
||||
* later timee, but it must be in such a way that the nesting
|
||||
* level is decremented by the same number as the dispatch level.
|
||||
* This approach is safest until we are sure the nested spinlock
|
||||
* is successfully working with smp isr source code.
|
||||
*/
|
||||
|
||||
uint32_t _Thread_Dispatch_set_disable_level(uint32_t value)
|
||||
{
|
||||
ISR_Level isr_level;
|
||||
uint32_t disable_level;
|
||||
|
||||
_ISR_Disable_without_giant( isr_level );
|
||||
disable_level = _Thread_Dispatch_disable_level;
|
||||
_ISR_Enable_without_giant( isr_level );
|
||||
|
||||
/*
|
||||
* If we need the dispatch level to go higher
|
||||
* call increment method the desired number of times.
|
||||
*/
|
||||
|
||||
while ( value > disable_level ) {
|
||||
disable_level = _Thread_Dispatch_increment_disable_level();
|
||||
}
|
||||
|
||||
/*
|
||||
* If we need the dispatch level to go lower
|
||||
* call increment method the desired number of times.
|
||||
*/
|
||||
|
||||
while ( value < disable_level ) {
|
||||
disable_level = _Thread_Dispatch_decrement_disable_level();
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
void _Giant_Acquire( void )
|
||||
{
|
||||
ISR_Level isr_level;
|
||||
|
||||
@@ -93,7 +93,6 @@ rtems_task Task_1(
|
||||
{
|
||||
Install_tm27_vector( Isr_handler ) ;
|
||||
Interrupt_nest = 0;
|
||||
_Thread_Dispatch_set_disable_level( 0 );
|
||||
|
||||
/* Benchmark code */
|
||||
benchmark_timer_initialize();
|
||||
|
||||
@@ -584,7 +584,9 @@ void complete_test( void )
|
||||
set_thread_heir( _Thread_Get_executing() );
|
||||
set_thread_dispatch_necessary( false );
|
||||
|
||||
_Thread_Dispatch_set_disable_level( 0 );
|
||||
for (index = 0; index < 2 * OPERATION_COUNT; ++index) {
|
||||
_Thread_Unnest_dispatch();
|
||||
}
|
||||
|
||||
/*
|
||||
* Now dump all the times
|
||||
|
||||
@@ -112,8 +112,6 @@ rtems_task Task_1(
|
||||
|
||||
Interrupt_nest = 0;
|
||||
|
||||
_Thread_Dispatch_set_disable_level( 0 );
|
||||
|
||||
Interrupt_occurred = 0;
|
||||
|
||||
benchmark_timer_initialize();
|
||||
@@ -145,7 +143,7 @@ rtems_task Task_1(
|
||||
* No preempt .. nested
|
||||
*/
|
||||
|
||||
_Thread_Dispatch_set_disable_level( 1 );
|
||||
_Thread_Disable_dispatch();
|
||||
|
||||
Interrupt_nest = 1;
|
||||
|
||||
@@ -159,7 +157,7 @@ rtems_task Task_1(
|
||||
#endif
|
||||
Interrupt_return_time = benchmark_timer_read();
|
||||
|
||||
_Thread_Dispatch_set_disable_level( 0 );
|
||||
_Thread_Unnest_dispatch();
|
||||
|
||||
put_time(
|
||||
"rtems interrupt: entry overhead returns to nested interrupt",
|
||||
@@ -181,8 +179,6 @@ rtems_task Task_1(
|
||||
* Does a preempt .. not nested
|
||||
*/
|
||||
|
||||
_Thread_Dispatch_set_disable_level( 0 );
|
||||
|
||||
#if defined(RTEMS_SMP)
|
||||
_ISR_Disable_without_giant(level);
|
||||
#endif
|
||||
@@ -253,8 +249,6 @@ rtems_task Task_2(
|
||||
* Switch back to the other task to exit the test.
|
||||
*/
|
||||
|
||||
_Thread_Dispatch_set_disable_level( 0 );
|
||||
|
||||
#if defined(RTEMS_SMP)
|
||||
rtems_interrupt_disable(level);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user