chiark / gitweb /
tree-wide: drop 'This file is part of systemd' blurb
[elogind.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 #if 0 /// UNNEEDED by elogind
46 static inline bool VIRTUALIZATION_IS_VM(int x) {
47         return x >= VIRTUALIZATION_VM_FIRST && x <= VIRTUALIZATION_VM_LAST;
48 }
49
50 static inline bool VIRTUALIZATION_IS_CONTAINER(int x) {
51         return x >= VIRTUALIZATION_CONTAINER_FIRST && x <= VIRTUALIZATION_CONTAINER_LAST;
52 }
53
54 int detect_vm(void);
55 #endif // 0
56 int detect_container(void);
57 #if 0 /// UNNEEDED by elogind
58 int detect_virtualization(void);
59
60 int running_in_userns(void);
61 #endif // 0
62 int running_in_chroot(void);
63
64 const char *virtualization_to_string(int v) _const_;
65 int virtualization_from_string(const char *s) _pure_;