1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
6 typedef enum Virtualization
{
7 VIRTUALIZATION_NONE
= 0,
9 VIRTUALIZATION_VM_FIRST
,
10 VIRTUALIZATION_KVM
= VIRTUALIZATION_VM_FIRST
,
11 VIRTUALIZATION_AMAZON
,
16 VIRTUALIZATION_VMWARE
,
17 VIRTUALIZATION_ORACLE
,
18 VIRTUALIZATION_MICROSOFT
,
20 VIRTUALIZATION_PARALLELS
,
24 VIRTUALIZATION_POWERVM
,
27 VIRTUALIZATION_GOOGLE
,
28 VIRTUALIZATION_VM_OTHER
,
29 VIRTUALIZATION_VM_LAST
= VIRTUALIZATION_VM_OTHER
,
31 VIRTUALIZATION_CONTAINER_FIRST
,
32 VIRTUALIZATION_SYSTEMD_NSPAWN
= VIRTUALIZATION_CONTAINER_FIRST
,
33 VIRTUALIZATION_LXC_LIBVIRT
,
35 VIRTUALIZATION_OPENVZ
,
36 VIRTUALIZATION_DOCKER
,
37 VIRTUALIZATION_PODMAN
,
42 VIRTUALIZATION_CONTAINER_OTHER
,
43 VIRTUALIZATION_CONTAINER_LAST
= VIRTUALIZATION_CONTAINER_OTHER
,
46 _VIRTUALIZATION_INVALID
= -EINVAL
,
47 _VIRTUALIZATION_ERRNO_MAX
= -ERRNO_MAX
, /* ensure full range of errno fits into this enum */
50 static inline bool VIRTUALIZATION_IS_VM(Virtualization x
) {
51 return x
>= VIRTUALIZATION_VM_FIRST
&& x
<= VIRTUALIZATION_VM_LAST
;
54 static inline bool VIRTUALIZATION_IS_CONTAINER(Virtualization x
) {
55 return x
>= VIRTUALIZATION_CONTAINER_FIRST
&& x
<= VIRTUALIZATION_CONTAINER_LAST
;
58 Virtualization
detect_vm(void);
59 Virtualization
detect_container(void);
60 Virtualization
detect_virtualization(void);
62 int running_in_userns(void);
63 int running_in_chroot(void);
65 const char* virtualization_to_string(Virtualization v
) _const_
;
66 Virtualization
virtualization_from_string(const char *s
) _pure_
;
67 bool has_cpu_with_flag(const char *flag
);