free(l);
}
-void job_dependency_delete(Job *subject, Job *object, bool *matters) {
- JobDependency *l;
-
- assert(object);
-
- LIST_FOREACH(object, l, object->object_list) {
- assert(l->object == object);
-
- if (l->subject == subject)
- break;
- }
-
- if (!l) {
- if (matters)
- *matters = false;
- return;
- }
-
- if (matters)
- *matters = l->matters;
-
- job_dependency_free(l);
-}
-
void job_dump(Job *j, FILE*f, const char *prefix) {
assert(j);
assert(f);
JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts);
void job_dependency_free(JobDependency *l);
-void job_dependency_delete(Job *subject, Job *object, bool *matters);
bool job_is_anchor(Job *j);
}
}
-int mount_path_is_mounted(Manager *m, const char* path) {
- char *t;
- int r;
-
- assert(m);
- assert(path);
-
- if (path[0] != '/')
- return 1;
-
- if (!(t = strdup(path)))
- return -ENOMEM;
-
- path_kill_slashes(t);
-
- for (;;) {
- char *e, *slash;
- Unit *u;
-
- if (!(e = unit_name_from_path(t, ".mount"))) {
- r = -ENOMEM;
- goto finish;
- }
-
- u = manager_get_unit(m, e);
- free(e);
-
- if (u &&
- (MOUNT(u)->from_etc_fstab || MOUNT(u)->from_fragment) &&
- MOUNT(u)->state != MOUNT_MOUNTED) {
- r = 0;
- goto finish;
- }
-
- assert_se(slash = strrchr(t, '/'));
-
- if (slash == t) {
- r = 1;
- goto finish;
- }
-
- *slash = 0;
- }
-
- r = 1;
-
-finish:
- free(t);
- return r;
-}
-
static void mount_reset_maintenance(Unit *u) {
Mount *m = MOUNT(u);
void mount_fd_event(Manager *m, int events);
-int mount_path_is_mounted(Manager *m, const char* path);
-
const char* mount_state_to_string(MountState i);
MountState mount_state_from_string(const char *s);
return 0;
}
-/* Common implementation for multiple backends */
-int unit_load_nop(Unit *u) {
- assert(u);
-
- if (u->meta.load_state == UNIT_STUB)
- u->meta.load_state = UNIT_LOADED;
-
- return 0;
-}
-
int unit_load(Unit *u) {
int r;
return NULL;
}
-static const char* const unit_type_table[_UNIT_TYPE_MAX] = {
- [UNIT_SERVICE] = "service",
- [UNIT_TIMER] = "timer",
- [UNIT_SOCKET] = "socket",
- [UNIT_TARGET] = "target",
- [UNIT_DEVICE] = "device",
- [UNIT_MOUNT] = "mount",
- [UNIT_AUTOMOUNT] = "automount",
- [UNIT_SNAPSHOT] = "snapshot",
- [UNIT_SWAP] = "swap"
-};
-
-DEFINE_STRING_TABLE_LOOKUP(unit_type, UnitType);
-
static const char* const unit_load_state_table[_UNIT_LOAD_STATE_MAX] = {
[UNIT_STUB] = "stub",
[UNIT_LOADED] = "loaded",
int unit_load_fragment_and_dropin(Unit *u);
int unit_load_fragment_and_dropin_optional(Unit *u);
-int unit_load_nop(Unit *u);
int unit_load(Unit *unit);
const char *unit_description(Unit *u);
Unit *unit_following(Unit *u);
-const char *unit_type_to_string(UnitType i);
-UnitType unit_type_from_string(const char *s);
-
const char *unit_load_state_to_string(UnitLoadState i);
UnitLoadState unit_load_state_from_string(const char *s);
return strdup(u.sysname);
}
-int getmachineid_malloc(char **b) {
- int r;
-
- assert(b);
-
- if ((r = read_one_line_file("/var/lib/dbus/machine-id", b)) < 0)
- return r;
-
- strstrip(*b);
- return 0;
-}
-
char* getlogname_malloc(void) {
uid_t uid;
long bufsize;
char* gethostname_malloc(void);
char* getlogname_malloc(void);
int getttyname_malloc(char **r);
-int getmachineid_malloc(char **r);
int chmod_and_chown(const char *path, mode_t mode, uid_t uid, gid_t gid);