1/* 2 * Copyright 2006, Ingo Weinhold <bonefish@cs.tu-berlin.de>. 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5 6#include <OS.h> 7 8#include <arch_cpu.h> 9#include <libroot_private.h> 10#include <real_time_data.h> 11 12 13static vint32 *sConversionFactor; 14 15void 16__m68k_setup_system_time(vint32 *cvFactor) 17{ 18 sConversionFactor = cvFactor; 19} 20 21 22//XXX: this is a hack 23// remove me when platform code works 24int64 25__m68k_get_time_base(void) 26{ 27 static uint64 time_dilation_field = 0; 28 return time_dilation_field++; 29} 30 31bigtime_t 32system_time(void) 33{ 34 uint64 timeBase = __m68k_get_time_base(); 35 36 uint32 cv = *sConversionFactor; 37 return (timeBase >> 32) * cv + (((timeBase & 0xffffffff) * cv) >> 32); 38} 39