chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
readahead: fix calculation of percentage
[elogind.git]
/
src
/
core
/
unit.h
diff --git
a/src/core/unit.h
b/src/core/unit.h
index d8f4644ca9a2966e967a47691273b8c5342657d1..cfb38d0aae751e79eae95e685a8bfbd68c18fc68 100644
(file)
--- a/
src/core/unit.h
+++ b/
src/core/unit.h
@@
-32,6
+32,7
@@
typedef enum UnitLoadState UnitLoadState;
typedef enum UnitActiveState UnitActiveState;
typedef enum UnitDependency UnitDependency;
typedef struct UnitRef UnitRef;
typedef enum UnitActiveState UnitActiveState;
typedef enum UnitDependency UnitDependency;
typedef struct UnitRef UnitRef;
+typedef struct UnitStatusMessageFormats UnitStatusMessageFormats;
#include "set.h"
#include "util.h"
#include "set.h"
#include "util.h"
@@
-153,15
+154,22
@@
struct Unit {
Set *names;
Set *dependencies[_UNIT_DEPENDENCY_MAX];
Set *names;
Set *dependencies[_UNIT_DEPENDENCY_MAX];
+ char **requires_mounts_for;
+
char *description;
char *description;
+ char **documentation;
char *fragment_path; /* if loaded from a config file this is the primary path to it */
char *fragment_path; /* if loaded from a config file this is the primary path to it */
+ char *source_path; /* if converted, the source file */
usec_t fragment_mtime;
usec_t fragment_mtime;
+ usec_t source_mtime;
- /* If there is something to do with this unit, then this is
- * the job for it */
+ /* If there is something to do with this unit, then this is the installed job for it */
Job *job;
Job *job;
+ /* JOB_NOP jobs are special and can be installed without disturbing the real job. */
+ Job *nop_job;
+
usec_t job_timeout;
/* References to this */
usec_t job_timeout;
/* References to this */
@@
-184,6
+192,9
@@
struct Unit {
/* Per type list */
LIST_FIELDS(Unit, units_by_type);
/* Per type list */
LIST_FIELDS(Unit, units_by_type);
+ /* All units which have requires_mounts_for set */
+ LIST_FIELDS(Unit, has_requires_mounts_for);
+
/* Load queue */
LIST_FIELDS(Unit, load_queue);
/* Load queue */
LIST_FIELDS(Unit, load_queue);
@@
-200,7
+211,9
@@
struct Unit {
unsigned gc_marker;
/* When deserializing, temporarily store the job type for this
unsigned gc_marker;
/* When deserializing, temporarily store the job type for this
- * unit here, if there was a job scheduled */
+ * unit here, if there was a job scheduled.
+ * Only for deserializing from a legacy version. New style uses full
+ * serialized jobs. */
int deserialized_job; /* This is actually of type JobType */
/* Error code when we didn't manage to load the unit (negative) */
int deserialized_job; /* This is actually of type JobType */
/* Error code when we didn't manage to load the unit (negative) */
@@
-257,6
+270,12
@@
struct UnitRef {
LIST_FIELDS(UnitRef, refs);
};
LIST_FIELDS(UnitRef, refs);
};
+struct UnitStatusMessageFormats {
+ const char *starting_stopping[2];
+ const char *finished_start_job[_JOB_RESULT_MAX];
+ const char *finished_stop_job[_JOB_RESULT_MAX];
+};
+
#include "service.h"
#include "timer.h"
#include "socket.h"
#include "service.h"
#include "timer.h"
#include "socket.h"
@@
-336,9
+355,6
@@
struct UnitVTable {
void (*sigchld_event)(Unit *u, pid_t pid, int code, int status);
void (*timer_event)(Unit *u, uint64_t n_elapsed, Watch *w);
void (*sigchld_event)(Unit *u, pid_t pid, int code, int status);
void (*timer_event)(Unit *u, uint64_t n_elapsed, Watch *w);
- /* Check whether unit needs a daemon reload */
- bool (*need_daemon_reload)(Unit *u);
-
/* Reset failed state if we are in failed state */
void (*reset_failed)(Unit *u);
/* Reset failed state if we are in failed state */
void (*reset_failed)(Unit *u);
@@
-383,6
+399,8
@@
struct UnitVTable {
/* The interface name */
const char *bus_interface;
/* The interface name */
const char *bus_interface;
+ UnitStatusMessageFormats status_message_formats;
+
/* Can units of this type have multiple names? */
bool no_alias:1;
/* Can units of this type have multiple names? */
bool no_alias:1;
@@
-391,9
+409,6
@@
struct UnitVTable {
/* Exclude from automatic gc */
bool no_gc:1;
/* Exclude from automatic gc */
bool no_gc:1;
-
- /* Show status updates on the console */
- bool show_status:1;
};
extern const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX];
};
extern const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX];
@@
-550,6
+565,9
@@
void unit_ref_unset(UnitRef *ref);
#define UNIT_DEREF(ref) ((ref).unit)
#define UNIT_DEREF(ref) ((ref).unit)
+int unit_add_one_mount_link(Unit *u, Mount *m);
+int unit_add_mount_links(Unit *u);
+
const char *unit_load_state_to_string(UnitLoadState i);
UnitLoadState unit_load_state_from_string(const char *s);
const char *unit_load_state_to_string(UnitLoadState i);
UnitLoadState unit_load_state_from_string(const char *s);