]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/bsddev/IOKitBSDInit.cpp
xnu-7195.101.1.tar.gz
[apple/xnu.git] / iokit / bsddev / IOKitBSDInit.cpp
index 8205d93bc8535b1efbf8ae5bf5db45255e180b2c..e2769e31b310ca04121986e117514458ddb94a5a 100644 (file)
@@ -55,6 +55,8 @@ extern dev_t mdevlookup(int devid);
 extern void mdevremoveall(void);
 extern int mdevgetrange(int devid, uint64_t *base, uint64_t *size);
 extern void di_root_ramfile(IORegistryEntry * entry);
+extern int IODTGetDefault(const char *key, void *infoAddr, unsigned int infoSize);
+extern boolean_t cpuid_vmm_present(void);
 
 #define ROUNDUP(a, b) (((a) + ((b) - 1)) & (~((b) - 1)))
 
@@ -544,6 +546,26 @@ do_reboot:
        return true;
 }
 
+int
+IOGetVMMPresent(void)
+{
+       int hv_vmm_present = 0;
+
+#if defined(__arm64__)
+       if (IODTGetDefault("vmm-present", &hv_vmm_present, sizeof(hv_vmm_present)) < 0) {
+               return 0;
+       }
+
+       if (hv_vmm_present != 0) {
+               hv_vmm_present = 1;
+       }
+#elif defined(__x86_64__)
+       hv_vmm_present = cpuid_vmm_present();
+#endif
+
+       return hv_vmm_present;
+}
+
 kern_return_t
 IOFindBSDRoot( char * rootName, unsigned int rootNameSize,
     dev_t * root, u_int32_t * oflags )