blob: 34f8f0f021f8098649235182098ccb8a4799b22f [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef _LINUX_KTIME_H
13#define _LINUX_KTIME_H
Ben Cheng4b29af02012-03-07 16:14:53 -080014
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080015#include <linux/time.h>
16#include <linux/jiffies.h>
Ben Cheng4b29af02012-03-07 16:14:53 -080017
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080018typedef union {
19 s64 tv64;
20#if BITS_PER_LONG != (64 && !defined(CONFIG_KTIME_SCALAR))
21 struct {
22#ifdef __BIG_ENDIAN
23 s32 sec, nsec;
24#else
25 s32 nsec, sec;
26#endif
27 } tv;
28#endif
29} ktime_t;
Ben Cheng4b29af02012-03-07 16:14:53 -080030
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080031#define KTIME_MAX ((s64)~((u64)1 << 63))
32#define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
Ben Cheng4b29af02012-03-07 16:14:53 -080033
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080034#if BITS_PER_LONG == 64
Ben Cheng4b29af02012-03-07 16:14:53 -080035
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080036#if BITS_PER_LONG == 64
37#endif
38#define ktime_sub(lhs, rhs) ({ (ktime_t){ .tv64 = (lhs).tv64 - (rhs).tv64 }; })
39#define ktime_add(lhs, rhs) ({ (ktime_t){ .tv64 = (lhs).tv64 + (rhs).tv64 }; })
40#define ktime_add_ns(kt, nsval) ({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; })
41#define ktime_to_timespec(kt) ns_to_timespec((kt).tv64)
42#define ktime_to_timeval(kt) ns_to_timeval((kt).tv64)
43#define ktime_to_ns(kt) ((kt).tv64)
44#else
Ben Cheng4b29af02012-03-07 16:14:53 -080045
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080046#endif
47#define KTIME_REALTIME_RES (ktime_t){ .tv64 = TICK_NSEC }
48#define KTIME_MONOTONIC_RES (ktime_t){ .tv64 = TICK_NSEC }
Ben Cheng4b29af02012-03-07 16:14:53 -080049
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080050#define ktime_get_real_ts(ts) getnstimeofday(ts)
Ben Cheng4b29af02012-03-07 16:14:53 -080051
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080052#endif