]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/machine/machined.h
machined: Move image discovery logic into src/shared, so that we can make use of...
[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"
003dffde
LP
36#include "machine-dbus.h"
37#include "image-dbus.h"
1ee306e1
LP
38
39struct Manager {
c3350683
LP
40 sd_event *event;
41 sd_bus *bus;
1ee306e1
LP
42
43 Hashmap *machines;
44 Hashmap *machine_units;
d3e84ddb 45 Hashmap *machine_leaders;
1ee306e1 46
d04c1fb8
LP
47 Hashmap *polkit_registry;
48
1ee306e1
LP
49 LIST_HEAD(Machine, machine_gc_queue);
50};
51
1ee306e1
LP
52Manager *manager_new(void);
53void manager_free(Manager *m);
54
55int manager_add_machine(Manager *m, const char *name, Machine **_machine);
1ee306e1
LP
56int manager_enumerate_machines(Manager *m);
57
58int manager_startup(Manager *m);
59int manager_run(Manager *m);
60
61void manager_gc(Manager *m, bool drop_not_started);
62
63int manager_get_machine_by_pid(Manager *m, pid_t pid, Machine **machine);
64
c3350683
LP
65extern const sd_bus_vtable manager_vtable[];
66
ebcf1f97
LP
67int match_reloading(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
68int match_unit_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
69int match_properties_changed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
70int match_job_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
1ee306e1 71
c3350683
LP
72int 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);
73int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job);
de58a50e 74int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error);
1ee306e1 75int manager_unit_is_active(Manager *manager, const char *unit);
c3350683 76int manager_job_is_active(Manager *manager, const char *path);