* Copyright 2004, Axel DΓΆrfler, axeld@pinc-software.de.
* Copyright 2012, Alex Smith, alex@alex-smith.me.uk.
* Distributed under the terms of the MIT License.
*/
#include <libroot_private.h>
#include <real_time_data.h>
#include <arch_cpu.h>
void
__arch_init_time(real_time_data* data, bool setDefaults)
{
uint32 conversionFactor;
uint64 conversionFactorNsecs;
if (setDefaults) {
data->arch_data.system_time_offset = 0;
data->arch_data.system_time_conversion_factor = 100000;
}
conversionFactor = data->arch_data.system_time_conversion_factor;
conversionFactorNsecs = (uint64)conversionFactor * 1000;
__x86_setup_system_time((uint64)conversionFactor << 32,
conversionFactorNsecs);
}
bigtime_t
__arch_get_system_time_offset(struct real_time_data *data)
{
return data->arch_data.system_time_offset;
}