]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/machine/machined.h
util-lib: split our string related calls from util.[ch] into its own file 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>
1ee306e1 25
c3350683 26#include "sd-bus.h"
07630cea
LP
27#include "sd-event.h"
28
29#include "hashmap.h"
30#include "list.h"
1ee306e1
LP
31
32typedef struct Manager Manager;
33
34#include "machine.h"
003dffde
LP
35#include "machine-dbus.h"
36#include "image-dbus.h"
1ee306e1
LP
37
38struct Manager {
c3350683
LP
39 sd_event *event;
40 sd_bus *bus;
1ee306e1
LP
41
42 Hashmap *machines;
43 Hashmap *machine_units;
d3e84ddb 44 Hashmap *machine_leaders;
1ee306e1 45
d04c1fb8
LP
46 Hashmap *polkit_registry;
47
1ddb263d
LP
48 Hashmap *image_cache;
49 sd_event_source *image_cache_defer_event;
50
1ee306e1 51 LIST_HEAD(Machine, machine_gc_queue);
fbe55073
LP
52
53 Machine *host_machine;
1ee306e1
LP
54};
55
1ee306e1
LP
56Manager *manager_new(void);
57void manager_free(Manager *m);
58
59int manager_add_machine(Manager *m, const char *name, Machine **_machine);
1ee306e1
LP
60int manager_enumerate_machines(Manager *m);
61
62int manager_startup(Manager *m);
63int manager_run(Manager *m);
64
65void manager_gc(Manager *m, bool drop_not_started);
66
67int manager_get_machine_by_pid(Manager *m, pid_t pid, Machine **machine);
68
c3350683
LP
69extern const sd_bus_vtable manager_vtable[];
70
19070062
LP
71int match_reloading(sd_bus_message *message, void *userdata, sd_bus_error *error);
72int match_unit_removed(sd_bus_message *message, void *userdata, sd_bus_error *error);
73int match_properties_changed(sd_bus_message *message, void *userdata, sd_bus_error *error);
74int match_job_removed(sd_bus_message *message, void *userdata, sd_bus_error *error);
1ee306e1 75
c3350683
LP
76int 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);
77int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job);
de58a50e 78int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error);
1ee306e1 79int manager_unit_is_active(Manager *manager, const char *unit);
c3350683 80int manager_job_is_active(Manager *manager, const char *path);