]> git.ipfire.org Git - thirdparty/systemd.git/blame - timer.c
Merge remote branch 'kay/master'
[thirdparty/systemd.git] / timer.c
CommitLineData
5cb5a6ff
LP
1/*-*- Mode: C; c-basic-offset: 8 -*-*/
2
d46de8a1
LP
3#include <errno.h>
4
87f0e418 5#include "unit.h"
5cb5a6ff
LP
6#include "timer.h"
7
87f0e418
LP
8static void timer_done(Unit *u) {
9 Timer *t = TIMER(u);
034c6ed7
LP
10
11 assert(t);
12}
13
d46de8a1
LP
14static int timer_init(Unit *u) {
15 int r;
16
17 assert(u);
18
19 /* Make sure this config file actually exists */
20
21 if ((r = unit_load_fragment_and_dropin(u)) <= 0)
22 return r < 0 ? r : -ENOENT;
23
24 return 0;
25}
26
87f0e418 27static UnitActiveState timer_active_state(Unit *u) {
5cb5a6ff 28
87f0e418
LP
29 static const UnitActiveState table[_TIMER_STATE_MAX] = {
30 [TIMER_DEAD] = UNIT_INACTIVE,
31 [TIMER_WAITING] = UNIT_ACTIVE,
32 [TIMER_RUNNING] = UNIT_ACTIVE
5cb5a6ff
LP
33 };
34
87f0e418 35 return table[TIMER(u)->state];
5cb5a6ff
LP
36}
37
87f0e418 38const UnitVTable timer_vtable = {
5cb5a6ff
LP
39 .suffix = ".timer",
40
d46de8a1 41 .init = timer_init,
034c6ed7 42 .done = timer_done,
5cb5a6ff 43
034c6ed7 44 .active_state = timer_active_state
5cb5a6ff 45};