Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 117612
b: refs/heads/master
c: da8f2e1
h: refs/heads/master
v: v3
  • Loading branch information
Arjan van de Ven committed Sep 7, 2008
1 parent 6945006 commit bb73504
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2ec02270c00f94b08fddfb68c37510a9fb47ac7c
refs/heads/master: da8f2e170ea94cc20f8ebbc8ee8d127edb8f12f1
9 changes: 8 additions & 1 deletion trunk/include/linux/hrtimer.h
Original file line number Diff line number Diff line change
Expand Up @@ -350,13 +350,20 @@ static inline void destroy_hrtimer_on_stack(struct hrtimer *timer) { }
/* Basic timer operations: */
extern int hrtimer_start(struct hrtimer *timer, ktime_t tim,
const enum hrtimer_mode mode);
extern int hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
unsigned long range_ns, const enum hrtimer_mode mode);
extern int hrtimer_cancel(struct hrtimer *timer);
extern int hrtimer_try_to_cancel(struct hrtimer *timer);

static inline int hrtimer_start_expires(struct hrtimer *timer,
enum hrtimer_mode mode)
{
return hrtimer_start(timer, hrtimer_get_expires(timer), mode);
unsigned long delta;
ktime_t soft, hard;
soft = hrtimer_get_softexpires(timer);
hard = hrtimer_get_expires(timer);
delta = ktime_to_ns(ktime_sub(hard, soft));
return hrtimer_start_range_ns(timer, hrtimer_get_expires(timer), delta, mode);
}

static inline int hrtimer_restart(struct hrtimer *timer)
Expand Down
26 changes: 23 additions & 3 deletions trunk/kernel/hrtimer.c
Original file line number Diff line number Diff line change
Expand Up @@ -945,17 +945,19 @@ remove_hrtimer(struct hrtimer *timer, struct hrtimer_clock_base *base)
}

/**
* hrtimer_start - (re)start an relative timer on the current CPU
* hrtimer_start_range_ns - (re)start an relative timer on the current CPU
* @timer: the timer to be added
* @tim: expiry time
* @delta_ns: "slack" range for the timer
* @mode: expiry mode: absolute (HRTIMER_ABS) or relative (HRTIMER_REL)
*
* Returns:
* 0 on success
* 1 when the timer was active
*/
int
hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode)
hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, unsigned long delta_ns,
const enum hrtimer_mode mode)
{
struct hrtimer_clock_base *base, *new_base;
unsigned long flags;
Expand Down Expand Up @@ -983,7 +985,7 @@ hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode)
#endif
}

hrtimer_set_expires(timer, tim);
hrtimer_set_expires_range_ns(timer, tim, delta_ns);

timer_stats_hrtimer_set_start_info(timer);

Expand Down Expand Up @@ -1016,8 +1018,26 @@ hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode)

return ret;
}
EXPORT_SYMBOL_GPL(hrtimer_start_range_ns);

/**
* hrtimer_start - (re)start an relative timer on the current CPU
* @timer: the timer to be added
* @tim: expiry time
* @mode: expiry mode: absolute (HRTIMER_ABS) or relative (HRTIMER_REL)
*
* Returns:
* 0 on success
* 1 when the timer was active
*/
int
hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode)
{
return hrtimer_start_range_ns(timer, tim, 0, mode);
}
EXPORT_SYMBOL_GPL(hrtimer_start);


/**
* hrtimer_try_to_cancel - try to deactivate a timer
* @timer: hrtimer to stop
Expand Down

0 comments on commit bb73504

Please sign in to comment.