X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=kitten%2Finclude%2Flwk%2Ftime.h;fp=kitten%2Finclude%2Flwk%2Ftime.h;h=dd39b33841d4a7bca57f0452a11ba88fee3b06e7;hb=66a1a4c7a9edcd7d8bc207aca093d694a6e6b5b2;hp=0000000000000000000000000000000000000000;hpb=f7cf9c19ecb0a589dd45ae0d2c91814bd3c2acc2;p=palacios.git diff --git a/kitten/include/lwk/time.h b/kitten/include/lwk/time.h new file mode 100644 index 0000000..dd39b33 --- /dev/null +++ b/kitten/include/lwk/time.h @@ -0,0 +1,36 @@ +#ifndef _LWK_TIME_H +#define _LWK_TIME_H + +#include +#include +#include + +#define NSEC_PER_SEC 1000000000L +#define NSEC_PER_USEC 1000L +#define USEC_PER_NSEC 1000L + +struct timeval { + time_t tv_sec; /* seconds */ + suseconds_t tv_usec; /* microseconds */ +}; + +struct timezone { + int tz_minuteswest; /* minutes west of Greenwich */ + int tz_dsttime; /* type of dst correction */ +}; + +struct timespec { + time_t tv_sec; /* seconds */ + long tv_nsec; /* nanoseconds */ +}; + +void __init time_init(void); +void init_cycles2ns(uint32_t khz); +uint64_t cycles2ns(uint64_t cycles); +uint64_t get_time(void); +void set_time(uint64_t ns); + +#define timespec_is_valid(ts) \ +(((ts)->tv_sec >= 0) && (((unsigned long)(ts)->tv_nsec) < NSEC_PER_SEC)) + +#endif