summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/shared/clockdrv_shell.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/shared/clockdrv_shell.c')
-rw-r--r--c/src/lib/libbsp/shared/clockdrv_shell.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/shared/clockdrv_shell.c b/c/src/lib/libbsp/shared/clockdrv_shell.c
index b9dc1ce3e4..af1de48987 100644
--- a/c/src/lib/libbsp/shared/clockdrv_shell.c
+++ b/c/src/lib/libbsp/shared/clockdrv_shell.c
@@ -51,8 +51,20 @@ rtems_isr Clock_isr(
rtems_vector_number vector
)
{
+#ifdef CLOCK_DRIVER_USE_FAST_IDLE
+ do {
+ Clock_driver_ticks += 1;
+ rtems_clock_tick();
+ } while ( _Thread_Executing == _Thread_Idle &&
+ _Thread_Heir == _Thread_Executing)
+
+ Clock_driver_support_at_tick();
+ return;
+#else
/*
* Do the hardware specific per-tick action.
+ *
+ * The counter/timer may or may not be set to automatically reload.
*/
Clock_driver_support_at_tick();
@@ -64,7 +76,6 @@ rtems_isr Clock_isr(
Clock_driver_ticks += 1;
/*
- * Real Time Clock counter/timer is set to automatically reload.
*/
#ifndef CLOCK_DRIVER_ISRS_ARE_ONE_MILLISECOND
@@ -72,6 +83,8 @@ rtems_isr Clock_isr(
#else
#error "Clock driver shell: Does not currently support counting mseconds."
#endif
+
+#endif
}
/*