]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/machine/machined.h
treewide: use log_*_errno whenever %m is in the format string
[thirdparty/systemd.git] / src / machine / machined.h
CommitLineData
1ee306e1
LP
1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2
3#pragma once
4
5/***
6 This file is part of systemd.
7
8 Copyright 2013 Lennart Poettering
9
10 systemd is free software; you can redistribute it and/or modify it
11 under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
14
15 systemd is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public License
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
22***/
23
24#include <stdbool.h>
25#include <inttypes.h>
1ee306e1
LP
26
27#include "util.h"
28#include "list.h"
29#include "hashmap.h"
c3350683
LP
30#include "sd-event.h"
31#include "sd-bus.h"
1ee306e1
LP
32
33typedef struct Manager Manager;
34
35#include "machine.h"
36
37struct Manager {
c3350683
LP
38 sd_event *event;
39 sd_bus *bus;
1ee306e1
LP
40
41 Hashmap *machines;
42 Hashmap *machine_units;
d3e84ddb 43 Hashmap *machine_leaders;
1ee306e1
LP
44
45 LIST_HEAD(Machine, machine_gc_queue);
46};
47
1ee306e1
LP
48Manager *manager_new(void);
49void manager_free(Manager *m);
50
51int manager_add_machine(Manager *m, const char *name, Machine **_machine);
1ee306e1
LP
52int manager_enumerate_machines(Manager *m);
53
54int manager_startup(Manager *m);
55int manager_run(Manager *m);
56
57void manager_gc(Manager *m, bool drop_not_started);
58
59int manager_get_machine_by_pid(Manager *m, pid_t pid, Machine **machine);
60
c3350683
LP
61extern const sd_bus_vtable manager_vtable[];
62
ebcf1f97
LP
63int match_reloading(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
64int match_unit_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
65int match_properties_changed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
66int match_job_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
1ee306e1 67
c3350683
LP
68int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, sd_bus_message *more_properties, sd_bus_error *error, char **job);
69int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job);
de58a50e 70int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error);
1ee306e1 71int manager_unit_is_active(Manager *manager, const char *unit);
c3350683 72int manager_job_is_active(Manager *manager, const char *path);