1 /*
2  * OpenBOR - http://www.LavaLit.com
3  * -----------------------------------------------------------------------
4  * Licensed under the BSD license, see LICENSE in OpenBOR root for details.
5  *
6  * Copyright (c) 2004 - 2011 OpenBOR Team
7  */
8 
9 #include "kos.h"
10 #include "timer.h"
11 
12 static unsigned lastinterval = 0;
13 static unsigned tickinit = 0;
14 
getTicks()15 unsigned getTicks()
16 {
17 	uint32 milis=0, secs=0;
18 	timer_ms_gettime(&secs, &milis);
19 	return (((secs*1000)+milis)-tickinit);
20 }
21 
borTimerInit()22 void borTimerInit()
23 {
24 	uint32 milis=0, secs=0;
25 	timer_ms_gettime(&secs, &milis);
26 	tickinit = (secs*1000)+milis;
27 }
28 
borTimerExit()29 void borTimerExit() { }
30 
timer_getinterval(unsigned freq)31 unsigned timer_getinterval(unsigned freq)
32 {
33 	unsigned tickspassed,ebx,blocksize,now;
34 	now=timer_gettick();
35 	ebx=now-lastinterval;
36 	blocksize=1000/freq;
37 	ebx+=1000%freq;
38 	tickspassed=ebx/blocksize;
39 	ebx-=ebx%blocksize;
40 	lastinterval+=ebx;
41 	return tickspassed;
42 }
43 
timer_gettick()44 unsigned timer_gettick()
45 {
46   	return getTicks();
47 }
48