/*
*/
-#include <stat_time.h>
-#include <machine_timer_routines.h>
-
#include <mach/kern_return.h>
#include <mach/port.h>
#include <kern/queue.h>
#include <kern/sched_prim.h>
#include <kern/timer.h>
+#if CONFIG_EMBEDDED
+int precise_user_kernel_time = 0;
+#else
+int precise_user_kernel_time = 1;
+#endif
+
/*
* timer_init initializes a timer.
*/
timer_init(
timer_t timer)
{
-#if !STAT_TIME
timer->tstamp = 0;
-#endif /* STAT_TIME */
+#if defined(__LP64__)
+ timer->all_bits = 0;
+#else
timer->low_bits = 0;
timer->high_bits = 0;
timer->high_bits_check = 0;
+#endif /* defined(__LP64__) */
}
/*
timer_t timer,
uint64_t delta)
{
+#if defined(__LP64__)
+ timer->all_bits += delta;
+#else
uint64_t low;
low = delta + timer->low_bits;
if (low >> 32)
- timer_update(timer, timer->high_bits + (low >> 32), low);
+ timer_update(timer, (uint32_t)(timer->high_bits + (low >> 32)), (uint32_t)low);
else
- timer->low_bits = low;
+ timer->low_bits = (uint32_t)low;
+#endif /* defined(__LP64__) */
}
-#if !STAT_TIME
-
void
timer_start(
timer_t timer,
new_timer->tstamp = tstamp;
}
-#if MACHINE_TIMER_ROUTINES
-
-/*
- * Machine-dependent code implements the timer event routine.
- */
-
-#else /* MACHINE_TIMER_ROUTINES */
-
/*
* Update the current thread timer and
* start the new timer. Requires a current
PROCESSOR_DATA(processor, thread_timer) = new_timer;
new_timer->tstamp = tstamp;
}
-
-#endif /* MACHINE_TIMER_ROUTINES */
-
-#endif /* STAT_TIME */