aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/time.h61
1 files changed, 31 insertions, 30 deletions
diff --git a/include/linux/time.h b/include/linux/time.h
index aded44c48d42..4d49cabb9b47 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -4,7 +4,7 @@
4#include <linux/types.h> 4#include <linux/types.h>
5 5
6#ifdef __KERNEL__ 6#ifdef __KERNEL__
7#include <linux/seqlock.h> 7# include <linux/seqlock.h>
8#endif 8#endif
9 9
10#ifndef _STRUCT_TIMESPEC 10#ifndef _STRUCT_TIMESPEC
@@ -13,7 +13,7 @@ struct timespec {
13 time_t tv_sec; /* seconds */ 13 time_t tv_sec; /* seconds */
14 long tv_nsec; /* nanoseconds */ 14 long tv_nsec; /* nanoseconds */
15}; 15};
16#endif /* _STRUCT_TIMESPEC */ 16#endif
17 17
18struct timeval { 18struct timeval {
19 time_t tv_sec; /* seconds */ 19 time_t tv_sec; /* seconds */
@@ -27,16 +27,16 @@ struct timezone {
27 27
28#ifdef __KERNEL__ 28#ifdef __KERNEL__
29 29
30/* Parameters used to convert the timespec values */ 30/* Parameters used to convert the timespec values: */
31#define MSEC_PER_SEC (1000L) 31#define MSEC_PER_SEC 1000L
32#define USEC_PER_SEC (1000000L) 32#define USEC_PER_SEC 1000000L
33#define NSEC_PER_SEC (1000000000L) 33#define NSEC_PER_SEC 1000000000L
34#define NSEC_PER_USEC (1000L) 34#define NSEC_PER_USEC 1000L
35 35
36static __inline__ int timespec_equal(struct timespec *a, struct timespec *b) 36static __inline__ int timespec_equal(struct timespec *a, struct timespec *b)
37{ 37{
38 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec); 38 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
39} 39}
40 40
41extern unsigned long mktime(const unsigned int year, const unsigned int mon, 41extern unsigned long mktime(const unsigned int year, const unsigned int mon,
42 const unsigned int day, const unsigned int hour, 42 const unsigned int day, const unsigned int hour,
@@ -49,25 +49,26 @@ extern struct timespec wall_to_monotonic;
49extern seqlock_t xtime_lock; 49extern seqlock_t xtime_lock;
50 50
51static inline unsigned long get_seconds(void) 51static inline unsigned long get_seconds(void)
52{ 52{
53 return xtime.tv_sec; 53 return xtime.tv_sec;
54} 54}
55 55
56struct timespec current_kernel_time(void); 56struct timespec current_kernel_time(void);
57 57
58#define CURRENT_TIME (current_kernel_time()) 58#define CURRENT_TIME (current_kernel_time())
59#define CURRENT_TIME_SEC ((struct timespec) { xtime.tv_sec, 0 }) 59#define CURRENT_TIME_SEC ((struct timespec) { xtime.tv_sec, 0 })
60 60
61extern void do_gettimeofday(struct timeval *tv); 61extern void do_gettimeofday(struct timeval *tv);
62extern int do_settimeofday(struct timespec *tv); 62extern int do_settimeofday(struct timespec *tv);
63extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz); 63extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz);
64extern void clock_was_set(void); // call when ever the clock is set 64extern void clock_was_set(void); // call whenever the clock is set
65extern int do_posix_clock_monotonic_gettime(struct timespec *tp); 65extern int do_posix_clock_monotonic_gettime(struct timespec *tp);
66extern long do_utimes(char __user * filename, struct timeval * times); 66extern long do_utimes(char __user *filename, struct timeval *times);
67struct itimerval; 67struct itimerval;
68extern int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue); 68extern int do_setitimer(int which, struct itimerval *value,
69 struct itimerval *ovalue);
69extern int do_getitimer(int which, struct itimerval *value); 70extern int do_getitimer(int which, struct itimerval *value);
70extern void getnstimeofday (struct timespec *tv); 71extern void getnstimeofday(struct timespec *tv);
71extern void getnstimestamp(struct timespec *ts); 72extern void getnstimestamp(struct timespec *ts);
72 73
73extern struct timespec timespec_trunc(struct timespec t, unsigned gran); 74extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
@@ -84,24 +85,24 @@ extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
84 85
85/* 86/*
86 * Names of the interval timers, and structure 87 * Names of the interval timers, and structure
87 * defining a timer setting. 88 * defining a timer setting:
88 */ 89 */
89#define ITIMER_REAL 0 90#define ITIMER_REAL 0
90#define ITIMER_VIRTUAL 1 91#define ITIMER_VIRTUAL 1
91#define ITIMER_PROF 2 92#define ITIMER_PROF 2
92 93
93struct itimerspec { 94struct itimerspec {
94 struct timespec it_interval; /* timer period */ 95 struct timespec it_interval; /* timer period */
95 struct timespec it_value; /* timer expiration */ 96 struct timespec it_value; /* timer expiration */
96}; 97};
97 98
98struct itimerval { 99struct itimerval {
99 struct timeval it_interval; /* timer interval */ 100 struct timeval it_interval; /* timer interval */
100 struct timeval it_value; /* current value */ 101 struct timeval it_value; /* current value */
101}; 102};
102 103
103/* 104/*
104 * The IDs of the various system clocks (for POSIX.1b interval timers). 105 * The IDs of the various system clocks (for POSIX.1b interval timers):
105 */ 106 */
106#define CLOCK_REALTIME 0 107#define CLOCK_REALTIME 0
107#define CLOCK_MONOTONIC 1 108#define CLOCK_MONOTONIC 1
@@ -109,7 +110,7 @@ struct itimerval {
109#define CLOCK_THREAD_CPUTIME_ID 3 110#define CLOCK_THREAD_CPUTIME_ID 3
110 111
111/* 112/*
112 * The IDs of various hardware clocks 113 * The IDs of various hardware clocks:
113 */ 114 */
114#define CLOCK_SGI_CYCLE 10 115#define CLOCK_SGI_CYCLE 10
115#define MAX_CLOCKS 16 116#define MAX_CLOCKS 16
@@ -117,7 +118,7 @@ struct itimerval {
117#define CLOCKS_MONO CLOCK_MONOTONIC 118#define CLOCKS_MONO CLOCK_MONOTONIC
118 119
119/* 120/*
120 * The various flags for setting POSIX.1b interval timers. 121 * The various flags for setting POSIX.1b interval timers:
121 */ 122 */
122#define TIMER_ABSTIME 0x01 123#define TIMER_ABSTIME 0x01
123 124