xref: /plan9/sys/src/cmd/venti/srv/unittoull.c (revision 368c31ab13393dea083228fdd1c3445076f83a4b)
1*368c31abSDavid du Colombier #include "stdinc.h"
2*368c31abSDavid du Colombier 
3*368c31abSDavid du Colombier #define TWID64	((u64int)~(u64int)0)
4*368c31abSDavid du Colombier 
5*368c31abSDavid du Colombier u64int
unittoull(char * s)6*368c31abSDavid du Colombier unittoull(char *s)
7*368c31abSDavid du Colombier {
8*368c31abSDavid du Colombier 	char *es;
9*368c31abSDavid du Colombier 	u64int n;
10*368c31abSDavid du Colombier 
11*368c31abSDavid du Colombier 	if(s == nil)
12*368c31abSDavid du Colombier 		return TWID64;
13*368c31abSDavid du Colombier 	n = strtoul(s, &es, 0);
14*368c31abSDavid du Colombier 	if(*es == 'k' || *es == 'K'){
15*368c31abSDavid du Colombier 		n *= 1024;
16*368c31abSDavid du Colombier 		es++;
17*368c31abSDavid du Colombier 	}else if(*es == 'm' || *es == 'M'){
18*368c31abSDavid du Colombier 		n *= 1024*1024;
19*368c31abSDavid du Colombier 		es++;
20*368c31abSDavid du Colombier 	}else if(*es == 'g' || *es == 'G'){
21*368c31abSDavid du Colombier 		n *= 1024*1024*1024;
22*368c31abSDavid du Colombier 		es++;
23*368c31abSDavid du Colombier 	}else if(*es == 't' || *es == 'T'){
24*368c31abSDavid du Colombier 		n *= 1024*1024;
25*368c31abSDavid du Colombier 		n *= 1024*1024;
26*368c31abSDavid du Colombier 	}
27*368c31abSDavid du Colombier 	if(*es != '\0')
28*368c31abSDavid du Colombier 		return TWID64;
29*368c31abSDavid du Colombier 	return n;
30*368c31abSDavid du Colombier }
31