diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2006-01-09 23:52:30 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-10 11:01:37 -0500 |
commit | f8f46da3b4cbb03b43a102b1eb92b63419e10f90 (patch) | |
tree | e27636e88406d96ddae4687267f4854171303c8d /kernel/time.c | |
parent | 718bcceb5ad72a5def2c2fd1fa3ef964be32a857 (diff) |
[PATCH] hrtimer: introduce nsec_t type and conversion functions
- introduce the nsec_t type
- basic nsec conversion routines: timespec_to_ns(), timeval_to_ns(),
ns_to_timespec(), ns_to_timeval().
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/time.c')
-rw-r--r-- | kernel/time.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/kernel/time.c b/kernel/time.c index c689b53297cf..cf5a4582a672 100644 --- a/kernel/time.c +++ b/kernel/time.c | |||
@@ -652,6 +652,42 @@ void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec) | |||
652 | ts->tv_nsec = nsec; | 652 | ts->tv_nsec = nsec; |
653 | } | 653 | } |
654 | 654 | ||
655 | /** | ||
656 | * ns_to_timespec - Convert nanoseconds to timespec | ||
657 | * @nsec: the nanoseconds value to be converted | ||
658 | * | ||
659 | * Returns the timespec representation of the nsec parameter. | ||
660 | */ | ||
661 | inline struct timespec ns_to_timespec(const nsec_t nsec) | ||
662 | { | ||
663 | struct timespec ts; | ||
664 | |||
665 | if (nsec) | ||
666 | ts.tv_sec = div_long_long_rem_signed(nsec, NSEC_PER_SEC, | ||
667 | &ts.tv_nsec); | ||
668 | else | ||
669 | ts.tv_sec = ts.tv_nsec = 0; | ||
670 | |||
671 | return ts; | ||
672 | } | ||
673 | |||
674 | /** | ||
675 | * ns_to_timeval - Convert nanoseconds to timeval | ||
676 | * @nsec: the nanoseconds value to be converted | ||
677 | * | ||
678 | * Returns the timeval representation of the nsec parameter. | ||
679 | */ | ||
680 | struct timeval ns_to_timeval(const nsec_t nsec) | ||
681 | { | ||
682 | struct timespec ts = ns_to_timespec(nsec); | ||
683 | struct timeval tv; | ||
684 | |||
685 | tv.tv_sec = ts.tv_sec; | ||
686 | tv.tv_usec = (suseconds_t) ts.tv_nsec / 1000; | ||
687 | |||
688 | return tv; | ||
689 | } | ||
690 | |||
655 | #if (BITS_PER_LONG < 64) | 691 | #if (BITS_PER_LONG < 64) |
656 | u64 get_jiffies_64(void) | 692 | u64 get_jiffies_64(void) |
657 | { | 693 | { |