chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
journal: when sending journal data via file, place it in /dev/shm, to allow early...
[elogind.git]
/
src
/
timer.h
diff --git
a/src/timer.h
b/src/timer.h
index 0ec3e0d9bbd071663f00e31f274aeac0934b6c33..d5cbc115619d60df7bcde478501a7ccb64cbcf0a 100644
(file)
--- a/
src/timer.h
+++ b/
src/timer.h
@@
-1,4
+1,4
@@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8
; indent-tabs-mode: nil
-*-*/
#ifndef footimerhfoo
#define footimerhfoo
#ifndef footimerhfoo
#define footimerhfoo
@@
-30,20
+30,54
@@
typedef enum TimerState {
TIMER_DEAD,
TIMER_WAITING,
TIMER_RUNNING,
TIMER_DEAD,
TIMER_WAITING,
TIMER_RUNNING,
- _TIMER_STATE_MAX
+ TIMER_ELAPSED,
+ TIMER_FAILED,
+ _TIMER_STATE_MAX,
+ _TIMER_STATE_INVALID = -1
} TimerState;
} TimerState;
-struct Timer {
- Meta meta;
+typedef enum TimerBase {
+ TIMER_ACTIVE,
+ TIMER_BOOT,
+ TIMER_STARTUP,
+ TIMER_UNIT_ACTIVE,
+ TIMER_UNIT_INACTIVE,
+ _TIMER_BASE_MAX,
+ _TIMER_BASE_INVALID = -1
+} TimerBase;
+
+typedef struct TimerValue {
+ usec_t value;
+ usec_t next_elapse;
- TimerState state;
+ LIST_FIELDS(struct TimerValue, value);
+
+ TimerBase base;
+ bool disabled;
+} TimerValue;
+
+struct Timer {
+ Unit meta;
-
clockid_t clock_id
;
+
LIST_HEAD(TimerValue, values)
;
usec_t next_elapse;
usec_t next_elapse;
- Service *service;
+ TimerState state, deserialized_state;
+ UnitRef unit;
+
+ Watch timer_watch;
+
+ bool failure;
};
};
+void timer_unit_notify(Unit *u, UnitActiveState new_state);
+
extern const UnitVTable timer_vtable;
extern const UnitVTable timer_vtable;
+const char *timer_state_to_string(TimerState i);
+TimerState timer_state_from_string(const char *s);
+
+const char *timer_base_to_string(TimerBase i);
+TimerBase timer_base_from_string(const char *s);
+
#endif
#endif