]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/virt.h
tree-wide: drop 'This file is part of systemd' blurb
[thirdparty/systemd.git] / src / basic / virt.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 /***
5 Copyright 2011 Lennart Poettering
6 ***/
7
8 #include <stdbool.h>
9
10 #include "macro.h"
11
12 enum {
13 VIRTUALIZATION_NONE = 0,
14
15 VIRTUALIZATION_VM_FIRST,
16 VIRTUALIZATION_KVM = VIRTUALIZATION_VM_FIRST,
17 VIRTUALIZATION_QEMU,
18 VIRTUALIZATION_BOCHS,
19 VIRTUALIZATION_XEN,
20 VIRTUALIZATION_UML,
21 VIRTUALIZATION_VMWARE,
22 VIRTUALIZATION_ORACLE,
23 VIRTUALIZATION_MICROSOFT,
24 VIRTUALIZATION_ZVM,
25 VIRTUALIZATION_PARALLELS,
26 VIRTUALIZATION_BHYVE,
27 VIRTUALIZATION_QNX,
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,
37 VIRTUALIZATION_RKT,
38 VIRTUALIZATION_CONTAINER_OTHER,
39 VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER,
40
41 _VIRTUALIZATION_MAX,
42 _VIRTUALIZATION_INVALID = -1
43 };
44
45 static inline bool VIRTUALIZATION_IS_VM(int x) {
46 return x >= VIRTUALIZATION_VM_FIRST && x <= VIRTUALIZATION_VM_LAST;
47 }
48
49 static inline bool VIRTUALIZATION_IS_CONTAINER(int x) {
50 return x >= VIRTUALIZATION_CONTAINER_FIRST && x <= VIRTUALIZATION_CONTAINER_LAST;
51 }
52
53 int detect_vm(void);
54 int detect_container(void);
55 int detect_virtualization(void);
56
57 int running_in_userns(void);
58 int running_in_chroot(void);
59
60 const char *virtualization_to_string(int v) _const_;
61 int virtualization_from_string(const char *s) _pure_;