chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core: rename struct timestamp to dual_timestamp to avoid name clash with IP system...
[elogind.git]
/
src
/
unit.h
diff --git
a/src/unit.h
b/src/unit.h
index d3e6e8902dffff15be0fec254735576e592a8218..70b3c9a4c104985896bc5358c4b6124ea940b7f5 100644
(file)
--- a/
src/unit.h
+++ b/
src/unit.h
@@
-40,7
+40,7
@@
typedef enum UnitDependency UnitDependency;
#include "execute.h"
#define UNIT_NAME_MAX 128
#include "execute.h"
#define UNIT_NAME_MAX 128
-#define DEFAULT_TIMEOUT_USEC (
2
0*USEC_PER_SEC)
+#define DEFAULT_TIMEOUT_USEC (
6
0*USEC_PER_SEC)
#define DEFAULT_RESTART_USEC (100*USEC_PER_MSEC)
typedef enum KillMode {
#define DEFAULT_RESTART_USEC (100*USEC_PER_MSEC)
typedef enum KillMode {
@@
-153,10
+153,10
@@
struct Meta {
* the job for it */
Job *job;
* the job for it */
Job *job;
- timestamp inactive_exit_timestamp;
- timestamp active_enter_timestamp;
- timestamp active_exit_timestamp;
- timestamp inactive_enter_timestamp;
+
dual_
timestamp inactive_exit_timestamp;
+
dual_
timestamp active_enter_timestamp;
+
dual_
timestamp active_exit_timestamp;
+
dual_
timestamp inactive_enter_timestamp;
/* Counterparts in the cgroup filesystem */
CGroupBonding *cgroup_bondings;
/* Counterparts in the cgroup filesystem */
CGroupBonding *cgroup_bondings;
@@
-185,6
+185,10
@@
struct Meta {
/* Garbage collect us we nobody wants or requires us anymore */
bool stop_when_unneeded;
/* Garbage collect us we nobody wants or requires us anymore */
bool stop_when_unneeded;
+ /* When deserializing, temporarily store the job type for this
+ * unit here, if there was a job scheduled */
+ int deserialized_job; /* This is actually of type JobType */
+
bool in_load_queue:1;
bool in_dbus_queue:1;
bool in_cleanup_queue:1;
bool in_load_queue:1;
bool in_dbus_queue:1;
bool in_cleanup_queue:1;
@@
-281,6
+285,9
@@
struct UnitVTable {
* ran empty */
void (*cgroup_notify_empty)(Unit *u);
* ran empty */
void (*cgroup_notify_empty)(Unit *u);
+ /* Called whenever a process of this unit sends us a message */
+ void (*notify_message)(Unit *u, pid_t pid, char **tags);
+
/* Called whenever a name thus Unit registered for comes or
* goes away. */
void (*bus_name_owner_change)(Unit *u, const char *name, const char *old_owner, const char *new_owner);
/* Called whenever a name thus Unit registered for comes or
* goes away. */
void (*bus_name_owner_change)(Unit *u, const char *name, const char *old_owner, const char *new_owner);
@@
-289,7
+296,7
@@
struct UnitVTable {
void (*bus_query_pid_done)(Unit *u, const char *name, pid_t pid);
/* Called for each message received on the bus */
void (*bus_query_pid_done)(Unit *u, const char *name, pid_t pid);
/* Called for each message received on the bus */
- DBusHandlerResult (*bus_message_handler)(Unit *u, DBusMessage *message);
+ DBusHandlerResult (*bus_message_handler)(Unit *u, DBus
Connection *c, DBus
Message *message);
/* This is called for each unit type and should be used to
* enumerate existing devices and load them. However,
/* This is called for each unit type and should be used to
* enumerate existing devices and load them. However,
@@
-329,14
+336,14
@@
extern const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX];
/* For casting a unit into the various unit types */
#define DEFINE_CAST(UPPERCASE, MixedCase) \
static inline MixedCase* UPPERCASE(Unit *u) { \
/* For casting a unit into the various unit types */
#define DEFINE_CAST(UPPERCASE, MixedCase) \
static inline MixedCase* UPPERCASE(Unit *u) { \
- if (
!u || u->meta.type != UNIT_##UPPERCASE)
\
+ if (
_unlikely_(!u || u->meta.type != UNIT_##UPPERCASE))
\
return NULL; \
\
return (MixedCase*) u; \
}
/* For casting the various unit types into a unit */
return NULL; \
\
return (MixedCase*) u; \
}
/* For casting the various unit types into a unit */
-#define UNIT(u) ((Unit*) (
u
))
+#define UNIT(u) ((Unit*) (
&(u)->meta
))
DEFINE_CAST(SOCKET, Socket);
DEFINE_CAST(TIMER, Timer);
DEFINE_CAST(SOCKET, Socket);
DEFINE_CAST(TIMER, Timer);
@@
-437,6
+444,8
@@
int unit_deserialize(Unit *u, FILE *f, FDSet *fds);
int unit_add_node_link(Unit *u, const char *what, bool wants);
int unit_add_node_link(Unit *u, const char *what, bool wants);
+int unit_coldplug(Unit *u);
+
const char *unit_type_to_string(UnitType i);
UnitType unit_type_from_string(const char *s);
const char *unit_type_to_string(UnitType i);
UnitType unit_type_from_string(const char *s);