]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/basic/virt.h
Merge pull request #7388 from keszybz/doc-tweak
[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,
aa0c3427 40 VIRTUALIZATION_BHYVE,
75f86906
LP
41 VIRTUALIZATION_VM_OTHER,
42 VIRTUALIZATION_VM_LAST = VIRTUALIZATION_VM_OTHER,
43
44 VIRTUALIZATION_CONTAINER_FIRST,
45 VIRTUALIZATION_SYSTEMD_NSPAWN = VIRTUALIZATION_CONTAINER_FIRST,
46 VIRTUALIZATION_LXC_LIBVIRT,
47 VIRTUALIZATION_LXC,
48 VIRTUALIZATION_OPENVZ,
49 VIRTUALIZATION_DOCKER,
9fb16425 50 VIRTUALIZATION_RKT,
75f86906
LP
51 VIRTUALIZATION_CONTAINER_OTHER,
52 VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER,
53
b52aae1d
LP
54 _VIRTUALIZATION_MAX,
55 _VIRTUALIZATION_INVALID = -1
248fab74 56};
b52aae1d 57
75f86906
LP
58static inline bool VIRTUALIZATION_IS_VM(int x) {
59 return x >= VIRTUALIZATION_VM_FIRST && x <= VIRTUALIZATION_VM_LAST;
60}
61
62static inline bool VIRTUALIZATION_IS_CONTAINER(int x) {
63 return x >= VIRTUALIZATION_CONTAINER_FIRST && x <= VIRTUALIZATION_CONTAINER_LAST;
64}
65
66int detect_vm(void);
67int detect_container(void);
68int detect_virtualization(void);
69
299a34c1 70int running_in_userns(void);
7f4b3c5e
LP
71int running_in_chroot(void);
72
75f86906
LP
73const char *virtualization_to_string(int v) _const_;
74int virtualization_from_string(const char *s) _pure_;