plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

unittoull.c (471B)


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