chiark / gitweb /
0910e0df576ffdb0e206f2ccc0a06dd0a19b21f9
[elogind.git] / src / basic / virt.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 /***
5   This file is part of systemd.
6
7   Copyright 2011 Lennart Poettering
8 ***/
9
10 #include <stdbool.h>
11
12 #include "macro.h"
13
14 enum {
15         VIRTUALIZATION_NONE = 0,
16
17         VIRTUALIZATION_VM_FIRST,
18         VIRTUALIZATION_KVM = VIRTUALIZATION_VM_FIRST,
19         VIRTUALIZATION_QEMU,
20         VIRTUALIZATION_BOCHS,
21         VIRTUALIZATION_XEN,
22         VIRTUALIZATION_UML,
23         VIRTUALIZATION_VMWARE,
24         VIRTUALIZATION_ORACLE,
25         VIRTUALIZATION_MICROSOFT,
26         VIRTUALIZATION_ZVM,
27         VIRTUALIZATION_PARALLELS,
28         VIRTUALIZATION_BHYVE,
29         VIRTUALIZATION_QNX,
30         VIRTUALIZATION_VM_OTHER,
31         VIRTUALIZATION_VM_LAST = VIRTUALIZATION_VM_OTHER,
32
33         VIRTUALIZATION_CONTAINER_FIRST,
34         VIRTUALIZATION_SYSTEMD_NSPAWN = VIRTUALIZATION_CONTAINER_FIRST,
35         VIRTUALIZATION_LXC_LIBVIRT,
36         VIRTUALIZATION_LXC,
37         VIRTUALIZATION_OPENVZ,
38         VIRTUALIZATION_DOCKER,
39         VIRTUALIZATION_RKT,
40         VIRTUALIZATION_CONTAINER_OTHER,
41         VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER,
42
43         _VIRTUALIZATION_MAX,
44         _VIRTUALIZATION_INVALID = -1
45 };
46
47 #if 0 /// UNNEEDED by elogind
48 static inline bool VIRTUALIZATION_IS_VM(int x) {
49         return x >= VIRTUALIZATION_VM_FIRST && x <= VIRTUALIZATION_VM_LAST;
50 }
51
52 static inline bool VIRTUALIZATION_IS_CONTAINER(int x) {
53         return x >= VIRTUALIZATION_CONTAINER_FIRST && x <= VIRTUALIZATION_CONTAINER_LAST;
54 }
55
56 int detect_vm(void);
57 #endif // 0
58 int detect_container(void);
59 #if 0 /// UNNEEDED by elogind
60 int detect_virtualization(void);
61
62 int running_in_userns(void);
63 #endif // 0
64 int running_in_chroot(void);
65
66 const char *virtualization_to_string(int v) _const_;
67 int virtualization_from_string(const char *s) _pure_;