78a3d7d
From a6e7719bbe05993613a8de69dba14fa092144925 Mon Sep 17 00:00:00 2001
78a3d7d
From: Andrey Borzenkov <arvidjaar@gmail.com>
78a3d7d
Date: Wed, 25 Dec 2013 22:36:28 +0400
58fe9aa
Subject: [PATCH 001/152] fix EFI detection on Windows
78a3d7d
78a3d7d
We are on legacy BIOS if GetFirmwareEnvironmentVariable fails (returns
78a3d7d
zero) *and* extended error information is ERROR_INVALID_FUNCTION.
78a3d7d
78a3d7d
Cf. http://msdn.microsoft.com/en-us/library/windows/desktop/ms724325%28v=vs.85%29.aspx
78a3d7d
---
78a3d7d
 ChangeLog                          | 5 +++++
78a3d7d
 grub-core/osdep/windows/platform.c | 2 +-
78a3d7d
 2 files changed, 6 insertions(+), 1 deletion(-)
78a3d7d
78a3d7d
diff --git a/ChangeLog b/ChangeLog
78a3d7d
index 41bcebf..21ec1c7 100644
78a3d7d
--- a/ChangeLog
78a3d7d
+++ b/ChangeLog
78a3d7d
@@ -1,3 +1,8 @@
78a3d7d
+2013-12-25  Andrey Borzenkov <arvidjaar@gmail.com>
78a3d7d
+
78a3d7d
+	* grub-core/osdep/windows/platform.c (get_platform): Fix EFI
78a3d7d
+	detection.
78a3d7d
+
78a3d7d
 2013-12-24  Vladimir Serbinenko  <phcoder@gmail.com>
78a3d7d
 
78a3d7d
 	* configure.ac: Set version to 2.02~beta2.
78a3d7d
diff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c
78a3d7d
index f2b9d71..d217efe 100644
78a3d7d
--- a/grub-core/osdep/windows/platform.c
78a3d7d
+++ b/grub-core/osdep/windows/platform.c
78a3d7d
@@ -100,7 +100,7 @@ get_platform (void)
78a3d7d
 
78a3d7d
   if (!func_GetFirmwareEnvironmentVariableW (L"BootOrder", GRUB_EFI_GLOBAL_VARIABLE_GUID_WINDOWS_STR,
78a3d7d
 					     buffer, sizeof (buffer))
78a3d7d
-      && GetLastError () != ERROR_INVALID_FUNCTION)
78a3d7d
+      && GetLastError () == ERROR_INVALID_FUNCTION)
78a3d7d
     {
78a3d7d
       platform = PLAT_BIOS;
78a3d7d
       return;
78a3d7d
-- 
37b39b7
1.9.3
78a3d7d