summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/sparc/sparc-counter.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/cpu/sparc/sparc-counter.c')
-rw-r--r--cpukit/score/cpu/sparc/sparc-counter.c30
1 files changed, 22 insertions, 8 deletions
diff --git a/cpukit/score/cpu/sparc/sparc-counter.c b/cpukit/score/cpu/sparc/sparc-counter.c
index d254503651..658a47c37e 100644
--- a/cpukit/score/cpu/sparc/sparc-counter.c
+++ b/cpukit/score/cpu/sparc/sparc-counter.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2014, 2016 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -17,18 +17,32 @@
#endif
#include <rtems/score/cpu.h>
+#include <rtems/config.h>
-static CPU_Counter_ticks _SPARC_Counter_register_dummy;
+CPU_Counter_ticks _SPARC_Counter_difference_normal(
+ CPU_Counter_ticks second,
+ CPU_Counter_ticks first
+)
+{
+ return second - first;
+}
-CPU_Counter_ticks _SPARC_Counter_difference_default(
+CPU_Counter_ticks _SPARC_Counter_difference_clock_period(
CPU_Counter_ticks second,
CPU_Counter_ticks first
)
{
- return 1;
+ CPU_Counter_ticks period;
+
+ period = rtems_configuration_get_microseconds_per_tick();
+
+ return ( first + period - second ) % period;
}
-SPARC_Counter _SPARC_Counter = {
- .counter_register = &_SPARC_Counter_register_dummy,
- .counter_difference = _SPARC_Counter_difference_default
-};
+CPU_Counter_ticks _SPARC_Counter_difference_one(
+ CPU_Counter_ticks second,
+ CPU_Counter_ticks first
+)
+{
+ return 1;
+}