source: MondoRescue/branches/2.2.5/mindi-busybox/libbb/time.c@ 1765

Last change on this file since 1765 was 1765, checked in by Bruno Cornec, 16 years ago

Update to busybox 1.7.2

  • Property svn:eol-style set to native
File size: 974 bytes
Line 
1/* vi: set sw=4 ts=4: */
2/*
3 * Utility routines.
4 *
5 * Copyright (C) 2007 Denis Vlasenko
6 *
7 * Licensed under GPL version 2, see file LICENSE in this tarball for details.
8 */
9
10#include "libbb.h"
11
12#if ENABLE_MONOTONIC_SYSCALL
13#include <sys/syscall.h>
14
15/* libc has incredibly messy way of doing this,
16 * typically requiring -lrt. We just skip all this mess */
17unsigned long long monotonic_us(void)
18{
19 struct timespec ts;
20 if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, &ts))
21 bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
22 return ts.tv_sec * 1000000ULL + ts.tv_nsec/1000;
23}
24unsigned monotonic_sec(void)
25{
26 struct timespec ts;
27 if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, &ts))
28 bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
29 return ts.tv_sec;
30}
31#else
32unsigned long long monotonic_us(void)
33{
34 struct timeval tv;
35 gettimeofday(&tv, NULL);
36 return tv.tv_sec * 1000000ULL + tv.tv_usec;
37}
38
39unsigned monotonic_sec(void)
40{
41 return time(NULL);
42}
43#endif
Note: See TracBrowser for help on using the repository browser.