From 08467405b0277cc0b17f2a234e920d344af5138f Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 13 Oct 2008 17:06:33 +0000 Subject: 2008-10-13 Joel Sherrill * clock_driver_simidle.c: Ensure ISR nest level and Thread Dispatch disable level are in the same state they would be in a true ISR. This ensures that all of the clock tick handling is as similar as possible in this limited environment. --- c/src/lib/libbsp/shared/clock_driver_simidle.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'c/src/lib/libbsp/shared/clock_driver_simidle.c') diff --git a/c/src/lib/libbsp/shared/clock_driver_simidle.c b/c/src/lib/libbsp/shared/clock_driver_simidle.c index 6d174bff65..39a82c08ff 100644 --- a/c/src/lib/libbsp/shared/clock_driver_simidle.c +++ b/c/src/lib/libbsp/shared/clock_driver_simidle.c @@ -7,7 +7,9 @@ * $Id$ */ +#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ #include +#include #define CLOCK_VECTOR 0 @@ -40,8 +42,13 @@ Thread clock_driver_sim_idle_body( ) { for( ; ; ) { - if ( clock_driver_enabled ) - rtems_clock_tick(); + if ( clock_driver_enabled ) { + _Thread_Disable_dispatch(); + _ISR_Nest_level++; + rtems_clock_tick(); + _ISR_Nest_level--; + _Thread_Enable_dispatch(); + } } return 0; /* to avoid warning */ } -- cgit v1.2.3