diff options
author | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-05-26 13:26:41 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-05-26 13:26:41 -0500 |
commit | e5e757bac9112ef453d18c3e7326f39ffde36a51 (patch) | |
tree | 1d29ed59237bdffa9ec3e5a4db984374a8c56488 /schedsim/shell/schedsim_smpsimple | |
parent | Unify printing of heir and executing (diff) | |
download | rtems-schedsim-e5e757bac9112ef453d18c3e7326f39ffde36a51.tar.bz2 |
_Thread_Dispatch wrapper is now shared between uniprocessor and SMP configurations
Diffstat (limited to 'schedsim/shell/schedsim_smpsimple')
-rw-r--r-- | schedsim/shell/schedsim_smpsimple/Makefile.am | 1 | ||||
-rw-r--r-- | schedsim/shell/schedsim_smpsimple/wrap_thread_dispatch.c | 69 |
2 files changed, 0 insertions, 70 deletions
diff --git a/schedsim/shell/schedsim_smpsimple/Makefile.am b/schedsim/shell/schedsim_smpsimple/Makefile.am index e57037a..bd73a32 100644 --- a/schedsim/shell/schedsim_smpsimple/Makefile.am +++ b/schedsim/shell/schedsim_smpsimple/Makefile.am @@ -3,7 +3,6 @@ schedsim_smpsimple_SOURCES = schedsim_smpsimple_SOURCES += add_commands.c schedsim_smpsimple_SOURCES += config.c schedsim_smpsimple_SOURCES += main_dump_ready_tasks.c -schedsim_smpsimple_SOURCES += wrap_thread_dispatch.c cpukitdir=@rtems_srcdir@/cpukit schedsim_smpsimple_CPPFLAGS = -I$(top_builddir)/score/include diff --git a/schedsim/shell/schedsim_smpsimple/wrap_thread_dispatch.c b/schedsim/shell/schedsim_smpsimple/wrap_thread_dispatch.c deleted file mode 100644 index 4661dc6..0000000 --- a/schedsim/shell/schedsim_smpsimple/wrap_thread_dispatch.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Thread Dispatch Wrapper Implmentation - * - * COPYRIGHT (c) 1989-2013. - * 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.com/license/LICENSE. - */ - -#include "shell.h" -#include <schedsim_shell.h> - -#include <stdlib.h> -#include <stdio.h> -#include <rtems.h> - -typedef Thread_Control * Thread_Control_ptr; -extern uint32_t Schedsim_Current_cpu; - -Thread_Control_ptr *last_heir = NULL; -Thread_Control_ptr *last_executing = NULL; - -extern void __real__Thread_Dispatch(void); - -void Init__wrap__Thread_Dispatch() -{ - last_heir = (Thread_Control_ptr *) calloc( - sizeof( Thread_Control_ptr ), - _SMP_Processor_count - ); - last_executing = (Thread_Control_ptr *) calloc( - sizeof( Thread_Control_ptr ), - _SMP_Processor_count - ); -} - -void check_heir_and_executing(void) -{ - uint32_t level; - - _ISR_Disable_without_giant( level ); - if ( last_heir[Schedsim_Current_cpu] != _Thread_Heir ) - PRINT_HEIR(); - - if ( last_executing[Schedsim_Current_cpu] != _Thread_Executing ) - PRINT_EXECUTING(); - - last_heir[Schedsim_Current_cpu] = _Thread_Heir; - last_executing[Schedsim_Current_cpu] = _Thread_Executing; - _ISR_Enable_without_giant( level ); -} - -void __wrap__Thread_Dispatch(void) -{ - uint32_t cpu; - uint32_t current_cpu; - - current_cpu = Schedsim_Current_cpu; - for ( cpu=0 ; cpu < _SMP_Processor_count ; cpu++ ) { - Schedsim_Current_cpu = cpu; - check_heir_and_executing(); - __real__Thread_Dispatch(); - check_heir_and_executing(); - } - - Schedsim_Current_cpu = current_cpu; -} |