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

Last change on this file since 1765 was 1765, checked in by Bruno Cornec, 13 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.