]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/basic/virt.h
main: get rid of ACTION_DONE (#3849)
[thirdparty/systemd.git] / src / basic / virt.h
CommitLineData
c2f1db8f 1#pragma once
b52aae1d
LP
2
3/***
4 This file is part of systemd.
5
6 Copyright 2011 Lennart Poettering
7
8 systemd is free software; you can redistribute it and/or modify it
5430f7f2
LP
9 under the terms of the GNU Lesser General Public License as published by
10 the Free Software Foundation; either version 2.1 of the License, or
b52aae1d
LP
11 (at your option) any later version.
12
13 systemd is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5430f7f2 16 Lesser General Public License for more details.
b52aae1d 17
5430f7f2 18 You should have received a copy of the GNU Lesser General Public License
b52aae1d
LP
19 along with systemd; If not, see <http://www.gnu.org/licenses/>.
20***/
21
75f86906
LP
22#include <stdbool.h>
23
24#include "macro.h"
b52aae1d 25
248fab74 26enum {
b52aae1d 27 VIRTUALIZATION_NONE = 0,
75f86906
LP
28
29 VIRTUALIZATION_VM_FIRST,
30 VIRTUALIZATION_KVM = VIRTUALIZATION_VM_FIRST,
31 VIRTUALIZATION_QEMU,
32 VIRTUALIZATION_BOCHS,
33 VIRTUALIZATION_XEN,
34 VIRTUALIZATION_UML,
35 VIRTUALIZATION_VMWARE,
36 VIRTUALIZATION_ORACLE,
37 VIRTUALIZATION_MICROSOFT,
38 VIRTUALIZATION_ZVM,
39 VIRTUALIZATION_PARALLELS,
40 VIRTUALIZATION_VM_OTHER,
41 VIRTUALIZATION_VM_LAST = VIRTUALIZATION_VM_OTHER,
42
43 VIRTUALIZATION_CONTAINER_FIRST,
44 VIRTUALIZATION_SYSTEMD_NSPAWN = VIRTUALIZATION_CONTAINER_FIRST,
45 VIRTUALIZATION_LXC_LIBVIRT,
46 VIRTUALIZATION_LXC,
47 VIRTUALIZATION_OPENVZ,
48 VIRTUALIZATION_DOCKER,
9fb16425 49 VIRTUALIZATION_RKT,
75f86906
LP
50 VIRTUALIZATION_CONTAINER_OTHER,
51 VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER,
52
b52aae1d
LP
53 _VIRTUALIZATION_MAX,
54 _VIRTUALIZATION_INVALID = -1
248fab74 55};
b52aae1d 56
75f86906
LP
57static inline bool VIRTUALIZATION_IS_VM(int x) {
58 return x >= VIRTUALIZATION_VM_FIRST && x <= VIRTUALIZATION_VM_LAST;
59}
60
61static inline bool VIRTUALIZATION_IS_CONTAINER(int x) {
62 return x >= VIRTUALIZATION_CONTAINER_FIRST && x <= VIRTUALIZATION_CONTAINER_LAST;
63}
64
65int detect_vm(void);
66int detect_container(void);
67int detect_virtualization(void);
68
7f4b3c5e
LP
69int running_in_chroot(void);
70
75f86906
LP
71const char *virtualization_to_string(int v) _const_;
72int virtualization_from_string(const char *s) _pure_;