xref: /minix/minix/lib/libsys/sys_hz.c (revision 7f5f010b)
1 
2 #include <stdio.h>
3 #include <sys/time.h>
4 #include <sys/types.h>
5 #include <minix/u64.h>
6 #include <minix/config.h>
7 #include <minix/const.h>
8 
9 #include "sysutil.h"
10 
11 static u32_t Hz;
12 
13 u32_t
14 sys_hz(void)
15 {
16 	if(Hz <= 0) {
17 		int r;
18 		/* Get HZ. */
19 		if((r=sys_getinfo(GET_HZ, &Hz, sizeof(Hz), 0, 0)) != OK) {
20 			Hz = DEFAULT_HZ;
21 			printf("sys_hz: can not get HZ: error %d.\nUsing default HZ = %u\n",
22 			    r, (unsigned int) Hz);
23 		}
24 	}
25 
26 	return Hz;
27 }
28 
29 u32_t
30 micros_to_ticks(u32_t micros)
31 {
32         u32_t ticks;
33 
34         ticks = (u32_t)(((u64_t)micros * sys_hz()) / 1000000);
35         if(ticks < 1) ticks = 1;
36 
37         return ticks;
38 }
39 
40