X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Ftimeval.h;h=1384848a1cec8f9b19087ce3c83413dd64e651a9;hb=1e3f34c7693bcabae8e443ac1b246680ef9b60e2;hp=e57f7ac7b83aa6147eb8343dd6b0ab3ef61fb4eb;hpb=cee03df4f53a9629f1f18b6c9948362f55a3ae27;p=sliver-openvswitch.git diff --git a/lib/timeval.h b/lib/timeval.h index e57f7ac7b..1384848a1 100644 --- a/lib/timeval.h +++ b/lib/timeval.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. + * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,6 +36,21 @@ BUILD_ASSERT_DECL(TYPE_IS_INTEGER(time_t)); * ever encounter such a platform. */ BUILD_ASSERT_DECL(TYPE_IS_SIGNED(time_t)); +/* On x86-64 systems, Linux avoids using syscalls for clock_gettime(). + * + * For systems which do invoke a system call we wait at least + * TIME_UPDATE_INTERVAL ms between clock_gettime() calls and cache the time for + * the interim. + * + * For systems which do not invoke a system call, we just call clock_gettime() + * whenever the time is requested. As a result we don't start the background + * SIGALRM timer unless explicitly needed by time_alarm() */ +#if defined __x86_64__ && defined __linux__ +#define CACHE_TIME 0 +#else +#define CACHE_TIME 1 +#endif + #define TIME_MAX TYPE_MAXIMUM(time_t) #define TIME_MIN TYPE_MINIMUM(time_t) @@ -65,6 +80,8 @@ void xgettimeofday(struct timeval *); int get_cpu_usage(void); +long long int time_boot_msec(void); + #ifdef __cplusplus } #endif