diff options
author | Todd Poynor <toddpoynor@google.com> | 2013-05-10 17:41:06 -0700 |
---|---|---|
committer | Nitin Garg <nitin.garg@freescale.com> | 2014-04-21 22:35:15 -0500 |
commit | 1ae675c48ab689b96a6387f2fc79a8ecc2d9d347 (patch) | |
tree | aeae0d1415563b774d2817be113d47a1da42867a /kernel | |
parent | 32b5e575e00d3a79c25bd3455f8549532914129b (diff) |
alarmtimer: add alarm_start_relative
Start an alarmtimer with an expires time relative to the current time
of the associated clock.
Change-Id: Ifb5309a15e0d502bb4d0209ca5510a56ee7fa88c
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/time/alarmtimer.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index a607e380bce5..435c062ddaa9 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -305,7 +305,7 @@ void alarm_init(struct alarm *alarm, enum alarmtimer_type type, } /** - * alarm_start - Sets an alarm to fire + * alarm_start - Sets an absolute alarm to fire * @alarm: ptr to alarm to set * @start: time to run the alarm */ @@ -324,6 +324,19 @@ int alarm_start(struct alarm *alarm, ktime_t start) return ret; } +/** + * alarm_start_relative - Sets a relative alarm to fire + * @alarm: ptr to alarm to set + * @start: time relative to now to run the alarm + */ +int alarm_start_relative(struct alarm *alarm, ktime_t start) +{ + struct alarm_base *base = &alarm_bases[alarm->type]; + + start = ktime_add(start, base->gettime()); + return alarm_start(alarm, start); +} + void alarm_restart(struct alarm *alarm) { struct alarm_base *base = &alarm_bases[alarm->type]; |