]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/basic/virt.h
tree-wide: drop license boilerplate
[thirdparty/systemd.git] / src / basic / virt.h
CommitLineData
53e1b683 1/* SPDX-License-Identifier: LGPL-2.1+ */
c2f1db8f 2#pragma once
b52aae1d
LP
3
4/***
5 This file is part of systemd.
6
7 Copyright 2011 Lennart Poettering
b52aae1d
LP
8***/
9
75f86906
LP
10#include <stdbool.h>
11
12#include "macro.h"
b52aae1d 13
248fab74 14enum {
b52aae1d 15 VIRTUALIZATION_NONE = 0,
75f86906
LP
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,
aa0c3427 28 VIRTUALIZATION_BHYVE,
1fdf07f5 29 VIRTUALIZATION_QNX,
75f86906
LP
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,
9fb16425 39 VIRTUALIZATION_RKT,
75f86906
LP
40 VIRTUALIZATION_CONTAINER_OTHER,
41 VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER,
42
b52aae1d
LP
43 _VIRTUALIZATION_MAX,
44 _VIRTUALIZATION_INVALID = -1
248fab74 45};
b52aae1d 46
75f86906
LP
47static inline bool VIRTUALIZATION_IS_VM(int x) {
48 return x >= VIRTUALIZATION_VM_FIRST && x <= VIRTUALIZATION_VM_LAST;
49}
50
51static inline bool VIRTUALIZATION_IS_CONTAINER(int x) {
52 return x >= VIRTUALIZATION_CONTAINER_FIRST && x <= VIRTUALIZATION_CONTAINER_LAST;
53}
54
55int detect_vm(void);
56int detect_container(void);
57int detect_virtualization(void);
58
299a34c1 59int running_in_userns(void);
7f4b3c5e
LP
60int running_in_chroot(void);
61
75f86906
LP
62const char *virtualization_to_string(int v) _const_;
63int virtualization_from_string(const char *s) _pure_;