*****************************************************************************/
/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
+ * Copyright (C) 2000 - 2005, R. Byron Moore
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* POSSIBILITY OF SUCH DAMAGES.
*/
+#include <linux/module.h>
+
#include <acpi/acpi.h>
#define _COMPONENT ACPI_HARDWARE
return_ACPI_STATUS (status);
}
+EXPORT_SYMBOL(acpi_get_timer);
/******************************************************************************
u32 end_ticks,
u32 *time_elapsed)
{
- u32 delta_ticks = 0;
- union uint64_overlay normalized_ticks;
acpi_status status;
- acpi_integer out_quotient;
+ u32 delta_ticks;
+ acpi_integer quotient;
ACPI_FUNCTION_TRACE ("acpi_get_timer_duration");
/*
* Compute Tick Delta:
- * Handle (max one) timer rollovers on 24- versus 32-bit timers.
+ * Handle (max one) timer rollovers on 24-bit versus 32-bit timers.
*/
if (start_ticks < end_ticks) {
delta_ticks = end_ticks - start_ticks;
delta_ticks = (0xFFFFFFFF - start_ticks) + end_ticks;
}
}
- else {
+ else /* start_ticks == end_ticks */ {
*time_elapsed = 0;
return_ACPI_STATUS (AE_OK);
}
/*
- * Compute Duration (Requires a 64-bit divide):
+ * Compute Duration (Requires a 64-bit multiply and divide):
*
* time_elapsed = (delta_ticks * 1000000) / PM_TIMER_FREQUENCY;
*/
- normalized_ticks.full = ((u64) delta_ticks) * 1000000;
+ status = acpi_ut_short_divide (((u64) delta_ticks) * 1000000,
+ PM_TIMER_FREQUENCY, "ient, NULL);
- status = acpi_ut_short_divide (&normalized_ticks.full, PM_TIMER_FREQUENCY,
- &out_quotient, NULL);
-
- *time_elapsed = (u32) out_quotient;
+ *time_elapsed = (u32) quotient;
return_ACPI_STATUS (status);
}
-
+EXPORT_SYMBOL(acpi_get_timer_duration);