]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
virt: Support detection of Apple Virtualization.framework guests
authorZhaofeng Li <hello@zhaofeng.li>
Mon, 22 Aug 2022 16:35:21 +0000 (10:35 -0600)
committerLennart Poettering <lennart@poettering.net>
Wed, 24 Aug 2022 07:34:54 +0000 (09:34 +0200)
man/systemd-detect-virt.xml
man/systemd.unit.xml
src/basic/virt.c
src/basic/virt.h

index 8ac4de4047e970cabdbc41932ace3b8c4dbc6085..a8c089d0b515ed6b7678dfbd00ec35ff216b55b4 100644 (file)
@@ -62,7 +62,7 @@
         </thead>
         <tbody>
           <row>
-            <entry valign="top" morerows="14">VM</entry>
+            <entry valign="top" morerows="15">VM</entry>
             <entry><varname>qemu</varname></entry>
             <entry>QEMU software virtualization, without KVM</entry>
           </row>
             <entry><ulink url="https://projectacrn.org">ACRN hypervisor</ulink></entry>
           </row>
 
+          <row>
+            <entry><varname>apple</varname></entry>
+            <entry><ulink url="https://developer.apple.com/documentation/virtualization">Apple Virtualization.framework</ulink></entry>
+          </row>
+
           <row>
             <entry valign="top" morerows="9">Container</entry>
             <entry><varname>openvz</varname></entry>
index ea95ba886927c7b558f5ae56ab94d9377d01b5df..7e744471c394c92036317082caaca22400bee5e9 100644 (file)
           <literal>uml</literal>,
           <literal>bhyve</literal>,
           <literal>qnx</literal>,
+          <literal>apple</literal>,
           <literal>openvz</literal>,
           <literal>lxc</literal>,
           <literal>lxc-libvirt</literal>,
index e5277b4a4bfc7e537d7770dbec60f0f75c039d6f..fd8954b3becd53812eb8cd94e7109cad63d8f02f 100644 (file)
@@ -156,21 +156,22 @@ static Virtualization detect_vm_dmi_vendor(void) {
                 const char *vendor;
                 Virtualization id;
         } dmi_vendor_table[] = {
-                { "KVM",                 VIRTUALIZATION_KVM       },
-                { "OpenStack",           VIRTUALIZATION_KVM       }, /* Detect OpenStack instance as KVM in non x86 architecture */
-                { "KubeVirt",            VIRTUALIZATION_KVM       }, /* Detect KubeVirt instance as KVM in non x86 architecture */
-                { "Amazon EC2",          VIRTUALIZATION_AMAZON    },
-                { "QEMU",                VIRTUALIZATION_QEMU      },
-                { "VMware",              VIRTUALIZATION_VMWARE    }, /* https://kb.vmware.com/s/article/1009458 */
-                { "VMW",                 VIRTUALIZATION_VMWARE    },
-                { "innotek GmbH",        VIRTUALIZATION_ORACLE    },
-                { "VirtualBox",          VIRTUALIZATION_ORACLE    },
-                { "Xen",                 VIRTUALIZATION_XEN       },
-                { "Bochs",               VIRTUALIZATION_BOCHS     },
-                { "Parallels",           VIRTUALIZATION_PARALLELS },
+                { "KVM",                  VIRTUALIZATION_KVM       },
+                { "OpenStack",            VIRTUALIZATION_KVM       }, /* Detect OpenStack instance as KVM in non x86 architecture */
+                { "KubeVirt",             VIRTUALIZATION_KVM       }, /* Detect KubeVirt instance as KVM in non x86 architecture */
+                { "Amazon EC2",           VIRTUALIZATION_AMAZON    },
+                { "QEMU",                 VIRTUALIZATION_QEMU      },
+                { "VMware",               VIRTUALIZATION_VMWARE    }, /* https://kb.vmware.com/s/article/1009458 */
+                { "VMW",                  VIRTUALIZATION_VMWARE    },
+                { "innotek GmbH",         VIRTUALIZATION_ORACLE    },
+                { "VirtualBox",           VIRTUALIZATION_ORACLE    },
+                { "Xen",                  VIRTUALIZATION_XEN       },
+                { "Bochs",                VIRTUALIZATION_BOCHS     },
+                { "Parallels",            VIRTUALIZATION_PARALLELS },
                 /* https://wiki.freebsd.org/bhyve */
-                { "BHYVE",               VIRTUALIZATION_BHYVE     },
-                { "Hyper-V",             VIRTUALIZATION_MICROSOFT },
+                { "BHYVE",                VIRTUALIZATION_BHYVE     },
+                { "Hyper-V",              VIRTUALIZATION_MICROSOFT },
+                { "Apple Virtualization", VIRTUALIZATION_APPLE },
         };
         int r;
 
@@ -1018,6 +1019,7 @@ static const char *const virtualization_table[_VIRTUALIZATION_MAX] = {
         [VIRTUALIZATION_QNX]             = "qnx",
         [VIRTUALIZATION_ACRN]            = "acrn",
         [VIRTUALIZATION_POWERVM]         = "powervm",
+        [VIRTUALIZATION_APPLE]           = "apple",
         [VIRTUALIZATION_VM_OTHER]        = "vm-other",
 
         [VIRTUALIZATION_SYSTEMD_NSPAWN]  = "systemd-nspawn",
index 6da08b4af141fe9f3aabec9b2314499d9f48d757..e19a238939869e1e5bf76e26840d0e4ba071f3d6 100644 (file)
@@ -25,6 +25,7 @@ typedef enum Virtualization {
         VIRTUALIZATION_QNX,
         VIRTUALIZATION_ACRN,
         VIRTUALIZATION_POWERVM,
+        VIRTUALIZATION_APPLE,
         VIRTUALIZATION_VM_OTHER,
         VIRTUALIZATION_VM_LAST = VIRTUALIZATION_VM_OTHER,