Index: /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/VBoxFswParam.h
===================================================================
--- /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/VBoxFswParam.h	(revision 82507)
+++ /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/VBoxFswParam.h	(revision 82508)
@@ -54,4 +54,6 @@
 # include <Protocol/ComponentName.h>
 
+# include <Guid/VBoxFsBlessedFileInfo.h> /* For HFS blessed file support. */
+
 # define BS gBS
 # define PROTO_NAME(x) gEfi ## x ## Guid
Index: /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/VBoxHfs.inf
===================================================================
--- /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/VBoxHfs.inf	(revision 82507)
+++ /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/VBoxHfs.inf	(revision 82508)
@@ -64,4 +64,5 @@
   gEfiFileSystemInfoGuid
   gEfiFileSystemVolumeLabelInfoIdGuid
+  gVBoxFsBlessedFileInfoGuid
 
 [Protocols]
Index: /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/fsw_efi.c
===================================================================
--- /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/fsw_efi.c	(revision 82507)
+++ /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxFsDxe/fsw_efi.c	(revision 82508)
@@ -137,4 +137,8 @@
                                        OUT VOID *Buffer);
 
+#if defined(VBOX) && (FSTYPE == hfs)
+extern fsw_status_t fsw_hfs_get_blessed_file(void *vol, struct fsw_string *path);
+#endif
+
 /**
  * Interface structure for the EFI Driver Binding protocol.
@@ -983,4 +987,32 @@
         Status = EFI_SUCCESS;
 
+#ifdef VBOX
+    } else if (CompareGuid(InformationType, &gVBoxFsBlessedFileInfoGuid)) {
+
+# if FSTYPE == hfs
+        struct fsw_string StrBlessedFile;
+
+        fsw_status_t rc = fsw_hfs_get_blessed_file(Volume->vol, &StrBlessedFile);
+        if (!rc)
+        {
+            // check buffer size
+            RequiredSize = SIZE_OF_VBOX_FS_BLESSED_FILE + fsw_efi_strsize(&StrBlessedFile);
+            if (*BufferSize < RequiredSize) {
+                *BufferSize = RequiredSize;
+                return EFI_BUFFER_TOO_SMALL;
+            }
+
+            // copy volume label
+            fsw_efi_strcpy(((VBOX_FS_BLESSED_FILE *)Buffer)->BlessedFile, &StrBlessedFile);
+
+            // prepare for return
+            *BufferSize = RequiredSize;
+            Status = EFI_SUCCESS;
+        }
+        else
+# endif
+            Status = EFI_UNSUPPORTED;
+#endif
+
     } else {
         Status = EFI_UNSUPPORTED;
Index: /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxPkg.dec
===================================================================
--- /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxPkg.dec	(revision 82507)
+++ /trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxPkg.dec	(revision 82508)
@@ -39,4 +39,5 @@
 #        gEfiFlashMapHobGuid           = { 0xb091e7d2, 0x5a0, 0x4198, {0x94, 0xf0, 0x74, 0xb7, 0xb8, 0xc5, 0x54, 0x59 }}
         gVBoxVgaPkgTokenSpaceGuid = { 0xa3a8ce56, 0x4a07, 0x441f, {0xa3, 0xf5, 0x6f, 0x53, 0xdb, 0x9c, 0xb7, 0xd8}}
+        gVBoxFsBlessedFileInfoGuid = { 0xcc49fefd, 0x41b7, 0x473f, {0x98, 0x23, 0x0e, 0x8e, 0xbf, 0x35, 0x67, 0x7d } }
 
 #
