From: Todd Poynor Date: Wed, 8 May 2013 03:43:29 +0000 (-0700) Subject: alarmtimer: add alarm_expires_remaining X-Git-Tag: firefly_0821_release~4090^2~563 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7b71ddcebb443992703f409994bebb3a3121bfc8;p=firefly-linux-kernel-4.4.55.git alarmtimer: add alarm_expires_remaining Similar to hrtimer_expires_remaining, return the amount of time remaining until alarm expiry. Change-Id: I8c57512d619ac66bcdaf2d9ccdf0d7f74af2ff66 Signed-off-by: Todd Poynor --- diff --git a/include/linux/alarmtimer.h b/include/linux/alarmtimer.h index f47dadc6dab3..a899402a5a0e 100644 --- a/include/linux/alarmtimer.h +++ b/include/linux/alarmtimer.h @@ -51,6 +51,7 @@ int alarm_cancel(struct alarm *alarm); u64 alarm_forward(struct alarm *alarm, ktime_t now, ktime_t interval); u64 alarm_forward_now(struct alarm *alarm, ktime_t interval); +ktime_t alarm_expires_remaining(const struct alarm *alarm); /* Provide way to access the rtc device being used by alarmtimers */ struct rtc_device *alarmtimer_get_rtcdev(void); diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index adfcd78e79fd..3e5cba274475 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -199,6 +199,12 @@ static enum hrtimer_restart alarmtimer_fired(struct hrtimer *timer) } +ktime_t alarm_expires_remaining(const struct alarm *alarm) +{ + struct alarm_base *base = &alarm_bases[alarm->type]; + return ktime_sub(alarm->node.expires, base->gettime()); +} + #ifdef CONFIG_RTC_CLASS /** * alarmtimer_suspend - Suspend time callback