Adds reset_alarm_abs()
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 13 Nov 2013 02:10:36 +0000 (18:10 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 16 Jan 2014 19:36:29 +0000 (11:36 -0800)
commite3cabd30d29c07b8628b1f684241d85f5879afac
treef83b405f40f06c36da4372f4ca0ebf7b8290087e
parentca3b6abde8631736eff3c05cfde959e131909e02
Adds reset_alarm_abs()

Alarm resets will allow a caller to update the time at which the alarm
will fire.  This way, you can increase the time of an alarm, while
keeping the system armed.  It is equivalent to unset_alarm; set_alarm;,
except that there is only one resetting of the tchain interrupt.

There is no guarantee that the alarm hasn't already fired.  If it has,
it will get reinserted into the tchain.

This isn't super-necessary for the kernel, since resetting the IRQ is
pretty easy.  But userspace will have alarm code that is highly similar
(and will use k/s/alarm.c as a base) and resetting the IRQ takes a
syscall from userspace.

If we need _rel and _inc, we can add those easily.
kern/include/alarm.h
kern/src/alarm.c
kern/src/testing.c