X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=timer.c;h=c3ebba0d1ba80220cfd97112bd91cdee6c21a7b7;hp=0c891368f8e038dcec0509e45c46efa420fe21e1;hb=80c5385a8384b2219e5d44c19b2d67eddd540c1f;hpb=034c6ed7da5e44bfdde5a5d0da75f7b7a59953b8 diff --git a/timer.c b/timer.c index 0c891368f..c3ebba0d1 100644 --- a/timer.c +++ b/timer.c @@ -1,29 +1,44 @@ /*-*- Mode: C; c-basic-offset: 8 -*-*/ -#include "name.h" +#include + +#include "unit.h" #include "timer.h" -static void timer_done(Name *n) { - Timer *t = TIMER(n); +static void timer_done(Unit *u) { + Timer *t = TIMER(u); assert(t); } -static NameActiveState timer_active_state(Name *n) { +static int timer_init(Unit *u) { + int r; + + assert(u); + + /* Make sure this config file actually exists */ + + if ((r = unit_load_fragment_and_dropin(u)) <= 0) + return r < 0 ? r : -ENOENT; + + return 0; +} + +static UnitActiveState timer_active_state(Unit *u) { - static const NameActiveState table[_TIMER_STATE_MAX] = { - [TIMER_DEAD] = NAME_INACTIVE, - [TIMER_WAITING] = NAME_ACTIVE, - [TIMER_RUNNING] = NAME_ACTIVE + static const UnitActiveState table[_TIMER_STATE_MAX] = { + [TIMER_DEAD] = UNIT_INACTIVE, + [TIMER_WAITING] = UNIT_ACTIVE, + [TIMER_RUNNING] = UNIT_ACTIVE }; - return table[TIMER(n)->state]; + return table[TIMER(u)->state]; } -const NameVTable timer_vtable = { +const UnitVTable timer_vtable = { .suffix = ".timer", - .init = name_load_fragment_and_dropin, + .init = timer_init, .done = timer_done, .active_state = timer_active_state