Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 66289
b: refs/heads/master
c: a272378
h: refs/heads/master
i:
  66287: a03a26f
v: v3
  • Loading branch information
Arnaldo Carvalho de Melo authored and David S. Miller committed Oct 10, 2007
1 parent 91b0766 commit 97ab0e6
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e7a81c6d62cbefdeb23d92ad891f429bde1c49d2
refs/heads/master: a272378d1128d1c60a463a315646c86d174ff74c
21 changes: 21 additions & 0 deletions trunk/include/linux/ktime.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,13 @@ static inline ktime_t ktime_set(const long secs, const unsigned long nsecs)
#define ktime_add_ns(kt, nsval) \
({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; })

/*
* Subtract a scalar nanosecod from a ktime_t variable
* res = kt - nsval:
*/
#define ktime_sub_ns(kt, nsval) \
({ (ktime_t){ .tv64 = (kt).tv64 - (nsval) }; })

/* convert a timespec to ktime_t format: */
static inline ktime_t timespec_to_ktime(struct timespec ts)
{
Expand Down Expand Up @@ -199,6 +206,15 @@ static inline ktime_t ktime_add(const ktime_t add1, const ktime_t add2)
*/
extern ktime_t ktime_add_ns(const ktime_t kt, u64 nsec);

/**
* ktime_sub_ns - Subtract a scalar nanoseconds value from a ktime_t variable
* @kt: minuend
* @nsec: the scalar nsec value to subtract
*
* Returns the subtraction of @nsec from @kt in ktime_t format
*/
extern ktime_t ktime_sub_ns(const ktime_t kt, u64 nsec);

/**
* timespec_to_ktime - convert a timespec to ktime_t format
* @ts: the timespec variable to convert
Expand Down Expand Up @@ -289,6 +305,11 @@ static inline ktime_t ktime_add_us(const ktime_t kt, const u64 usec)
return ktime_add_ns(kt, usec * 1000);
}

static inline ktime_t ktime_sub_us(const ktime_t kt, const u64 usec)
{
return ktime_sub_ns(kt, usec * 1000);
}

/*
* The resolution of the clocks. The resolution value is returned in
* the clock_getres() system call to give application programmers an
Expand Down
24 changes: 24 additions & 0 deletions trunk/kernel/hrtimer.c
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,30 @@ ktime_t ktime_add_ns(const ktime_t kt, u64 nsec)
}

EXPORT_SYMBOL_GPL(ktime_add_ns);

/**
* ktime_sub_ns - Subtract a scalar nanoseconds value from a ktime_t variable
* @kt: minuend
* @nsec: the scalar nsec value to subtract
*
* Returns the subtraction of @nsec from @kt in ktime_t format
*/
ktime_t ktime_sub_ns(const ktime_t kt, u64 nsec)
{
ktime_t tmp;

if (likely(nsec < NSEC_PER_SEC)) {
tmp.tv64 = nsec;
} else {
unsigned long rem = do_div(nsec, NSEC_PER_SEC);

tmp = ktime_set((long)nsec, rem);
}

return ktime_sub(kt, tmp);
}

EXPORT_SYMBOL_GPL(ktime_sub_ns);
# endif /* !CONFIG_KTIME_SCALAR */

/*
Expand Down

0 comments on commit 97ab0e6

Please sign in to comment.