]> code.delx.au - refind/commitdiff
Changes to enable rEFInd to build with GCC 5.1. Also some more
authorsrs5694 <srs5694@users.sourceforge.net>
Tue, 21 Jul 2015 19:59:03 +0000 (15:59 -0400)
committersrs5694 <srs5694@users.sourceforge.net>
Tue, 21 Jul 2015 19:59:03 +0000 (15:59 -0400)
documentation additions.

EfiLib/gnuefi-helper.c
EfiLib/gnuefi-helper.h
NEWS.txt
docs/refind/linux.html
refind/menu.c
refind/menu.h

index 368246dc5e248964a475af80f85feebc2116722e..2c344b16e3e0bd8e8e4bdc823399a4413d52c6d4 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * EfiLib/gnuefi.h
- * GNU-EFI support in legacy boot code
+ * EfiLib/gnuefi-helper.c
+ * GNU-EFI support functions
  *
  * Copyright (c) 2014 Roderick W. Smith
  * With extensive borrowing from other sources (mostly Tianocore)
index 1a1749785890f8c7a361f9a617d0b45c6e93038f..2a2fe0761abe07c71df177d6da9d5e68f6a90bc2 100644 (file)
@@ -23,7 +23,9 @@
 #define UnicodeSPrint SPrint
 #define gRT RT
 #define gBS BS
+#ifndef CONST
 #define CONST
+#endif
 #define ASSERT_EFI_ERROR(status)  ASSERT(!EFI_ERROR(status))
 
 CHAR8 *
@@ -50,4 +52,4 @@ GetNextDevicePathInstance (
    OUT UINTN                          *Size
 );
 
-#endif
\ No newline at end of file
+#endif
index a71278fc2ba9e487e910106698aca0bf38d54518..f9d10fdbf73177a552ae2c16f218917fe1e6f517 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,15 @@
-0.8.8 (6/??/2015):
+0.9.0 (6/??/2015):
 ------------------
 
+- Added new "fold_linux_kernels" token to refind.conf. This option, when
+  active (the default) "folds" all Linux kernels in a directory into a
+  single entry on the rEFInd menu. The kernel with the most recent time
+  stamp is launched by default. To launch another kernel, you must press F2
+  or Insert; additional kernels appear as options on the first kernel's
+  submenu. To see the pre-0.9.0 behavior, you must set "fold_linux_kernels
+  false" (or one of its synonyms, "off" or "0"). The point of this option
+  is to help de-clutter the rEFInd main menu.
+
 - Added new Linux root (/) partition auto-discovery feature, based on
   Freedesktop.org's Discoverable Partitions Spec (DPS)
   (http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/):
index 9ce4ee93c7912a93d0c50f0d18c4988a3215c215..95a8d9f42486ff69b9689c055375e38584285e8f 100644 (file)
@@ -481,6 +481,8 @@ total 17943
 
 <p>rEFInd sorts boot loader entries <i>within each directory</i> by time stamp, so that the most recent entry comes first. Thus, if you specify a directory name (or a volume label, for loaders stored in a volume's root directory) as the <tt>default_selection</tt>, rEFInd will make the most recent loader in the directory the default. This can obviate the need to adjust this configuration parameter when you add a new kernel; chances are you want the most recently-added kernel to be the default, and rEFInd makes it so when you set the <tt>default_selection</tt> in this way. If you <i>don't</i> want the latest kernel to become the default, you can use <tt>touch</tt> to give the desired kernel (or other boot loader) in the directory a more recent time stamp, or you can set <tt>default_selection</tt> to a value that uniquely identifies your desired default loader. One caveat you should keep in mind is that the EFI and Windows interpret the hardware clock as local time, whereas Mac OS X uses <a href="http://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated Universal Time (UTC)</a>. Linux can work either way. Thus, time stamps for boot loaders can be skewed by several hours depending on the environment in which they were created or last modified.</p>
 
+<p>Prior to rEFInd 0.9.0, each Linux kernel appeared as a separate entry in the main rEFInd menu. This could make for a very crowded menu if you kept many old kernels and/or if you have several Linux distributions installed. rEFInd 0.9.0 adds a "folding" feature, in which multiple kernel entries in a single directory appear as a single entry in the main menu. Selecting that entry launches the kernel with the most recent time stamp. To launch an older kernel, you must press F2 or Insert; older kernels appear in the submenu shown earlier, but with the kernel filename prepended to the description. If you want to see all your kernels separated on the main menu, as in earlier versions of rEFInd, you should edit <tt>refind.conf</tt>: Uncomment the <tt>fold_linux_kernels</tt> option and set it to <tt>false</tt>, <tt>off</tt>, or <tt>0</tt>.</p>
+
 <p class="sidebar"><b>Tip for distribution maintainers:</b> If you maintain an <tt>EFI/<tt class="variable">distname</tt></tt> directory for your kernels, you can place your version of rEFInd in a directory called <tt>EFI/<tt class="variable">distname</tt>/refind</tt>. This will avoid collisions with duplicate rEFInd installations from other distributions.</p>
 
 <p>On the whole, this method of configuration has a lot going for it. For distribution maintainers, if you place your Linux kernel files (with EFI stub support) on the ESP, with suitable filenames, matching initial RAM disk files, and a <tt>refind_linux.conf</tt> file, then any rEFInd 0.2.3 or later installation should detect your files, even if the user installs another distribution with another rEFInd that takes over from yours. (If the user, or this other rEFInd installation, disables auto-detection, this won't work.)</p>
index a137b06148a6b921e22a5f6f1c05c706a9483b1b..63bf9fc6ecc0c9125475ecb5ce6f15e24314bf9a 100644 (file)
@@ -1052,7 +1052,7 @@ static VOID PaintIcon(IN EG_EMBEDDED_IMAGE *BuiltInIcon, IN CHAR16 *ExternalFile
    }
 } // static VOID ()
 
-inline UINTN ComputeRow0PosY(VOID) {
+UINTN ComputeRow0PosY(VOID) {
    return ((UGAHeight / 2) - TileSizes[0] / 2);
 } // UINTN ComputeRow0PosY()
 
index 5724c4c037b9884052aa4c8249310f8a86e6f199..0b2db1fc56a9f7d6c345e0a1672cfb7eb8292c69 100644 (file)
@@ -94,7 +94,7 @@ struct _refit_menu_screen;
 
 VOID AddMenuInfoLine(IN REFIT_MENU_SCREEN *Screen, IN CHAR16 *InfoLine);
 VOID AddMenuEntry(IN REFIT_MENU_SCREEN *Screen, IN REFIT_MENU_ENTRY *Entry);
-inline UINTN ComputeRow0PosY(VOID);
+UINTN ComputeRow0PosY(VOID);
 VOID MainMenuStyle(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, IN UINTN Function, IN CHAR16 *ParamText);
 UINTN RunMenu(IN REFIT_MENU_SCREEN *Screen, OUT REFIT_MENU_ENTRY **ChosenEntry);
 UINTN RunMainMenu(IN REFIT_MENU_SCREEN *Screen, IN CHAR16** DefaultSelection, OUT REFIT_MENU_ENTRY **ChosenEntry);