]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/basic/virt.h
io.systemd.Unit.List fix context/runtime split (#38172)
[thirdparty/systemd.git] / src / basic / virt.h
CommitLineData
db9ecf05 1/* SPDX-License-Identifier: LGPL-2.1-or-later */
c2f1db8f 2#pragma once
b52aae1d 3
0c15577a 4#include "forward.h"
b52aae1d 5
1b86c7c5 6typedef enum Virtualization {
b52aae1d 7 VIRTUALIZATION_NONE = 0,
75f86906
LP
8
9 VIRTUALIZATION_VM_FIRST,
10 VIRTUALIZATION_KVM = VIRTUALIZATION_VM_FIRST,
b6eca373 11 VIRTUALIZATION_AMAZON,
75f86906
LP
12 VIRTUALIZATION_QEMU,
13 VIRTUALIZATION_BOCHS,
14 VIRTUALIZATION_XEN,
15 VIRTUALIZATION_UML,
16 VIRTUALIZATION_VMWARE,
17 VIRTUALIZATION_ORACLE,
18 VIRTUALIZATION_MICROSOFT,
19 VIRTUALIZATION_ZVM,
20 VIRTUALIZATION_PARALLELS,
aa0c3427 21 VIRTUALIZATION_BHYVE,
1fdf07f5 22 VIRTUALIZATION_QNX,
095b9cf4 23 VIRTUALIZATION_ACRN,
3224e38b 24 VIRTUALIZATION_POWERVM,
f5558306 25 VIRTUALIZATION_APPLE,
d833ed78 26 VIRTUALIZATION_SRE,
9b0688f4 27 VIRTUALIZATION_GOOGLE,
75f86906
LP
28 VIRTUALIZATION_VM_OTHER,
29 VIRTUALIZATION_VM_LAST = VIRTUALIZATION_VM_OTHER,
30
31 VIRTUALIZATION_CONTAINER_FIRST,
32 VIRTUALIZATION_SYSTEMD_NSPAWN = VIRTUALIZATION_CONTAINER_FIRST,
33 VIRTUALIZATION_LXC_LIBVIRT,
34 VIRTUALIZATION_LXC,
35 VIRTUALIZATION_OPENVZ,
36 VIRTUALIZATION_DOCKER,
90fb1f09 37 VIRTUALIZATION_PODMAN,
9fb16425 38 VIRTUALIZATION_RKT,
6c8a2c67 39 VIRTUALIZATION_WSL,
80cc3e3e 40 VIRTUALIZATION_PROOT,
abac810b 41 VIRTUALIZATION_POUCH,
75f86906
LP
42 VIRTUALIZATION_CONTAINER_OTHER,
43 VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER,
44
b52aae1d 45 _VIRTUALIZATION_MAX,
2d93c20e 46 _VIRTUALIZATION_INVALID = -EINVAL,
1b86c7c5
LP
47 _VIRTUALIZATION_ERRNO_MAX = -ERRNO_MAX, /* ensure full range of errno fits into this enum */
48} Virtualization;
b52aae1d 49
1b86c7c5 50static inline bool VIRTUALIZATION_IS_VM(Virtualization x) {
75f86906
LP
51 return x >= VIRTUALIZATION_VM_FIRST && x <= VIRTUALIZATION_VM_LAST;
52}
53
1b86c7c5 54static inline bool VIRTUALIZATION_IS_CONTAINER(Virtualization x) {
75f86906
LP
55 return x >= VIRTUALIZATION_CONTAINER_FIRST && x <= VIRTUALIZATION_CONTAINER_LAST;
56}
57
1b86c7c5
LP
58Virtualization detect_vm(void);
59Virtualization detect_container(void);
60Virtualization detect_virtualization(void);
75f86906 61
299a34c1 62int running_in_userns(void);
7f4b3c5e
LP
63int running_in_chroot(void);
64
bfd5a068 65const char* virtualization_to_string(Virtualization v) _const_;
1b86c7c5 66Virtualization virtualization_from_string(const char *s) _pure_;
68337e55 67bool has_cpu_with_flag(const char *flag);