From 05d641020fe8cea57fa41b9e19459727a463d0c0 Mon Sep 17 00:00:00 2001
From: srs5694
Originally written: 3/14/2013; last Web page update: -1/8/2012, referencing rEFInd 0.6.4
+1/16/2012, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/configfile.html b/docs/refind/configfile.html index 077ad32..49c2ed6 100644 --- a/docs/refind/configfile.html +++ b/docs/refind/configfile.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -186,7 +186,7 @@ timeout 20Originally written: 4/19/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/features.html b/docs/refind/features.html index d1cb4d7..a0ffa72 100644 --- a/docs/refind/features.html +++ b/docs/refind/features.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -151,6 +151,10 @@ lack a usable CSM.Originally written: 3/14/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -98,7 +98,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/installing.html b/docs/refind/installing.html index 65e5b7d..ad62aae 100644 --- a/docs/refind/installing.html +++ b/docs/refind/installing.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -164,13 +164,13 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comBeginning with version 0.6.2, I've included an RPM package file for rEFInd, and I quickly updated this (in 0.6.2-2) to be more sophisticated and to include a Debian package file, as well. If you have a working RPM-based or Debian-based Linux installation that boots in EFI mode, using one of these files is likely to be the easiest way to install rEFInd: You need only download the file and issue an appropriate installation command. In some cases, double-clicking the package in your file manager will install it. If that doesn't work, a command like the following will install the RPM on an RPM-based system:
+Beginning with version 0.6.2, I've included RPM and Debian package files for rEFInd. If you have a working RPM-based or Debian-based Linux installation that boots in EFI mode, using one of these files is likely to be the easiest way to install rEFInd: You need only download the file and issue an appropriate installation command. In some cases, double-clicking the package in your file manager will install it. If that doesn't work, a command like the following will install the RPM on an RPM-based system:
-# rpm -Uvh refind-0.6.2-2.x86_64.rpm+
# rpm -Uvh refind-0.6.5-1.x86_64.rpm
On a Debian-based system, the equivalent command is:
-# dpkg -i refind_0.6.2-2_amd64.deb+
# dpkg -i refind_0.6.5-1_amd64.deb
Either command produces output similar to that described for using the install.sh script, so you can check it for error messages and other signs of trouble. The package file installs rEFInd and registers it with the EFI to be the default boot loader. The script that runs as part of the installation process tries to determine if you're using Secure Boot, and if so it will try to configure rEFInd to launch using shim; however, this won't work correctly on all systems. Ubuntu 12.10 users who are booting with Secure Boot active should be wary, since the resulting installation will probably try to use Ubuntu's version of shim, which won't work correctly with rEFInd.
diff --git a/docs/refind/linux.html b/docs/refind/linux.html index 6b1e147..1201dc3 100644 --- a/docs/refind/linux.html +++ b/docs/refind/linux.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/19/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/revisions.html b/docs/refind/revisions.html index 90f8b35..bd11f98 100644 --- a/docs/refind/revisions.html +++ b/docs/refind/revisions.html @@ -14,7 +14,7 @@by Roderick W. Smith, rodsmith@rodsbooks.com
-Last Web page update: 1/8/2013
+Last Web page update: 1/16/2013
I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -92,6 +92,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 11/13/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -126,7 +126,7 @@ described on this page currently supports only x86-64, notThrough 2012, it became obvious that Secure Boot would be a feature that was controlled, to a large extent, by Microsoft. This is because Microsoft requires that non-server computers that display Windows 8 logos ship with Secure Boot enabled. As a practical matter, this also means that such computers ship with Microsoft's keys in their firmware. In the absence of an industry-standard body to manage the signing of Secure Boot keys, this means that Microsoft's key is the only one that's more-or-less guaranteed to be installed on the computer, thus blocking the ability to boot any OS that lacks a boot path through Microsoft's signing key.
-Fortunately, Microsoft will sign third-party binaries with their key—or more precisely, with a key that Microsoft uses to sign third-party binaries. (Microsoft uses another key to sign its own binaries, and some devices, such as the Microsoft Surface tablet, lack the third-party Microsoft key.) A payment of $99 to Verisign enables a software distributor to sign as many binaries as desired. Red Hat (Fedora), Novell (SUSE), and Canonical (Ubuntu) have all announced plans to take advantage of this system. Unfortunately, using a third-party signing service is an awkward solution for open source software. In fact, for this very reason Red Hat has developed a program that it calls shim that essentially shifts the Secure Boot "train" from Microsoft's proprietary "track" to one that's more friendly to open source authors. Shim is signed by Microsoft and redirects the boot process to another boot loader that can be signed with keys that the distribution maintains and that are built into shim. Fedora 18 is expected to use this system. SUSE has announced that it will use the same system, as does Ubuntu with version 12.10 and later. SUSE has contributed to the shim approach by providing expansions to shim that support a set of keys that users can maintain themselves. These keys are known as Machine Owner Keys (MOKs), and managing them is described later, in Managing MOKs. To reiterate, then, there are potentially three ways to sign a binary that will get it launched on a computer that uses shim:
+Fortunately, Microsoft will sign third-party binaries with their key—or more precisely, with a key that Microsoft uses to sign third-party binaries. (Microsoft uses another key to sign its own binaries, and some devices, such as the Microsoft Surface tablet, lack the third-party Microsoft key.) A payment of $99 to Verisign enables a software distributor to sign as many binaries as desired. Red Hat (Fedora), Novell (SUSE), and Canonical (Ubuntu) have all announced plans to take advantage of this system. Unfortunately, using a third-party signing service is an awkward solution for open source software. In fact, for this very reason Red Hat has developed a program that it calls shim that essentially shifts the Secure Boot "train" from Microsoft's proprietary "track" to one that's more friendly to open source authors. Shim is signed by Microsoft and redirects the boot process to another boot loader that can be signed with keys that the distribution maintains and that are built into shim. Fedora 18 also uses this system. SUSE has announced that it will use the same system, as does Ubuntu with version 12.10 and later. SUSE has contributed to the shim approach by providing expansions to shim that support a set of keys that users can maintain themselves. These keys are known as Machine Owner Keys (MOKs), and managing them is described later, in Managing MOKs. To reiterate, then, there are potentially three ways to sign a binary that will get it launched on a computer that uses shim:
Originally written: 4/19/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -92,7 +92,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comAs described on various other pages of this document, rEFInd relies on icon files located in its icons subdirectory, and occasionally elsewhere, to define its overall appearance. You can adjust rEFInd's theme in a few ways:
+As described on various other pages of this document, rEFInd relies on icon files located in its icons subdirectory, and occasionally elsewhere, to define its overall appearance. It also uses a built-in banner and two selection images, which you may replace by using the banner, selection_big, and selection_small tokens in refind.conf. You can adjust rEFInd's theme in a few ways:
Note that in this example, the text immediately below the icons is white, whereas the hint text at the bottom of the screen is black. The text color is determined by the brightness of the background; rEFInd uses black text against light backgrounds and light text against dark backgrounds. This adjustment is done on a line-by-line basis, so it copes better with horizontal lines than with vertical lines.
+Of course, not all of these elements are likely to be included in themes. A minimal rEFInd theme would provide just a new icons subdirectory, to be set via icons_dir. A more thorough theme would include a changed background image or selection backgrounds.
Note: If you'd like to design a logo for rEFInd, please do so! I lack the sort of artistic talent required for creating logos, so I just used plain text. I'd like to have something more eye-catching, though. I don't promise to use the first logo I'm given, but if you have some ideas, or would like to discuss some ideas, feel free to e-mail me.
diff --git a/docs/refind/todo.html b/docs/refind/todo.html index 4be866e..42c3d42 100644 --- a/docs/refind/todo.html +++ b/docs/refind/todo.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -145,16 +145,6 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com like to add detection for Itanium and ARM systems, but I have no way to test such changes. -Originally written: 3/14/2012; last Web page update: -1/8/2013, referencing rEFInd 0.6.4
+1/16/2013, referencing rEFInd 0.6.5I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/filesystems/fsw_efi.c b/filesystems/fsw_efi.c index 75a29d0..34b0814 100644 --- a/filesystems/fsw_efi.c +++ b/filesystems/fsw_efi.c @@ -98,7 +98,7 @@ EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid = EFI_FILE_SYSTEM_VOLUME_LABEL_INFO /** Helper macro for stringification. */ #define FSW_EFI_STRINGIFY(x) #x /** Expands to the EFI driver name given the file system type name. */ -#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.6.4 " FSW_EFI_STRINGIFY(t) L" File System Driver" +#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.6.5 " FSW_EFI_STRINGIFY(t) L" File System Driver" // function prototypes diff --git a/keys/README.txt b/keys/README.txt index bcf1bf3..1240e34 100644 --- a/keys/README.txt +++ b/keys/README.txt @@ -17,7 +17,9 @@ utility expects its input public keys in this form, so these are the files you would use to add a key to the MOK list maintained by MokManager and used by shim. -The files in this directory are: +The files in this directory are, in alphabetical order: + +- altlinux.cer -- The public key for ALT Linux (http://www.altlinux.com). - canonical-uefi-ca.der -- Canonical's public key, used to sign Ubuntu boot loaders and kernels. diff --git a/libeg/image.c b/libeg/image.c index e940942..a1238be 100644 --- a/libeg/image.c +++ b/libeg/image.c @@ -220,39 +220,31 @@ EFI_STATUS egSaveFile(IN EFI_FILE* BaseDir OPTIONAL, IN CHAR16 *FileName, // Loading images from files and embedded data // -static CHAR16 * egFindExtension(IN CHAR16 *FileName) -{ - UINTN i; - - for (i = StrLen(FileName); i >= 0; i--) { - if (FileName[i] == '.') - return FileName + i + 1; - if (FileName[i] == '/' || FileName[i] == '\\') - break; - } - return FileName + StrLen(FileName); -} - -// Decode the specified data as the specified format. The IconSize parameter is -// relevant only for ICNS, for which it selects which ICNS sub-image is decoded. +// static CHAR16 * egFindExtension(IN CHAR16 *FileName) +// { +// UINTN i; +// +// for (i = StrLen(FileName); i >= 0; i--) { +// if (FileName[i] == '.') +// return FileName + i + 1; +// if (FileName[i] == '/' || FileName[i] == '\\') +// break; +// } +// return FileName + StrLen(FileName); +// } + +// Decode the specified image data. The IconSize parameter is relevant only +// for ICNS, for which it selects which ICNS sub-image is decoded. // Returns a pointer to the resulting EG_IMAGE or NULL if decoding failed. -static EG_IMAGE * egDecodeAny(IN UINT8 *FileData, IN UINTN FileDataLength, - IN CHAR16 *Format, IN UINTN IconSize, IN BOOLEAN WantAlpha) +static EG_IMAGE * egDecodeAny(IN UINT8 *FileData, IN UINTN FileDataLength, IN UINTN IconSize, IN BOOLEAN WantAlpha) { EG_IMAGE *NewImage = NULL; - // Note: The UEFI implementation in Gigabyte's Hybrid EFI is buggy and does - // a case-sensitive comparison in StriCmp rather than the case-insensitive - // comparison that the spec says should be done. As a workaround, we repeat - // the comparison twice here. - // dispatch by extension - if ((StriCmp(Format, L"BMP") == 0) || (StriCmp(Format, L"bmp") == 0)) { - NewImage = egDecodeBMP(FileData, FileDataLength, IconSize, WantAlpha); - } else if ((StriCmp(Format, L"ICNS") == 0) || (StriCmp(Format, L"icns") == 0)) { - NewImage = egDecodeICNS(FileData, FileDataLength, IconSize, WantAlpha); - } else if ((StriCmp(Format, L"PNG") == 0) || (StriCmp(Format, L"png") == 0)) { + NewImage = egDecodeICNS(FileData, FileDataLength, IconSize, WantAlpha); + if (NewImage == NULL) NewImage = egDecodePNG(FileData, FileDataLength, IconSize, WantAlpha); - } // if/else + if (NewImage == NULL) + NewImage = egDecodeBMP(FileData, FileDataLength, IconSize, WantAlpha); return NewImage; } @@ -273,7 +265,7 @@ EG_IMAGE * egLoadImage(IN EFI_FILE* BaseDir, IN CHAR16 *FileName, IN BOOLEAN Wan return NULL; // decode it - NewImage = egDecodeAny(FileData, FileDataLength, egFindExtension(FileName), 128, WantAlpha); + NewImage = egDecodeAny(FileData, FileDataLength, 128, WantAlpha); FreePool(FileData); return NewImage; @@ -308,7 +300,7 @@ EG_IMAGE * egLoadIcon(IN EFI_FILE* BaseDir, IN CHAR16 *Path, IN UINTN IconSize) } // decode it - NewImage = egDecodeAny(FileData, FileDataLength, egFindExtension(Path), IconSize, TRUE); + NewImage = egDecodeAny(FileData, FileDataLength, IconSize, TRUE); FreePool(FileData); if ((NewImage->Width != IconSize) || (NewImage->Height != IconSize)) { Print(L"Warning: Attempt to load icon of the wrong size from '%s'\n", Path); @@ -319,11 +311,6 @@ EG_IMAGE * egLoadIcon(IN EFI_FILE* BaseDir, IN CHAR16 *Path, IN UINTN IconSize) return NewImage; } // EG_IMAGE *egLoadIcon() -EG_IMAGE * egDecodeImage(IN UINT8 *FileData, IN UINTN FileDataLength, IN CHAR16 *Format, IN BOOLEAN WantAlpha) -{ - return egDecodeAny(FileData, FileDataLength, Format, 128, WantAlpha); -} - EG_IMAGE * egPrepareEmbeddedImage(IN EG_EMBEDDED_IMAGE *EmbeddedImage, IN BOOLEAN WantAlpha) { EG_IMAGE *NewImage; @@ -531,11 +518,6 @@ VOID egComposeImage(IN OUT EG_IMAGE *CompImage, IN EG_IMAGE *TopImage, IN UINTN // compose if (CompWidth > 0) { -// if (CompImage->HasAlpha) { -// CompImage->HasAlpha = FALSE; -// egSetPlane(PLPTR(CompImage, a), 0, CompImage->Width * CompImage->Height); -// } - if (TopImage->HasAlpha) { egRawCompose(CompImage->PixelData + PosY * CompImage->Width + PosX, TopImage->PixelData, CompWidth, CompHeight, CompImage->Width, TopImage->Width); @@ -544,7 +526,7 @@ VOID egComposeImage(IN OUT EG_IMAGE *CompImage, IN EG_IMAGE *TopImage, IN UINTN CompWidth, CompHeight, CompImage->Width, TopImage->Width); } } -} +} /* VOID egComposeImage() */ EG_IMAGE * egEnsureImageSize(IN EG_IMAGE *Image, IN UINTN Width, IN UINTN Height, IN EG_PIXEL *Color) { @@ -560,6 +542,7 @@ EG_IMAGE * egEnsureImageSize(IN EG_IMAGE *Image, IN UINTN Width, IN UINTN Height egFreeImage(Image); return NULL; } + Image->HasAlpha = FALSE; egComposeImage(NewImage, Image, 0, 0); egFreeImage(Image); diff --git a/libeg/libeg.h b/libeg/libeg.h index 7e2c990..c81aaea 100644 --- a/libeg/libeg.h +++ b/libeg/libeg.h @@ -102,7 +102,6 @@ VOID egFreeImage(IN EG_IMAGE *Image); EG_IMAGE * egLoadImage(IN EFI_FILE* BaseDir, IN CHAR16 *FileName, IN BOOLEAN WantAlpha); EG_IMAGE * egLoadIcon(IN EFI_FILE* BaseDir, IN CHAR16 *FileName, IN UINTN IconSize); -EG_IMAGE * egDecodeImage(IN UINT8 *FileData, IN UINTN FileDataLength, IN CHAR16 *Format, IN BOOLEAN WantAlpha); EG_IMAGE * egPrepareEmbeddedImage(IN EG_EMBEDDED_IMAGE *EmbeddedImage, IN BOOLEAN WantAlpha); EG_IMAGE * egEnsureImageSize(IN EG_IMAGE *Image, IN UINTN Width, IN UINTN Height, IN EG_PIXEL *Color); diff --git a/libeg/load_bmp.c b/libeg/load_bmp.c index 9d29af6..a836e6e 100644 --- a/libeg/load_bmp.c +++ b/libeg/load_bmp.c @@ -86,7 +86,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN UINTN Ico UINT8 ImageValue = 0, AlphaValue; EG_PIXEL *PixelPtr; UINTN Index, BitIndex; - + // read and check header if (FileDataLength < sizeof(BMP_IMAGE_HEADER) || FileData == NULL) return NULL; @@ -98,7 +98,7 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN UINTN Ico if (BmpHeader->BitPerPixel != 1 && BmpHeader->BitPerPixel != 4 && BmpHeader->BitPerPixel != 8 && BmpHeader->BitPerPixel != 24) return NULL; - + // calculate parameters ImageLineOffset = BmpHeader->PixelWidth; if (BmpHeader->BitPerPixel == 24) @@ -112,13 +112,13 @@ EG_IMAGE * egDecodeBMP(IN UINT8 *FileData, IN UINTN FileDataLength, IN UINTN Ico // check bounds if (BmpHeader->ImageOffset + ImageLineOffset * BmpHeader->PixelHeight > FileDataLength) return NULL; - + // allocate image structure and buffer NewImage = egCreateImage(BmpHeader->PixelWidth, BmpHeader->PixelHeight, WantAlpha); if (NewImage == NULL) return NULL; AlphaValue = WantAlpha ? 255 : 0; - + // convert image BmpColorMap = (BMP_COLOR_MAP *)(FileData + sizeof(BMP_IMAGE_HEADER)); ImagePtrBase = FileData + BmpHeader->ImageOffset; diff --git a/libeg/lodepng.c b/libeg/lodepng.c index 92bf3a1..99895fe 100644 --- a/libeg/lodepng.c +++ b/libeg/lodepng.c @@ -66,10 +66,18 @@ with the "LODEPNG_COMPILE_" #defines divide this up further in an intermixed way name, so that you can easily change them to others related to your platform in this one location if needed. Everything else in the code calls these.*/ +// EFI's equivalent of realloc requires the original buffer's size as an +// input parameter, which the standard libc realloc does not require. Thus, +// I've modified mymalloc() to allocate more memory to store this data, +// and myrealloc() can then read it when required. Because the size is +// stored at the start of the allocated area, these functions are NOT +// interchangeable with the standard EFI functions; memory allocated via +// mymalloc() should be freed via myfree(), and myfree() should NOT be +// used with memory allocated via AllocatePool() or AllocateZeroPool()! + static void *mymalloc(size_t size) { void *ptr; -// size += sizeof (size_t); ptr = AllocateZeroPool(size + sizeof(size_t)); if (ptr) { *(size_t *) ptr = size; diff --git a/libeg/screen.c b/libeg/screen.c index cd97397..378847e 100644 --- a/libeg/screen.c +++ b/libeg/screen.c @@ -364,11 +364,6 @@ VOID egDrawImage(IN EG_IMAGE *Image, IN UINTN ScreenPosX, IN UINTN ScreenPosY) (ScreenPosX > egScreenWidth) || (ScreenPosY > egScreenHeight)) return; -// if (Image->HasAlpha) { -// Image->HasAlpha = FALSE; -// egSetPlane(PLPTR(Image, a), 0, Image->Width * Image->Height); -// } - if ((GlobalConfig.ScreenBackground == NULL) || ((Image->Width == egScreenWidth) && (Image->Height == egScreenHeight))) { CompImage = Image; } else if (GlobalConfig.ScreenBackground == Image) { @@ -418,11 +413,6 @@ VOID egDrawImageArea(IN EG_IMAGE *Image, if (AreaWidth == 0) return; -// if (Image->HasAlpha) { -// Image->HasAlpha = FALSE; -// egSetPlane(PLPTR(Image, a), 0, Image->Width * Image->Height); -// } - if (GraphicsOutput != NULL) { refit_call10_wrapper(GraphicsOutput->Blt, GraphicsOutput, (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)Image->PixelData, EfiBltBufferToVideo, AreaPosX, AreaPosY, ScreenPosX, ScreenPosY, AreaWidth, AreaHeight, diff --git a/libeg/text.c b/libeg/text.c index c723710..2084356 100644 --- a/libeg/text.c +++ b/libeg/text.c @@ -83,7 +83,6 @@ VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN WhiteFontImage->PixelData[i].r = 255 - WhiteFontImage->PixelData[i].r; WhiteFontImage->PixelData[i].g = 255 - WhiteFontImage->PixelData[i].g; WhiteFontImage->PixelData[i].b = 255 - WhiteFontImage->PixelData[i].b; -// WhiteFontImage->PixelData[i].a = 255 - WhiteFontImage->PixelData[i].a; } // for } // if FontImage = WhiteFontImage; @@ -95,11 +94,6 @@ VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN FontImage = BlackFontImage; } // if/else -// // load the font -// if (FontImage == NULL) { -// FontImage = egPrepareEmbeddedImage(&egemb_font, TRUE); -// } // if font not yet loaded. - // render it BufferPtr = CompImage->PixelData; BufferLineOffset = CompImage->Width; diff --git a/refind.conf-sample b/refind.conf-sample index 5d00399..6cc17cd 100644 --- a/refind.conf-sample +++ b/refind.conf-sample @@ -186,7 +186,7 @@ timeout 20 # disk's label in various OSes' file browsers. # The default is an empty list (all volumes are scanned). # -#dont_scan_volumes +#dont_scan_volumes "Recovery HD" # Directories that should NOT be scanned for boot loaders. By default, # rEFInd doesn't scan its own directory or the EFI/tools directory. @@ -225,13 +225,9 @@ timeout 20 # all files in scanned directories with names that begin with "vmlinuz" # or "bzImage" to be included as loaders, even if they lack ".efi" # extensions. The drawback to this option is that it can pick up kernels -# that lack EFI stub loader support and other files. Most notably, if you -# want to give a kernel a custom icon by placing an icon with the kernel's -# filename but a ".icns" extension in the same directory as the kernel, this -# option will cause the icon file to show up as a non-functional loader tag. -# Passing this option a "0" value causes kernels without ".efi" extensions -# to NOT be scanned; passing it alone or with any other value causes all -# kernels to be scanned. +# that lack EFI stub loader support and other files. Passing this option +# a "0" value causes kernels without ".efi" extensions to NOT be scanned; +# passing it alone or with any other value causes all kernels to be scanned. # Default is to NOT scan for kernels without ".efi" extensions. # scan_all_linux_kernels diff --git a/refind.spec b/refind.spec index 24dfd91..c61081a 100644 --- a/refind.spec +++ b/refind.spec @@ -1,7 +1,8 @@ Summary: EFI boot manager software Name: refind -Version: 0.6.4.7 +Version: 0.6.5 Release: 1%{?dist} +Summary: EFI boot manager software License: GPLv3 URL: http://www.rodsbooks.com/refind/ Group: System Environment/Base @@ -145,7 +146,5 @@ fi # wiping out the just-updated files. %changelog -* Sun Jan 6 2013 R Smith